9 #ifndef XML_PACK_EPILOGUE_H 10 #define XML_PACK_EPILOGUE_H 11 #include <typeName_epilogue.h> 12 #include "polyAccessXMLPack.h" 22 #ifdef XML_PACK_BASE_H 23 template <
class T>
struct access_xml_pack
31 #ifdef XML_UNPACK_BASE_H 33 template <
class T>
struct access_xml_unpack
39 template <
class T>
struct access_xml_unpack<const T>
57 Or< is_sequence<T>, is_associative_container<T> >,
68 #ifdef XML_PACK_BASE_H 69 template <
class T>
typename 78 #ifdef XML_UNPACK_BASE_H 79 template <
class T>
typename 86 template <
class T>
typename 95 void xml_unpackp(
xml_unpack_t& t,
const string& d,
const T& a)
100 #ifdef XML_PACK_BASE_H 103 classdesc::xml_packp(t,d,a);
108 classdesc::xml_packp(t,d,const_cast<T&>(a));
112 {xml_pack(t,
"root",const_cast<T&>(a));
return t;}
116 #ifdef XML_UNPACK_BASE_H 119 classdesc::xml_unpackp(t,d,a);
123 {xml_unpack(t,
"root",a);
return t;}
157 #ifdef POLYPACKBASE_H 158 #ifdef XML_PACK_BASE_H 161 template <
class T>
struct access_xml_pack<cd::
PolyPack<T> >:
164 #ifdef XML_UNPACK_BASE_H 167 template <
class T>
struct access_xml_unpack<cd::
PolyPack<T> >:
172 #ifdef POLYJSONBASE_H 173 #ifdef XML_PACK_BASE_H 176 template <
class T>
struct access_xml_pack<cd::
PolyJson<T> >:
179 #ifdef XML_UNPACK_BASE_H 182 template <
class T>
struct access_xml_unpack<cd::
PolyJson<T> >:
188 #ifdef XML_PACK_BASE_H 189 template <>
struct access_xml_pack<cd::
PolyXMLBase>:
191 template <
class T>
struct access_xml_pack<cd::
PolyXML<T> >:
194 #ifdef XML_UNPACK_BASE_H 195 template <>
struct access_xml_unpack<cd::
PolyXMLBase>:
197 template <
class T>
struct access_xml_unpack<cd::
PolyXML<T> >:
203 #ifdef XML_PACK_BASE_H 204 template <
class T>
struct access_xml_pack<cd::
ref<T> >
208 if (a) xml_pack(x,d,*a);
213 #ifdef XML_UNPACK_BASE_H 214 template <
class T>
struct access_xml_unpack<cd::
ref<T> >
225 #ifdef XML_PACK_BASE_H 227 struct access_xml_pack<T*>
229 void operator()(
cd::xml_pack_t& targ,
const cd::string& desc, T*&)
236 #ifdef XML_UNPACK_BASE_H 238 struct access_xml_unpack<T*>
Definition: classdesc.h:326
Definition: polyJsonBase.h:23
Definition: classdesc_access.h:23
Definition: xml_unpack_base.h:268
helper for constructing null descriptors
Definition: classdesc.h:784
Definition: xml_pack_epilogue.h:53
Definition: xml_pack_base.h:49
void unpack(std::string key, T &var)
simple data type deserialisation
Definition: xml_unpack_base.h:339
utility class for defining pack descriptors for polymorphic types
Definition: polyPackBase.h:45
Contains definitions related to classdesc functionality.
Definition: arrays.h:2514
Definition: polyXMLBase.h:25
Definition: polyXMLBase.h:17
<utility structure for handling tag/endtag
Definition: xml_pack_base.h:101
controlled template specialisation: stolen from boost::enable_if.
Definition: classdesc.h:249
Definition: classdesc.h:266
interface for applying pack descriptors to polymorphic objects
Definition: polyPackBase.h:18
Contains access_* structs, and nothing else. These structs are used to gain access to private members...
Definition: accessor.h:55
base class for exceptions thrown by classdesc
Definition: classdesc.h:366
Definition: polyJsonBase.h:15
Definition: classdesc_access.h:24
void pack_notag(const string &d, const T &x)
Definition: xml_pack_base.h:125
bool exists(const std::string &key)
checks for existence of token unpacked from XML stream
Definition: xml_unpack_base.h:369