Classdesc 3.44
pack_base.h File Reference

serialisation descriptor More...

#include "classdesc.h"
#include "function.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <assert.h>
#include <stdarg.h>
#include <exception>
#include <vector>
#include <algorithm>
#include <typeinfo>
#include <Realloc.h>
#include "use_mbr_pointers.h"
Include dependency graph for pack_base.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  pack_error
struct  basic_type
struct  Basic_Type< T >
struct  PtrStoreBase
struct  PtrStore< T >
class  PtrStoreRef
class  pack_t
class  xdr_pack
class  BinStream
struct  BinStreamT< Pack >
struct  unserialisable< T >
struct  pack_supported< T >
struct  access_pack< T * >
struct  access_unpack< T * >
struct  access_pack< classdesc::unserialisable< T > >
struct  access_unpack< classdesc::unserialisable< T > >
struct  access_pack< classdesc::Exclude< T > >
struct  access_unpack< classdesc::Exclude< T > >

Namespaces

namespace  classdesc
 Contains definitions related to classdesc functionality.
namespace  classdesc_access
 Contains access_* structs, and nothing else. These structs are used to gain access to private members.

Typedefs

typedef bool(* xdr_filter) (XDR *,...)
typedef pack_t unpack_t

Enumerations

enum  Ptr_flag {
  DEFAULT , GRAPH , TREE , DEFAULT ,
  GRAPH , TREE
}

Functions

template<class T>
xdr_filter XDR_filter (const T &)
template<class T>
int deepCmp (const T &x, const T &y)
 deep comparison of two serialisable items
template<class T>
bool deepEq (const T &x, const T &y)
 deep equality of two serialisable items
template<>
string typeName< pack_t > ()
template<>
string typeName< xdr_pack > ()
template<class T>
pack_toperator<< (pack_t &y, const T &x)
template<class T>
pack_toperator>> (pack_t &y, T &x)
template<class T>
void pack (pack_t &targ, const string &desc, is_treenode dum, const T *const &arg)
 serialise a tree (or DAG)
template<class T>
void unpack (unpack_t &targ, const string &desc, is_treenode dum, T *&arg)
 unserialise a tree.
template<class T>
void pack (pack_t &targ, const string &desc, is_graphnode dum, const T &arg)
 serialise a graph structure
template<class T>
void unpack (pack_t &targ, const string &desc, is_graphnode dum, T &arg)
 unserialise a graph structure
template<class T>
void pack_onbase (pack_t &x, const string &d, T &a)
template<class T>
void unpack_onbase (unpack_t &x, const string &d, T &a)
template<class T>
enable_if< Not< pack_supported< T > >, void >::T pack (pack_t &buf, const string &desc, T &arg)
template<class T>
enable_if< Not< pack_supported< T > >, void >::T unpack (unpack_t &buf, const string &desc, T &arg)
template<class T>
enable_if< is_fundamental< T >, void >::T pack (pack_t &targ, const string &, T &arg)
template<class T>
enable_if< is_fundamental< T >, void >::T pack (pack_t &targ, const string &, const T &arg)
template<class T>
enable_if< is_fundamental< T >, void >::T unpack (unpack_t &targ, const string &, T &arg)
template<class T>
enable_if< is_fundamental< T >, void >::T unpack (unpack_t &targ, const string &, const T &)
template<class T>
void pack (pack_t &targ, const string &desc, is_array, T &arg, int dims, size_t ncopies,...)
template<class T>
void unpack (unpack_t &targ, const string &desc, is_array, T &arg, int dims, size_t ncopies,...)
void pack (pack_t &targ, const string &, is_array, char &arg, int dims, size_t ncopies,...)
void unpack (unpack_t &targ, const string &, is_array, char &arg, int dims, size_t ncopies,...)
template<class C, class R, class A1>
void pack (pack_t &targ, const string &desc, R(C::*&arg)(A1))
template<class C, class R, class A1>
void unpack (pack_t &targ, const string &desc, R(C::*&arg)(A1))
template<class C, class T>
enable_if< And< is_member_object_pointer< T >, Not< functional::is_nonmember_function_ptr< T > > >, void >::T pack (pack_t &b, const string &d, C &o, T y)
template<class C, class T>
enable_if< And< is_member_object_pointer< T >, Not< functional::is_nonmember_function_ptr< T > > >, void >::T unpack (unpack_t &b, const string &d, C &o, T y)
template<class C, class T>
enable_if< And< Not< is_base_of< is_const_static, C > >, is_object< T > >, void >::T pack (pack_t &b, const string &d, C &, T *y)
template<class C, class T>
enable_if< And< Not< is_base_of< is_const_static, C > >, is_object< T > >, void >::T unpack (unpack_t &b, const string &d, C &, T *y)
template<class T>
void pack (pack_t &targ, const string &desc, is_const_static i, T t)
 const static support. No need to stream
template<class T>
void unpack (pack_t &targ, const string &desc, is_const_static i, T t)
template<class T, class U>
void pack (pack_t &, const string &, is_const_static, const T &, U)
template<class T, class U>
void unpack (pack_t &targ, const string &desc, is_const_static i, const T &, U)
template<class E>
void pack (pack_t &targ, const string &desc, Enum_handle< E > a)
template<class E>
void unpack (pack_t &targ, const string &desc, Enum_handle< E > a)
template<class T>
void pack (pack_t &, const string &, const Exclude< T > &)
template<class T>
void unpack (pack_t &, const string &, const Exclude< T > &)
template<class T>
void pack_onbase (pack_t &x, const string &d, T &a)
template<class T>
void unpack_onbase (unpack_t &x, const string &d, T &a)
template<class T>
void pack (pack_t &targ, const string &desc, is_treenode dum, const T *const &arg)
 serialise a tree (or DAG)
template<class T>
void unpack (unpack_t &targ, const string &desc, is_treenode dum, T *&arg)
 unserialise a tree.
template<class T>
void pack_onbase (pack_t &x, const string &d, T &a)
template<class T>
void unpack_onbase (unpack_t &x, const string &d, T &a)

Variables

const int BUFCHUNK =1024

Detailed Description

serialisation descriptor

Function Documentation

◆ unpack()

template<class T>
void unpack ( unpack_t & targ,
const string & desc,
is_treenode dum,
T *& arg )
inline

unserialise a tree.

Serialised DAGs will be converted to a tree