DOMDocument.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef FIX_DOMDOCUMENT_H
00023 #define FIX_DOMDOCUMENT_H
00024
00025 #include <string>
00026 #include <map>
00027 #include <iostream>
00028 #include <memory>
00029
00030 namespace FIX
00031 {
00033 class DOMAttributes
00034 {
00035 public:
00036 typedef std::map<std::string, std::string> map;
00037
00038 virtual ~DOMAttributes() {}
00039
00040 virtual bool get( const std::string&, std::string& ) = 0;
00041 virtual map toMap() = 0;
00042 };
00043 typedef std::auto_ptr<DOMAttributes> DOMAttributesPtr;
00044
00046 class DOMNode
00047 {
00048 public:
00049 virtual ~DOMNode() {}
00050
00051 virtual std::auto_ptr<DOMNode> getFirstChildNode() = 0;
00052 virtual std::auto_ptr<DOMNode> getNextSiblingNode() = 0;
00053 virtual std::auto_ptr<DOMAttributes> getAttributes() = 0;
00054 virtual std::string getName() = 0;
00055 virtual std::string getText() = 0;
00056 };
00057 typedef std::auto_ptr<DOMNode> DOMNodePtr;
00058
00060 class DOMDocument
00061 {
00062 public:
00063 virtual ~DOMDocument() {}
00064
00065 virtual bool load( std::istream& ) = 0;
00066 virtual bool load( const std::string& ) = 0;
00067 virtual bool xml( std::ostream& ) = 0;
00068
00069 virtual std::auto_ptr<DOMNode> getNode( const std::string& ) = 0;
00070 };
00071 typedef std::auto_ptr<DOMDocument> DOMDocumentPtr;
00072 }
00073
00074 #endif