libtrbase  1.0.2
Web server and task management solution.
serializable.h File Reference
#include "tr/interface.h"
+ Include dependency graph for serializable.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef void(* fptr_serialize) (void *, unsigned char **, size_t *)
 
typedef void(* fptr_unserialize) (void *, const unsigned char *, size_t)
 

Functions

 TR_INTERFACE (TR_Serializable)
 
void TR_serialize (void *serializable, unsigned char **serialized, size_t *nserialized)
 
void TR_unserialize (void *serializable, const unsigned char *serialized, size_t nserialized)
 

Detailed Description

Classes that implement this interface can be converted to an array of bytes and created from an array of bytes if it has the correct format. The format of th byte array is class specific.

Author
Georg Hopp

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file serializable.h.

Typedef Documentation

typedef void(* fptr_serialize) (void *, unsigned char **, size_t *)

Definition at line 33 of file serializable.h.

typedef void(* fptr_unserialize) (void *, const unsigned char *, size_t)

Definition at line 34 of file serializable.h.

Function Documentation

TR_INTERFACE ( TR_Serializable  )

Definition at line 36 of file serializable.h.

References TR_IFID.

36  {
37  TR_IFID;
38  fptr_serialize serialize;
39  fptr_unserialize unserialize;
40 };
#define TR_IFID
Definition: interface.h:61
void(* fptr_unserialize)(void *, const unsigned char *, size_t)
Definition: serializable.h:34
void(* fptr_serialize)(void *, unsigned char **, size_t *)
Definition: serializable.h:33
void TR_serialize ( void *  serializable,
unsigned char **  serialized,
size_t *  nserialized 
)
inline

Serialize the given instance to a byte array

Definition at line 47 of file serializable.h.

References TR_CALL.

51 {
52  TR_CALL(serializable, TR_Serializable, serialize, serialized,
53  nserialized);
54 }
#define TR_CALL(object, _iface, method,...)
Definition: class.h:256
void TR_unserialize ( void *  serializable,
const unsigned char *  serialized,
size_t  nserialized 
)
inline

Unerialize the given instance to a byte array

Definition at line 61 of file serializable.h.

References TR_CALL.

65 {
66  TR_CALL(serializable, TR_Serializable, unserialize, serialized,
67  nserialized);
68 }
#define TR_CALL(object, _iface, method,...)
Definition: class.h:256