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
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef STOFF_PROPERTY_HANDLER
00035 # define STOFF_PROPERTY_HANDLER
00036
00037 # include <assert.h>
00038 # include <ostream>
00039 # include <sstream>
00040 # include <string>
00041
00043 class STOFFPropertyHandler
00044 {
00045 public:
00047 STOFFPropertyHandler() {}
00049 virtual ~STOFFPropertyHandler();
00050
00052 virtual void insertElement(const char *psName) = 0;
00054 virtual void insertElement(const char *psName, const librevenge::RVNGPropertyList &xPropList) = 0;
00056 virtual void characters(librevenge::RVNGString const &sCharacters) = 0;
00057
00059 bool checkData(librevenge::RVNGBinaryData const &encoded);
00061 bool readData(librevenge::RVNGBinaryData const &encoded);
00062 };
00063
00082 class STOFFPropertyHandlerEncoder
00083 {
00084 public:
00086 STOFFPropertyHandlerEncoder();
00087
00089 void insertElement(const char *psName);
00091 void insertElement(const char *psName, const librevenge::RVNGPropertyList &xPropList);
00093 void characters(librevenge::RVNGString const &sCharacters);
00095 bool getData(librevenge::RVNGBinaryData &data);
00096
00097 protected:
00099 void writeLong(long val);
00101 void writeString(const librevenge::RVNGString &name);
00103 void writeProperty(const char *key, const librevenge::RVNGProperty &prop);
00105 void writePropertyList(const librevenge::RVNGPropertyList &prop);
00107 void writePropertyListVector(const librevenge::RVNGPropertyListVector &vect);
00108
00110 std::stringstream m_f;
00111 };
00112
00113 #endif
00114