Boost logo

Boost Users :

From: Victor Whiskey Yankee (victor.whiskey.yankee_at_[hidden])
Date: 2008-05-11 19:20:48


Hello,

I need to serialize into and from a memory buffer using
boost::archive::binary_oarchive and binary_iarchive.

Using std::stringstream does not work (it does work with text_oarchive
and text_iarchive in memory and using files).

I found a mention in the archives about similar need here:
    http://lists.boost.org/boost-users/2007/10/31580.php

But I cannot figure it out.

I am trying to flesh out the two operations marshall() and unmarshall()
below, such that an instance of STORAGE_TYPE
will hold the resulting bytes of an archival operation of a class of
type T, or the inverse where I have the STORAGE_TYPE
and want to create a new T from an oarchive operation.

#include <string>
#include <vector>
#include <sstream>

#ifdef USE_TEXT
typedef std::string STORAGE_TYPE;
#else
typedef std::vector<unsigned char> STORAGE_TYPE;
#endif

template<typename T>
void marshall(const T& storeObj, STORAGE_TYPE& store)
{
}

and it's compliment:

template<typename T>
void unmarshall(T& restoredObj, const STORAGE_TYPE& store)
{
}

Help getting the STORAGE_TYPE and memory stream would be greatly
appreciated.
Thanks,
Vic


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net