亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? object.h

?? 這是一個做pdf閱讀器的源代碼文件,是大家學習閱讀器資料的很好參考
?? H
字號:
//========================================================================//// Object.h//// Copyright 1996-2003 Glyph & Cog, LLC////========================================================================#ifndef OBJECT_H#define OBJECT_H#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma interface#endif#include <stdio.h>#include <string.h>#include "gtypes.h"#include "gmem.h"#include "GString.h"class XRef;class Array;class Dict;class Stream;//------------------------------------------------------------------------// Ref//------------------------------------------------------------------------struct Ref {  int num;			// object number  int gen;			// generation number};//------------------------------------------------------------------------// object types//------------------------------------------------------------------------enum ObjType {  // simple objects  objBool,			// boolean  objInt,			// integer  objReal,			// real  objString,			// string  objName,			// name  objNull,			// null  // complex objects  objArray,			// array  objDict,			// dictionary  objStream,			// stream  objRef,			// indirect reference  // special objects  objCmd,			// command name  objError,			// error return from Lexer  objEOF,			// end of file return from Lexer  objNone			// uninitialized object};#define numObjTypes 14		// total number of object types//------------------------------------------------------------------------// Object//------------------------------------------------------------------------#ifdef DEBUG_MEM#define initObj(t) ++numAlloc[type = t]#else#define initObj(t) type = t#endifclass Object {public:  // Default constructor.  Object():    type(objNone) {}  // Initialize an object.  Object *initBool(GBool boolnA)    { initObj(objBool); booln = boolnA; return this; }  Object *initInt(int intgA)    { initObj(objInt); intg = intgA; return this; }  Object *initReal(double realA)    { initObj(objReal); real = realA; return this; }  Object *initString(GString *stringA)    { initObj(objString); string = stringA; return this; }  Object *initName(char *nameA)    { initObj(objName); name = copyString(nameA); return this; }  Object *initNull()    { initObj(objNull); return this; }  Object *initArray(XRef *xref);  Object *initDict(XRef *xref);  Object *initDict(Dict *dictA);  Object *initStream(Stream *streamA);  Object *initRef(int numA, int genA)    { initObj(objRef); ref.num = numA; ref.gen = genA; return this; }  Object *initCmd(char *cmdA)    { initObj(objCmd); cmd = copyString(cmdA); return this; }  Object *initError()    { initObj(objError); return this; }  Object *initEOF()    { initObj(objEOF); return this; }  // Copy an object.  Object *copy(Object *obj);  // If object is a Ref, fetch and return the referenced object.  // Otherwise, return a copy of the object.  Object *fetch(XRef *xref, Object *obj);  // Free object contents.  void free();  // Type checking.  ObjType getType() { return type; }  GBool isBool() { return type == objBool; }  GBool isInt() { return type == objInt; }  GBool isReal() { return type == objReal; }  GBool isNum() { return type == objInt || type == objReal; }  GBool isString() { return type == objString; }  GBool isName() { return type == objName; }  GBool isNull() { return type == objNull; }  GBool isArray() { return type == objArray; }  GBool isDict() { return type == objDict; }  GBool isStream() { return type == objStream; }  GBool isRef() { return type == objRef; }  GBool isCmd() { return type == objCmd; }  GBool isError() { return type == objError; }  GBool isEOF() { return type == objEOF; }  GBool isNone() { return type == objNone; }  // Special type checking.  GBool isName(char *nameA)    { return type == objName && !strcmp(name, nameA); }  GBool isDict(char *dictType);  GBool isStream(char *dictType);  GBool isCmd(char *cmdA)    { return type == objCmd && !strcmp(cmd, cmdA); }  // Accessors.  NB: these assume object is of correct type.  GBool getBool() { return booln; }  int getInt() { return intg; }  double getReal() { return real; }  double getNum() { return type == objInt ? (double)intg : real; }  GString *getString() { return string; }  char *getName() { return name; }  Array *getArray() { return array; }  Dict *getDict() { return dict; }  Stream *getStream() { return stream; }  Ref getRef() { return ref; }  int getRefNum() { return ref.num; }  int getRefGen() { return ref.gen; }  char *getCmd() { return cmd; }  // Array accessors.  int arrayGetLength();  void arrayAdd(Object *elem);  Object *arrayGet(int i, Object *obj);  Object *arrayGetNF(int i, Object *obj);  // Dict accessors.  int dictGetLength();  void dictAdd(char *key, Object *val);  GBool dictIs(char *dictType);  Object *dictLookup(char *key, Object *obj);  Object *dictLookupNF(char *key, Object *obj);  char *dictGetKey(int i);  Object *dictGetVal(int i, Object *obj);  Object *dictGetValNF(int i, Object *obj);  // Stream accessors.  GBool streamIs(char *dictType);  void streamReset();  void streamClose();  int streamGetChar();  int streamLookChar();  char *streamGetLine(char *buf, int size);  Guint streamGetPos();  void streamSetPos(Guint pos, int dir = 0);  Dict *streamGetDict();  // Output.  char *getTypeName();  void print(FILE *f = stdout);  // Memory testing.  static void memCheck(FILE *f);private:  ObjType type;			// object type  union {			// value for each type:    GBool booln;		//   boolean    int intg;			//   integer    double real;		//   real    GString *string;		//   string    char *name;			//   name    Array *array;		//   array    Dict *dict;			//   dictionary    Stream *stream;		//   stream    Ref ref;			//   indirect reference    char *cmd;			//   command  };#ifdef DEBUG_MEM  static int			// number of each type of object    numAlloc[numObjTypes];	//   currently allocated#endif};//------------------------------------------------------------------------// Array accessors.//------------------------------------------------------------------------#include "Array.h"inline int Object::arrayGetLength()  { return array->getLength(); }inline void Object::arrayAdd(Object *elem)  { array->add(elem); }inline Object *Object::arrayGet(int i, Object *obj)  { return array->get(i, obj); }inline Object *Object::arrayGetNF(int i, Object *obj)  { return array->getNF(i, obj); }//------------------------------------------------------------------------// Dict accessors.//------------------------------------------------------------------------#include "Dict.h"inline int Object::dictGetLength()  { return dict->getLength(); }inline void Object::dictAdd(char *key, Object *val)  { dict->add(key, val); }inline GBool Object::dictIs(char *dictType)  { return dict->is(dictType); }inline GBool Object::isDict(char *dictType)  { return type == objDict && dictIs(dictType); }inline Object *Object::dictLookup(char *key, Object *obj)  { return dict->lookup(key, obj); }inline Object *Object::dictLookupNF(char *key, Object *obj)  { return dict->lookupNF(key, obj); }inline char *Object::dictGetKey(int i)  { return dict->getKey(i); }inline Object *Object::dictGetVal(int i, Object *obj)  { return dict->getVal(i, obj); }inline Object *Object::dictGetValNF(int i, Object *obj)  { return dict->getValNF(i, obj); }//------------------------------------------------------------------------// Stream accessors.//------------------------------------------------------------------------#include "Stream.h"inline GBool Object::streamIs(char *dictType)  { return stream->getDict()->is(dictType); }inline GBool Object::isStream(char *dictType)  { return type == objStream && streamIs(dictType); }inline void Object::streamReset()  { stream->reset(); }inline void Object::streamClose()  { stream->close(); }inline int Object::streamGetChar()  { return stream->getChar(); }inline int Object::streamLookChar()  { return stream->lookChar(); }inline char *Object::streamGetLine(char *buf, int size)  { return stream->getLine(buf, size); }inline Guint Object::streamGetPos()  { return stream->getPos(); }inline void Object::streamSetPos(Guint pos, int dir)  { stream->setPos(pos, dir); }inline Dict *Object::streamGetDict()  { return stream->getDict(); }#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线短视频| 欧美aⅴ一区二区三区视频| 亚洲一二三区在线观看| 乱一区二区av| 色综合天天综合色综合av| 欧美日韩国产综合一区二区三区| 日韩女优制服丝袜电影| 日韩一区中文字幕| 美女在线视频一区| 色妞www精品视频| 欧美大片在线观看| 亚洲精品日日夜夜| 精品一区二区三区在线观看 | 精品国产乱子伦一区| 国产精品萝li| 日本亚洲三级在线| 99re成人精品视频| 欧美mv日韩mv国产网站app| 国产精品久久久久aaaa| 久久国产日韩欧美精品| 欧美在线999| 国产亚洲欧美日韩在线一区| 亚洲风情在线资源站| 国产成人啪免费观看软件| 欧美久久久久久蜜桃| 国产精品国产精品国产专区不蜜 | 日韩欧美一区中文| 亚洲精品视频一区| 国产91色综合久久免费分享| 欧美一级日韩免费不卡| 日韩欧美亚洲一区二区| 2014亚洲片线观看视频免费| 亚洲国产中文字幕| 91在线视频网址| 久久久另类综合| 日本中文字幕一区二区视频| 色综合久久88色综合天天| 久久天天做天天爱综合色| 不卡欧美aaaaa| 欧美成人精品福利| 日韩在线卡一卡二| 色屁屁一区二区| 国产精品久久久久久久久免费相片| 紧缚奴在线一区二区三区| 欧美日韩国产三级| 亚洲一区二区三区中文字幕| a亚洲天堂av| 国产精品美女久久久久av爽李琼 | 国产亚洲综合av| 日韩二区三区在线观看| 欧美日韩免费视频| 一区二区三区在线免费视频| 91在线看国产| 中文字幕在线不卡一区二区三区 | 亚洲免费视频成人| 菠萝蜜视频在线观看一区| 国产亚洲1区2区3区| 精久久久久久久久久久| 日韩免费视频一区二区| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美日韩视频专区在线播放| 亚洲成人黄色小说| 精品污污网站免费看| 一级特黄大欧美久久久| 91黄色激情网站| 一区二区三区在线视频免费观看| 色综合夜色一区| 亚洲综合免费观看高清完整版在线| 97久久超碰精品国产| 日韩毛片视频在线看| youjizz国产精品| 国产精品久久久久久妇女6080| www.成人在线| 亚洲美女偷拍久久| 欧美午夜在线观看| 日韩av午夜在线观看| 欧美一区二区三区在| 青青草原综合久久大伊人精品 | 美女视频一区二区三区| 欧美电视剧免费观看| 国产乱码精品1区2区3区| 日本一区二区三区国色天香| 国产精品69毛片高清亚洲| 国产色产综合色产在线视频| 国产一区二区中文字幕| 亚洲国产成人在线| 91欧美一区二区| 亚洲成av人片一区二区三区| 欧美三级在线看| 奇米精品一区二区三区在线观看一| 欧美大胆人体bbbb| 国产成人av一区二区三区在线观看| 国产精品理伦片| 欧美网站大全在线观看| 免费观看成人av| 国产精品午夜春色av| 在线观看欧美日本| 免费xxxx性欧美18vr| 国产亚洲va综合人人澡精品| 91麻豆123| 全部av―极品视觉盛宴亚洲| 久久久激情视频| 在线日韩av片| 久久精品国产99久久6| 日本一区二区成人在线| 欧美视频一区在线| 久久99深爱久久99精品| 国产精品欧美一区喷水| 欧美色视频在线观看| 国产一区二区影院| 亚洲在线视频网站| 久久日韩精品一区二区五区| 91一区二区三区在线播放| 日韩av中文在线观看| 国产精品久久久久久久久免费丝袜 | 精品久久五月天| 91在线国产福利| 久久电影网站中文字幕| 中文字幕日本不卡| 日韩情涩欧美日韩视频| 色综合天天性综合| 久久99精品久久久久久动态图| 国产精品国产三级国产普通话蜜臀| 91国偷自产一区二区三区观看| 久久国产三级精品| 亚洲综合激情网| 国产午夜亚洲精品不卡| 欧美日韩电影一区| 99国产欧美另类久久久精品| 久久99精品久久久久婷婷| 亚洲综合免费观看高清完整版在线| 国产色综合一区| 欧美一区二区网站| 日本乱人伦aⅴ精品| 国产**成人网毛片九色 | 久久久久国产成人精品亚洲午夜| 欧美视频精品在线| av不卡一区二区三区| 国产高清成人在线| 精品制服美女久久| 五月综合激情日本mⅴ| 国产精品久久久一本精品| 日韩欧美在线一区二区三区| 欧美三级日本三级少妇99| 不卡的av电影在线观看| 国产最新精品精品你懂的| 亚洲成av人在线观看| 自拍av一区二区三区| 久久色在线观看| 精品久久久久av影院| 5月丁香婷婷综合| 在线观看国产日韩| av亚洲精华国产精华精| 国产精品正在播放| 久久99精品国产| 日本不卡一区二区三区| 亚洲综合999| 一区二区三区四区精品在线视频 | 91豆麻精品91久久久久久| av欧美精品.com| 成人app在线观看| 成人在线综合网| 国产精品1区二区.| 韩国女主播一区| 九九国产精品视频| 久久99国产精品久久99| 日av在线不卡| 美国欧美日韩国产在线播放| 日本伊人午夜精品| 免费看黄色91| 久久国产精品99精品国产 | 欧美—级在线免费片| 日本一区二区综合亚洲| 久久久久久免费网| 国产亚洲欧美色| 国产欧美精品一区二区色综合朱莉| 久久综合色天天久久综合图片| 精品国产sm最大网站免费看| 精品国产一区二区三区四区四| 欧美xxxxxxxx| 久久色成人在线| 中文字幕高清不卡| 亚洲丝袜精品丝袜在线| 亚洲日本va午夜在线电影| 亚洲精品v日韩精品| 亚洲综合图片区| 天天色天天操综合| 免费成人在线影院| 国产九色精品成人porny| 国产精品亚洲一区二区三区妖精 | 国产精品无码永久免费888| 欧美韩日一区二区三区| 最近日韩中文字幕| 一区二区成人在线观看| 五月婷婷久久丁香| 裸体在线国模精品偷拍| 国产a久久麻豆| 色又黄又爽网站www久久| 欧美日韩在线观看一区二区 | 国产精品18久久久久久久久 |