1 // Copyright (c) 1995 James Clark 2 // See the file COPYING for copying permission. 3 4 #ifndef EntityManager_INCLUDED 5 #define EntityManager_INCLUDED 1 6 7 #ifdef __GNUG__ 8 #pragma interface 9 #endif 10 11 #include "types.h" 12 #include "StringC.h" 13 #include "Resource.h" 14 #include "EntityCatalog.h" 15 #include "Ptr.h" 16 #include "Boolean.h" 17 18 #ifdef SP_NAMESPACE 19 namespace SP_NAMESPACE { 20 #endif 21 22 class Messenger; 23 class InputSourceOrigin; 24 class CharsetInfo; 25 class InputSource; 26 27 class SP_API EntityManager : public Resource { 28 public: 29 enum { mayRewind = 01, maySetDocCharset = 02 }; 30 virtual ~EntityManager(); 31 virtual Boolean internalCharsetIsDocCharset() const = 0; 32 virtual const CharsetInfo &charset() const = 0; 33 virtual InputSource *open(const StringC &sysid, 34 const CharsetInfo &docCharset, 35 InputSourceOrigin *, 36 unsigned flags, 37 Messenger &) = 0; 38 // Make a catalog for a document or subdocument with specified 39 // system identifier. 40 // The catalog can cause the system identifier to be replaced. 41 virtual ConstPtr<EntityCatalog> 42 makeCatalog(StringC &systemId, const CharsetInfo &, Messenger &) = 0; 43 }; 44 45 #ifdef SP_NAMESPACE 46 } 47 #endif 48 49 #endif /* not EntityManager_INCLUDED */ 50