/*------------------------------------------------------------------------------
 src/lib/dj/djSerialize.h
 
 Copyright (c) 2004-2006 Darby Johnston.
 All rights reserved.
 Use is subject to license terms.
------------------------------------------------------------------------------*/

#ifndef DJ_SERIALIZE_H
#define DJ_SERIALIZE_H
#include <djStr.h>

namespace dj {

// Deflate - type serialization.
//
const StrList deflateStr(const bool &);
const StrList deflateStr(const int &);
const StrList deflateStr(const uint64_t &);
const StrList deflateStr(const double &);
const StrList deflateStr(char *);
const StrList deflateStr(const char *);
const StrList deflateStr(const Str &);
template <class T>
const StrList deflateStr(const List<T> &);
const StrList deflateStr(const StrList &);
template <class T>
const StrList deflateStr(const T &, const StrList &);

// Inflate - type deserialization.
//
bool inflateStr(StrList &, bool *);
bool inflateStr(StrList &, int *);
bool inflateStr(StrList &, uint64_t *);
bool inflateStr(StrList &, double *);
bool inflateStr(StrList &, Str *);
bool inflateStr(StrList &, List<int> *);
bool inflateStr(StrList &, StrList *);
template <class T>
bool inflateStr(StrList &, T *, const StrList &);

}

#include <djSerialize_.h>
#endif
