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

📄 extendentitymanager.h

📁 SP是一个基于GNU C++编译器
💻 H
字号:
// Copyright (c) 1994, 1995 James Clark// See the file COPYING for copying permission.#ifndef ExtendEntityManager_INCLUDED#define ExtendEntityManager_INCLUDED 1#ifdef __GNUG__#pragma interface#endif#include "EntityManager.h"#include "CharsetInfo.h"#include "types.h"#include "Boolean.h"#include "StringC.h"#include "types.h"#include "Vector.h"#include "Location.h"#include "CodingSystemKit.h"#ifdef SP_NAMESPACEnamespace SP_NAMESPACE {#endifclass StorageManager;class InputCodingSystem;class Messenger;struct SP_API StorageObjectSpec {  StorageObjectSpec();  StorageManager *storageManager;  const char *codingSystemName;  const InputCodingSystem *codingSystem;  StringC specId;		// specified id  StringC baseId;		// id that specified id is relative to  enum Records {    find,    cr,    lf,    crlf,    asis    };  Records records;  PackedBoolean notrack;  PackedBoolean zapEof;		// zap a final Ctrl-Z  PackedBoolean search;  enum {    encoding,    bctf,    special  };  char codingSystemType;};struct SP_API ParsedSystemId : public Vector<StorageObjectSpec> {  ParsedSystemId();  void unparse(const CharsetInfo &resultCharset, Boolean isNdata, StringC &result) const;  struct SP_API Map {    enum Type {      catalogDocument,      catalogPublic    };    Type type;    StringC publicId;  };  Vector<Map> maps;};struct SP_API StorageObjectLocation {  const StorageObjectSpec *storageObjectSpec;  StringC actualStorageId;  unsigned long lineNumber;  unsigned long columnNumber;  unsigned long byteIndex;  unsigned long storageObjectOffset;};class SP_API ExtendEntityManager : public EntityManager {public:  class SP_API CatalogManager {  public:    virtual ~CatalogManager();    virtual ConstPtr<EntityCatalog>      makeCatalog(StringC &systemId,		  const CharsetInfo &docCharset,		  ExtendEntityManager *,		  Messenger &) const = 0;    virtual Boolean mapCatalog(ParsedSystemId &systemId,			       ExtendEntityManager *em,			       Messenger &mgr) const = 0;  };  // Additional flags for open.  enum { mayNotExist = 0100, isNdata = 0200 };  virtual void registerStorageManager(StorageManager *) = 0;  virtual void setCatalogManager(CatalogManager *) = 0;  virtual Boolean expandSystemId(const StringC &,				 const Location &,				 Boolean isNdata,				 const CharsetInfo &,				 const StringC *mapCatalogPublic,				 Messenger &,				 StringC &) = 0;  virtual Boolean mergeSystemIds(const Vector<StringC> &sysids,				 Boolean mapCatalogDocument,				 const CharsetInfo &,				 Messenger &mgr,				 StringC &) const = 0;  virtual Boolean parseSystemId(const StringC &str,				const CharsetInfo &docCharset,				Boolean isNdata,				const StorageObjectLocation *defLoc,				Messenger &mgr,				ParsedSystemId &parsedSysid) const = 0;  static const ParsedSystemId *externalInfoParsedSystemId(const ExternalInfo *);  static Boolean externalize(const ExternalInfo *,			     Offset,			     StorageObjectLocation &);  static ExtendEntityManager *make(StorageManager *,				   const InputCodingSystem *,				   const ConstPtr<InputCodingSystemKit> &,				   Boolean internalCharsetIsDocCharset);};#ifdef SP_NAMESPACE}#endif#endif /* not ExtendEntityManager_INCLUDED */

⌨️ 快捷键说明

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