---
name: "Engine"
section: "3cc"
platform: "linux"
package: "libcommoncpp2-dev"
version: "1.0.13-5"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/Engine"
---

# Engine(3cc)

Engine stream serialization of persistent classes.

## NAME

Engine - Engine stream serialization of persistent classes.

## SYNOPSIS

`#include <persist.h>`

### Public Types

enum **EngineMode** { **modeRead**, **modeWrite** }\
 *These are the modes the Persistence::Engine can work in.*

### Public Methods

**CCXX\_MEMBER\_EXPORT** (CCXX\_EMPTY) Engine(std\
 *writes a* **BaseObject** *from a reference.* **CCXX\_MEMBER\_EXPORT** (void) write(const **BaseObject** \*object) THROWS(**Exception**)\
 *writes a* **BaseObject** *from a pointer.* void **write** (**int8** i) THROWS(**Exception**)\
 void **write** (**uint8** i) THROWS(**Exception**)\
 void **write** (**int16** i) THROWS(**Exception**)\
 void **write** (**uint16** i) THROWS(**Exception**)\
 void **write** (**int32** i) THROWS(**Exception**)\
 void **write** (**uint32** i) THROWS(**Exception**)\
 void **write** (**int64** i) THROWS(**Exception**)\
 void **write** (**uint64** i) THROWS(**Exception**)\
 void **write** (float i) THROWS(**Exception**)\
 void **write** (double i) THROWS(**Exception**)\
 **CCXX\_MEMBER\_EXPORT** (void) write(const std\
 *reads a* **BaseObject** *into a pointer allocating memory for the object if necessary.* void **read** (**uint8** &i) THROWS(**Exception**)\
 void **read** (**int16** &i) THROWS(**Exception**)\
 void **read** (**uint16** &i) THROWS(**Exception**)\
 void **read** (**int32** &i) THROWS(**Exception**)\
 void **read** (**uint32** &i) THROWS(**Exception**)\
 void **read** (**int64** &i) THROWS(**Exception**)\
 void **read** (**uint64** &i) THROWS(**Exception**)\
 void **read** (float &i) THROWS(**Exception**)\
 void **read** (double &i) THROWS(**Exception**)\

### Related Functions

(Note that these are not member functions.) **CCXX\_EXPORT**(Engine &) operator\>\>(Engine &ar\
 template\<class T\> Engine & **operator\<\<** (Engine &ar, typename std::vector\< T \> const &ob) THROWS(Engine\
 *serialize a vector of some serializable content to the engine* template\<class T\> Engine & **operator\>\>** (Engine &ar, typename std::vector\< T \> &ob) THROWS(Engine\
 *deserialize a vector of deserializable content from an engine.* template\<class T\> Engine & **operator\<\<** (Engine &ar, typename std::deque\< T \> const &ob) THROWS(Engine\
 *serialize a deque of some serializable content to the engine* template\<class T\> Engine & **operator\>\>** (Engine &ar, typename std::deque\< T \> &ob) THROWS(Engine\
 *deserialize a deque of deserializable content from an engine.* template\<class Key, class Value\> Engine & **operator\<\<** (Engine &ar, typename std::map\< Key, Value \> const &ob) THROWS(Engine\
 *serialize a map with keys/values which both are serializeable to an engine.* template\<class Key, class Value\> Engine & **operator\>\>** (Engine &ar, typename std::map\< Key, Value \> &ob) THROWS(Engine\
 *deserialize a map with keys/values which both are serializeable from an engine.*

## DETAILED DESCRIPTION

Engine stream serialization of persistent classes.

This class constructs on a standard C++ STL stream and then operates in the mode specified. The stream passed into the constructor must be a binary mode to function properly.

**Author:**  Daniel Silverstone

## MEMBER ENUMERATION DOCUMENTATION

### enum Engine::EngineMode

These are the modes the Persistence::Engine can work in.

**Enumeration values:**

- *modeRead*

  - *modeWrite*

  ## MEMBER FUNCTION DOCUMENTATION

### Engine::CCXX\_MEMBER\_EXPORT (void) const` [inline]`

*reads a* **BaseObject** *into a pointer allocating memory for the object if necessary.*

### Engine::CCXX\_MEMBER\_EXPORT (void) const

*writes a* **BaseObject** *from a pointer.*

### Engine::CCXX\_MEMBER\_EXPORT (CCXX\_EMPTY)` [inline]`

*writes a* **BaseObject** *from a reference.*

### void Engine::read (double & i)` [inline]`

### void Engine::read (float & i)` [inline]`

### void Engine::read (uint64 & i)` [inline]`

### void Engine::read (int64 & i)` [inline]`

### void Engine::read (uint32 & i)` [inline]`

### void Engine::read (int32 & i)` [inline]`

### void Engine::read (uint16 & i)` [inline]`

### void Engine::read (int16 & i)` [inline]`

### void Engine::read (uint8 & i)` [inline]`

### void Engine::write (double i)` [inline]`

### void Engine::write (float i)` [inline]`

### void Engine::write (uint64 i)` [inline]`

### void Engine::write (int64 i)` [inline]`

### void Engine::write (uint32 i)` [inline]`

### void Engine::write (int32 i)` [inline]`

### void Engine::write (uint16 i)` [inline]`

### void Engine::write (int16 i)` [inline]`

### void Engine::write (uint8 i)` [inline]`

### void Engine::write (int8 i)` [inline]`

## FRIENDS AND RELATED FUNCTION DOCUMENTATION

### CCXX\_EXPORT(Engine &)` [related]`

### template\<class Key, class Value\> Engine & operator\<\< (Engine & ar, typename std::map\< Key, Value \> const & ob)` [related]`

*serialize a map with keys/values which both are serializeable to an engine.*

### template\<class T\> Engine & operator\<\< (Engine & ar, typename std::deque\< T \> const & ob)` [related]`

*serialize a deque of some serializable content to the engine*

### template\<class T\> Engine & operator\<\< (Engine & ar, typename std::vector\< T \> const & ob)` [related]`

*serialize a vector of some serializable content to the engine*

### template\<class Key, class Value\> Engine & operator\>\> (Engine & ar, typename std::map\< Key, Value \> & ob)` [related]`

*deserialize a map with keys/values which both are serializeable from an engine.*

### template\<class T\> Engine & operator\>\> (Engine & ar, typename std::deque\< T \> & ob)` [related]`

*deserialize a deque of deserializable content from an engine.*

### template\<class T\> Engine & operator\>\> (Engine & ar, typename std::vector\< T \> & ob)` [related]`

*deserialize a vector of deserializable content from an engine.*

## AUTHOR

*Generated automatically by Doxygen for CommonC++ from the source code.*
