📄 mcowrap.h
字号:
/******************************************************************* * * * This file is a part of the eXtremeDB source code * * Copyright (c) 2001-2006 McObject LLC * * All Rights Reserved * * * * eXtremeDB runtime generated interface definitions * * * *******************************************************************//* * ++ * *\file mcowrap.h * * PROJECT: eXtremeDB\n * * SUBSYSTEM: eXtremeDB internal interface\n * * MODULE: mcowrap.h\n * * ABSTRACT: eXtremeDB internal interface definitions\n * * HISTORY:\n * 1. 2000-2002 TP versions 1-2 created\n * 2. 01-Jul-2002 TP dictionary extended (XML support)\n * 3. 25-Aug-2002 TP added layout sizes to mco_dict_struct_t\n * 4. 29-Aug-2002 TP vectors, arrays api modified, version 2.1\n * 5. 12-Sep-2002 TP added XML Schema support\n * 6. 27-Sep-2002 TP added n_structs\n * 7. 27-Dec-2002 TP High Availability support\n * 8. 23-Feb-2003 TP added num_HA_estimation\n * 9. 03-Jun-2003 TP added initialization to numeric fields\n * 10. 08-Jun-2004 TP added compact method\n * 11. 22-Oct-2004 AK added refto_class field\n * 12. 01-Nov-2004 AK added order_no field\n * 13. 04-Dec-2004 AK added mco_is_the_objects_same() routine\n * 14. 15-Nov-2005 SS adopted to Doxygen\n * -- */#ifndef MCO_WRAP__H__#define MCO_WRAP__H__#ifdef __cplusplusextern "C" { #endif#include "mco.h"#include "mcotargt.h"#ifdef __cplusplus}#endif#ifdef MCO_CFG_WCHAR_SUPPORT #include <stdarg.h> #include <wchar.h>#endif#ifdef __cplusplusextern "C" { #endif#if defined(MCO_PLATFORM_X64) && defined(MCO_LONG_OBJECTS) typedef mco_puint mco_obj_offset;#else //MCO_PLATFORM_X64_MCO_LONG_OBJECTS typedef uint4 mco_obj_offset; #endif //MCO_PLATFORM_X64_MCO_LONG_OBJECTS/** dictionary: *//** layout for field/structure in a parent struct/class */typedef struct mco_datalayout_t_{ uint2 c_size; /**< compact: size not including dynamic part */ uint2 c_align; /**< compact: align */ uint2 c_offset; uint2 u_size; /**< notcompact: size not including dynamic part */ uint2 u_align; /**< notcompact: align */ uint2 u_offset;}mco_datalayout_t;/** field information relative to holding struct/class */typedef struct mco_dict_field_t_{ const char * name; mco_datalayout_t layout; uint1 field_el_type; /**< MCO_DB_FLDTYPE_E */ uint1 flags; /**< MCO_DICT_FLDF_ */ uint2 array_size; /**< for array fields */ int4 struct_num; /**< if field is nested struct/optional struct, index of mco_dict_struct_t_ */ uint2 field_size; /**< of the field, 0 when statically unknown */ int2 refto_class; /**< index of a class inside mco_dict_class_info_t table */ void * init_data; /**< depending on type; array has init values for each el */ uint1 order_no; /**< order of the field in class declaration */ uint2 event_id; uint1 pad1; /**< paddings */}mco_dict_field_t;typedef struct mco_dict_struct_t_{ const char * name; uint2 flags; /**< MCO_DICT_STF_... */ uint2 n_fields; mco_dict_field_t * fields; /**< [ n_fields ] */ uint2 c_size; /**< compact: size not including dynamic part */ uint2 c_align; /**< compact: align */ uint2 u_size; /**< notcompact: size not including dynamic part */ uint2 u_align; /**< notcompact: align */}mco_dict_struct_t;typedef struct mco_dict_index_field_t_ /**< index field description */{#if defined(MCO_PLATFORM_X64) && defined(MCO_LONG_OBJECTS) /**< for an index compact flag is known statically */ mco_puint field_offset; /**< for vstruct_based - offset in a structure - vect el */ /**< For vtype_based: 0 */ mco_puint vect_field_offset; /**< offset used for v_based indexes. */#else //MCO_PLATFORM_X64_MCO_LONG_OBJECTS /**< for an index compact flag is known statically */ uint4 field_offset; /**< for vstruct_based - offset in a structure - vect el */ /**< For vtype_based: 0 */ uint4 vect_field_offset; /**< offset used for v_based indexes. */#endif //MCO_PLATFORM_X64_MCO_LONG_OBJECTS uint2 field_size; /**< of the field, 0 when statically unknown */ uint1 field_type; /**< MCO_DB_FLDTYPE_E */ uint1 fld_flags; /**< MCO_DB_INDFLD_... */// MCO_CFG_SEPINDECES uint2 fld_idx; /**< index of the field inside a struct */}mco_dict_index_field_t;/** Index descriptor */typedef struct mco_dict_index_t_ { uint2 class_code; uint2 numof_fields;#if defined(MCO_PLATFORM_X64) && defined(MCO_LONG_OBJECTS) mco_pint vect_field_offset; /**< -1 for not v_based */#else //MCO_PLATFORM_X64_MCO_LONG_OBJECTS uint4 vect_field_offset; /**< -1 for not v_based */#endif //MCO_PLATFORM_X64_MCO_LONG_OBJECTS uint2 flags; /**< MCO_DB_INDF_... */ mco_dict_index_field_t * fields; uint4 numof_keys_estimate;/**< for hash indexes */}mco_dict_index_t;typedef struct mco_dict_class_info_t_ /**< indexes specification for a class */{ int2 first_index_num; /**< index numbers are sequential for a class */ int2 last_index_num; /**< if < first_index_num => no indexes */ int2 list_index_num; /**< <0 => no list support */ int2 autoid_index_num; /**< <0 => no autoid */ uint2 fixedsize; /**< 0 for dynamic classes */ uint2 autoid_offset; /**< - for compact or not; 0 if no autoid */ int2 history_index_num; /**< -1 if no history index */ uint2 history_length; /**< 0 if no history index */ uint2 history_offset; /**< 0 if no history field, for compact or not*/ int2 first_event_num; /**< events numbers are sequential */ int2 last_event_num; /**< if < last_event_num => no events */ uint2 flags; /**< MCO_DB_TYPINFO_... */ mco_dict_struct_t * struct_ptr; /**< layout & members info */ uint4 init_size; /**< initial allocation size */ uint2 auto_oid_offset; /**< HA support */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -