9#ifndef CLASSDESC_XML_PACK_EPILOGUE_H 
   10#define CLASSDESC_XML_PACK_EPILOGUE_H 
   11#include <typeName_epilogue.h> 
   12#include "polyAccessXMLPack.h" 
   13#include "xml_pack-allCDs.h" 
   23#ifdef CLASSDESC_XML_PACK_BASE_H 
   27    void operator()(classdesc::xml_pack_t& t,
const classdesc::string& d, 
const T& a)
 
   32#ifdef CLASSDESC_XML_UNPACK_BASE_H 
   36    void operator()(classdesc::xml_unpack_t& t,
const classdesc::string& d,T& a)
 
   42    void operator()(classdesc::xml_unpack_t& t,
const classdesc::string& d, 
const T& a)
 
   58        Or< is_sequence<T>, is_associative_container<T> >, 
 
 
   69#ifdef CLASSDESC_XML_PACK_BASE_H 
   70  template <
class T> 
typename 
   71  enable_if<AllOtherXMLPackpTypes<T>, 
void >::T
 
   72  xml_packp(xml_pack_t& t,
const string& d, T& a, dummy<0> dum=0)
 
   74    xml_pack_t::Tag tag(t,d);
 
   79#ifdef CLASSDESC_XML_UNPACK_BASE_H 
   80 template <
class T> 
typename 
   84    classdesc_access::access_xml_unpack<T>()(t,d,a);
 
   87  template <
class T> 
typename 
   91    classdesc_access::access_xml_unpack<T>()(t,d,a);
 
  100#ifdef CLASSDESC_XML_PACK_BASE_H 
  101  template <
class T> 
void xml_pack(
xml_pack_t& t,
const string& d, 
T& a)
 
  106  template <
class T> 
void xml_pack(
xml_pack_t& t,
const string& d, 
const T& a)
 
  108    xml_packp(t,d,
const_cast<T&
>(a));
 
  112  {xml_pack(t,
"root",
const_cast<T&
>(a)); 
return t;}
 
  116#ifdef CLASSDESC_XML_UNPACK_BASE_H 
  117  template <
class T> 
void xml_unpack(
xml_unpack_t& t,
const string& d,
T& a)
 
  123  {xml_unpack(t,
"root",a); 
return t;}
 
  133    void operator()(cd::xml_pack_t& p,
const std::string& d,
const cd::CDATA& c)
 
 
  139#ifdef CLASSDESC_POLYPACKBASE_H 
  140#ifdef CLASSDESC_XML_PACK_BASE_H 
  142    public cd::NullDescriptor<cd::xml_pack_t> {};
 
  143  template <
class T> 
struct access_xml_pack<cd::PolyPack<T> >: 
 
  144    public cd::NullDescriptor<cd::xml_pack_t> {};
 
  146#ifdef CLASSDESC_XML_UNPACK_BASE_H 
  154#ifdef CLASSDESC_POLYJSONBASE_H 
  155#ifdef CLASSDESC_XML_PACK_BASE_H 
  161#ifdef CLASSDESC_XML_UNPACK_BASE_H 
  169#ifdef CLASSDESC_POLYXMLBASE_H 
  184#ifdef CLASSDESC_REF_H 
  185#ifdef CLASSDESC_XML_PACK_BASE_H 
  188    void operator()(cd::xml_pack_t& x, 
const cd::string& d, cd::ref<T>& a)
 
  190      if (a) xml_pack(x,d,*a);
 
  195#ifdef CLASSDESC_XML_UNPACK_BASE_H 
  198    void operator()(cd::xml_unpack_t& x, 
const cd::string& d, cd::ref<T>& a)
 
  207#ifdef CLASSDESC_XML_PACK_BASE_H 
  211    void operator()(
cd::xml_pack_t& targ, 
const cd::string& desc, T*&)
 
  218#ifdef CLASSDESC_XML_UNPACK_BASE_H 
Definition xml_pack_base.h:56
void pack_notag(const string &d, const T &x)
Definition xml_pack_base.h:161
Definition xml_unpack_base.h:317
void unpack(std::string key, T &var)
simple data type deserialisation
Definition xml_unpack_base.h:410
Contains access_* structs, and nothing else. These structs are used to gain access to private members...
Definition classdesc_access.h:20
Contains definitions related to classdesc functionality.
Definition xml_pack_epilogue.h:64
Definition classdesc.h:405
helper for constructing null descriptors
Definition classdesc.h:1106
Definition classdesc.h:299
controlled template specialisation: stolen from boost::enable_if.
Definition classdesc.h:282
base class for exceptions thrown by classdesc
Definition classdesc.h:546
Definition classdesc_access.h:23
Definition classdesc_access.h:24