70 typedef struct DB_Database* DB_Database_T;
80 typedef struct DB_Table *DB_Table_T;
90 typedef void *DB_Record_T;
95 typedef void *DB_Key_T;
105 typedef struct DB_Cursor *DB_Cursor_T;
115 typedef struct DB_Index *DB_Index_T;
122 #define URTDB_DATABASE_NAME_MAX_LENGTH 16
127 #define URTDB_TABLE_NAME_MAX_LENGTH 16
134 #define DB_TABLE_DEFAULT_INDEX 0
149 DB_RETCODE_BAD_PARAMETER,
165 DB_RETCODE_OUT_OF_RESOURCES,
171 DB_RETCODE_INVALIDATED_CURSOR,
187 DB_LOCK_LEVEL_NONE = 0,
192 DB_LOCK_LEVEL_SHARED = 1,
197 DB_LOCK_LEVEL_GLOBAL = 2
208 DB_SELECTOPCODE_EQUAL = 1,
213 DB_SELECTOPCODE_BETWEEN = 2,
218 DB_SELECTOPCODE_ALL = 3
229 struct DB_DatabaseProperty
234 RTI_SIZE_T max_tables;
239 DB_LockLevel_T lock_mode;
245 #define DB_DatabaseProperty_INITIALIZER \
254 #define DB_SELECT_OP2_AS_KEY (0x1)
259 #define DB_SELECT_OP2_IS_KEY(flags) (flags & DB_SELECT_OP2_AS_KEY)
280 FUNCTION_MUST_TYPEDEF(
282 (*DB_IndexCompare_T)(RTI_INT32 flags,
const DB_Record_T op1,
void *key)
305 FUNCTION_SHOULD_TYPEDEF(
307 (*DB_Table_RecordDtor_T)(DB_Record_T record)
318 struct DB_TableProperty
323 RTI_SIZE_T max_records;
328 RTI_SIZE_T max_indices;
334 RTI_SIZE_T max_cursors;
340 #define DB_TableProperty_INITIALIZER \
355 struct DB_IndexProperty
360 RTI_SIZE_T max_entries;
366 #define DB_IndexProperty_INITIALIZER \
389 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
390 DB_Database_create(DB_Database_T *db,
392 struct DB_DatabaseProperty *property,
416 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
417 DB_Database_delete(DB_Database_T db);
441 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
442 DB_Database_lock(DB_Database_T db);
460 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
461 DB_Database_unlock(DB_Database_T db);
472 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
473 DB_Database_lock_release(DB_Database_T db,RTI_UINT32 *level);
483 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
484 DB_Database_lock_resume(DB_Database_T db,RTI_UINT32 level);
512 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
513 DB_Database_create_table(DB_Table_T *table,
516 RTI_SIZE_T record_size,
517 DB_IndexCompare_T compare_func,
518 struct DB_TableProperty *property);
537 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
538 DB_Database_delete_table(DB_Database_T db,DB_Table_T table);
562 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
563 DB_Table_create_record(DB_Table_T table,DB_Record_T *record);
582 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
583 DB_Table_insert_record(DB_Table_T table, DB_Record_T record);
604 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
605 DB_Table_remove_record(DB_Table_T table,DB_Record_T *record,DB_Key_T key);
623 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
624 DB_Table_delete_record(DB_Table_T table,DB_Record_T record);
647 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
648 DB_Table_delete_record_w_dtor(DB_Table_T table,DB_Record_T record,
649 DB_Table_RecordDtor_T dtor);
674 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
675 DB_Table_create_index(DB_Table_T table,
677 DB_IndexCompare_T compare_func,
678 const struct DB_IndexProperty *
const property);
696 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
697 DB_Table_delete_index(DB_Table_T table,DB_Index_T index);
723 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
724 DB_Table_select_all(DB_Table_T table,DB_Index_T index,DB_Cursor_T *cursor);
745 #define DB_Table_select_all_default(table_,eh_) \
746 DB_Table_select_all(table_,DB_TABLE_DEFAULT_INDEX,eh_)
769 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
770 DB_Table_select_match(DB_Table_T table,DB_Index_T index,
771 DB_Record_T *record,DB_Key_T key);
793 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
794 DB_Table_select_range(DB_Table_T table,DB_Index_T index,
796 DB_Key_T lower,DB_Key_T upper);
811 DBDllExport
const char*
812 DB_Table_get_name(DB_Table_T table);
825 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
826 DB_Cursor_get_count(DB_Cursor_T cursor,RTI_INT32 *count);
848 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
849 DB_Cursor_get_next(DB_Cursor_T handle, DB_Record_T *record);
871 DB_Cursor_finish(DB_Table_T table,DB_Cursor_T cursor);