![]() |
00001 //--------------------------------------------------------------------------------------- 00002 // Copyright (c) 2001-2010 by PDFTron Systems Inc. All Rights Reserved. 00003 // Consult legal.txt regarding legal and license information. 00004 //--------------------------------------------------------------------------------------- 00005 00006 #ifndef H_CPPSDFNameTree 00007 #define H_CPPSDFNameTree 00008 00009 #include <C/SDF/TRN_NameTree.h> 00010 #include <SDF/DictIterator.h> 00011 #include <SDF/Obj.h> 00012 #include <SDF/SDFDoc.h> 00013 00014 00015 namespace pdftron { 00016 namespace SDF { 00017 00018 00022 typedef DictIterator NameTreeIterator; 00023 00024 00048 class NameTree 00049 { 00050 public: 00051 00065 static NameTree Create(class SDFDoc& doc, const std::string& name); 00066 00077 static NameTree Find(class SDFDoc& doc, const std::string& name); 00078 00085 NameTree (Obj name_tree); 00086 00090 NameTree (const NameTree& d); 00091 00095 NameTree& operator=(const NameTree& d); 00096 00102 bool IsValid(); 00103 00123 NameTreeIterator GetIterator(const UChar* key, int key_sz); 00124 00136 NameTreeIterator GetIterator(); 00137 00146 Obj GetValue(const UChar* key, int key_sz); 00147 00156 void Put (const UChar* key, int key_sz, Obj value); 00157 00165 void Erase (const UChar* key, int key_sz); 00166 00170 void Erase (DictIterator& pos); 00171 00176 Obj GetSDFObj () const; 00177 00178 00179 protected: 00180 NameTree(){}; 00181 TRN_NameTree mp_obj; 00182 }; 00183 00184 00185 #include <Impl/NameTree.inl> 00186 00187 }; // namespace SDF 00188 }; // namespace pdftron 00189 00190 #endif 00191