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