⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmap.h

📁 这是一个做pdf阅读器的源代码文件,是大家学习阅读器资料的很好参考
💻 H
字号:
//========================================================================//// CMap.h//// Copyright 2001-2003 Glyph & Cog, LLC////========================================================================#ifndef CMAP_H#define CMAP_H#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma interface#endif#include "gtypes.h"#include "CharTypes.h"#if MULTITHREADED#include "GMutex.h"#endifclass GString;struct CMapVectorEntry;class CMapCache;//------------------------------------------------------------------------class CMap {public:  // Create the CMap specified by <collection> and <cMapName>.  Sets  // the initial reference count to 1.  Returns NULL on failure.  static CMap *parse(CMapCache *cache, GString *collectionA,		     GString *cMapNameA);  ~CMap();  void incRefCnt();  void decRefCnt();  // Return collection name (<registry>-<ordering>).  GString *getCollection() { return collection; }  // Return true if this CMap matches the specified <collectionA>, and  // <cMapNameA>.  GBool match(GString *collectionA, GString *cMapNameA);  // Return the CID corresponding to the character code starting at  // <s>, which contains <len> bytes.  Sets *<nUsed> to the number of  // bytes used by the char code.  CID getCID(char *s, int len, int *nUsed);  // Return the writing mode (0=horizontal, 1=vertical).  int getWMode() { return wMode; }private:  CMap(GString *collectionA, GString *cMapNameA);  CMap(GString *collectionA, GString *cMapNameA, int wModeA);  void useCMap(CMapCache *cache, char *useName);  void copyVector(CMapVectorEntry *dest, CMapVectorEntry *src);  void addCodeSpace(CMapVectorEntry *vec, Guint start, Guint end,		    Guint nBytes);  void addCIDs(Guint start, Guint end, Guint nBytes, CID firstCID);  void freeCMapVector(CMapVectorEntry *vec);  GString *collection;  GString *cMapName;  int wMode;			// writing mode (0=horizontal, 1=vertical)  CMapVectorEntry *vector;	// vector for first byte (NULL for				//   identity CMap)  int refCnt;#if MULTITHREADED  GMutex mutex;#endif};//------------------------------------------------------------------------#define cMapCacheSize 4class CMapCache {public:  CMapCache();  ~CMapCache();  // Get the <cMapName> CMap for the specified character collection.  // Increments its reference count; there will be one reference for  // the cache plus one for the caller of this function.  Returns NULL  // on failure.  CMap *getCMap(GString *collection, GString *cMapName);private:  CMap *cache[cMapCacheSize];};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -