code.h

00001 /* 
00002    EyeDB Object Database Management System
00003    Copyright (C) 1994-2008 SYSRA
00004    
00005    EyeDB is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public
00007    License as published by the Free Software Foundation; either
00008    version 2.1 of the License, or (at your option) any later version.
00009    
00010    EyeDB is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014    
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with this library; if not, write to the Free Software
00017    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA 
00018 */
00019 
00020 /*
00021    Author: Eric Viara <viara@sysra.com>
00022 */
00023 
00024 
00025 #ifndef _EYEDB_CODE_H
00026 #define _EYEDB_CODE_H
00027 
00028 #define E_XDR
00029 
00030 namespace eyedb {
00031 
00032   extern void
00033   char_code(Data *, Offset *, Size *, const char *),
00034     int16_code(Data *, Offset *, Size *, const eyedblib::int16 *),
00035     int32_code(Data *, Offset *, Size *, const eyedblib::int32 *),
00036     int64_code(Data *, Offset *, Size *, const eyedblib::int64 *),
00037     double_code(Data *, Offset *, Size *, const double *),
00038     string_code(Data *, Offset *, Size *, const char *),
00039     bound_string_code(Data *, Offset *, Size *, unsigned int,
00040                       const char *),
00041     buffer_code(Data *, Offset *, Size *, Data, Size);
00042 
00043 #ifdef XDR_TRACE_OID
00044 #define oid_code(DATA, OFFSET, SIZE, OID) \
00045  do { \
00046    fprintf(stdout, "Called from %s:%d\n", __FILE__, __LINE__); \
00047   _oid_code(DATA, OFFSET, SIZE, OID); \
00048    fprintf(stdout, "\n"); \
00049  } while(0)
00050   extern void
00051   _oid_code(Data *, Offset *, Size *, const eyedbsm::Oid *);
00052 #else
00053   extern void
00054   oid_code(Data *, Offset *, Size *, const eyedbsm::Oid *);
00055 
00056 #endif
00057 
00058   extern void
00059   char_decode(Data, Offset *, char *),
00060     int16_decode(Data, Offset *, eyedblib::int16 *),
00061     int32_decode(Data, Offset *, eyedblib::int32 *),
00062     int64_decode(Data, Offset *, eyedblib::int64 *),
00063     double_decode(Data, Offset *, double *),
00064     string_decode(Data, Offset *, char **),
00065     bound_string_decode(Data, Offset *, unsigned int, char **),
00066     buffer_decode(Data, Offset *, Data, Size);
00067 
00068   extern void
00069   oid_code(Data out_data, const Data in_data),
00070     int16_code(Data out_data, const Data in_data),
00071     int32_code(Data out_data, const Data in_data),
00072     int64_code(Data out_data, const Data in_data),
00073     double_code(Data out_data, const Data in_data);
00074 
00075 #ifdef XDR_TRACE_OID
00076 #define oid_decode(DATA, OFFSET, OID) \
00077  do { \
00078    fprintf(stdout, "Called from %s:%d\n", __FILE__, __LINE__); \
00079   _oid_decode(DATA, OFFSET, OID); \
00080    fprintf(stdout, "\n"); \
00081  } while(0)
00082   extern void
00083   _oid_decode(Data, Offset *, eyedbsm::Oid *);
00084 #else
00085   extern void
00086   oid_decode(Data, Offset *, eyedbsm::Oid *);
00087 #endif
00088 
00089   extern int
00090   object_header_code(Data *, Offset *, Size *, const ObjectHeader *),
00091     object_header_code_head(Data, const ObjectHeader *),
00092     object_header_decode(Data, Offset *, ObjectHeader *),
00093     object_header_decode_head(Data, ObjectHeader *);
00094 
00095   /* XDR */
00096 #ifdef E_XDR
00097   extern void
00098   xdr_char_code(Data *, Offset *, Size *, const char *),
00099     xdr_int16_code(Data *, Offset *, Size *, const eyedblib::int16 *),
00100     xdr_int32_code(Data *, Offset *, Size *, const eyedblib::int32 *),
00101     xdr_int64_code(Data *, Offset *, Size *, const eyedblib::int64 *),
00102     xdr_double_code(Data *, Offset *, Size *, const double *),
00103     xdr_string_code(Data *, Offset *, Size *, const char *),
00104     xdr_bound_string_code(Data *, Offset *, Size *, unsigned int,
00105                           const char *),
00106     xdr_buffer_code(Data *, Offset *, Size *, Data, Size),
00107     xdr_oid_code(Data *, Offset *, Size *, const eyedbsm::Oid *);
00108 
00109   extern void
00110   xdr_char_decode(Data, Offset *, char *),
00111     xdr_int16_decode(Data, Offset *, eyedblib::int16 *),
00112     xdr_int32_decode(Data, Offset *, eyedblib::int32 *),
00113     xdr_int64_decode(Data, Offset *, eyedblib::int64 *),
00114     xdr_double_decode(Data, Offset *, double *),
00115     xdr_string_decode(Data, Offset *, char **),
00116     xdr_bound_string_decode(Data, Offset *, unsigned int, char **),
00117     xdr_buffer_decode(Data, Offset *, Data, Size),
00118     xdr_oid_decode(Data, Offset *, eyedbsm::Oid *);
00119 
00120   extern int
00121   xdr_object_header_code(Data *, Offset *, Size *, const ObjectHeader *),
00122     xdr_object_header_code_head(Data, const ObjectHeader *),
00123     xdr_object_header_decode(Data, Offset *, ObjectHeader *),
00124     xdr_object_header_decode_head(Data, ObjectHeader *);
00125 #endif
00126 
00127   extern void br_code(const char *msg);
00128 }
00129 
00130 #endif

Generated on Mon Dec 22 18:15:51 2008 for eyedb by  doxygen 1.5.3