summaryrefslogtreecommitdiff
path: root/ACEXML/parser/parser/Entity_Manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACEXML/parser/parser/Entity_Manager.h')
-rw-r--r--ACEXML/parser/parser/Entity_Manager.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/ACEXML/parser/parser/Entity_Manager.h b/ACEXML/parser/parser/Entity_Manager.h
index 9bcfcc443a3..dfe084ad973 100644
--- a/ACEXML/parser/parser/Entity_Manager.h
+++ b/ACEXML/parser/parser/Entity_Manager.h
@@ -7,6 +7,7 @@
* $Id$
*
* @author Nanbor Wang <nanbor@cs.wustl.edu>
+ * @author Krishnakumar B <kitty@cs.wustl.edu>
*/
//=============================================================================
@@ -45,6 +46,12 @@ typedef ACE_Hash_Map_Reverse_Iterator_Ex<ACEXML_String,
ACE_Equal_To<ACEXML_String>,
ACE_Null_Mutex> ACEXML_ENTITIES_MANAGER_REVERSE_ITER;
+typedef ACE_Hash_Map_Bucket_Iterator<ACEXML_String,
+ ACEXML_String,
+ ACE_Hash<ACEXML_String>,
+ ACE_Equal_To<ACEXML_String>,
+ ACE_Null_Mutex> ACEXML_ENTITY_ENTRY_ITERATOR;
+
/**
* @class ACEXML_Entity_Manager Entity_Manager.h "ACEXML/parser/parser/Entity_Manager.h"
*
@@ -62,11 +69,21 @@ public:
~ACEXML_Entity_Manager (void);
/// Add a new entity declaration.
- int add_entity (const ACEXML_Char *ref,
- const ACEXML_Char *value);
+ int add_entity (const ACEXML_Char *ref, const ACEXML_Char *value);
/// Resolve an entity reference.
- const ACEXML_String *resolve_entity (const ACEXML_Char *ref);
+ const ACEXML_Char* resolve_entity (const ACEXML_Char *ref);
+
+ /// Resolve an entity reference and return the tuple of @c systemId and
+ /// @c publicId
+ int resolve_entity (const ACEXML_Char* ref, ACEXML_Char*& systemId,
+ ACEXML_Char*& publicId);
+
+ /// Number of items in the Entity Manager
+ const size_t size(void) const;
+
+ /// Reset the state
+ int reset (void);
private:
ACEXML_ENTITIES_MANAGER entities_;