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);
489 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
490 DB_Database_create_table(DB_Table_T *table,
493 RTI_SIZE_T record_size,
494 DB_IndexCompare_T compare_func,
495 struct DB_TableProperty *property);
514 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
515 DB_Database_delete_table(DB_Database_T db,DB_Table_T table);
539 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
540 DB_Table_create_record(DB_Table_T table,DB_Record_T *record);
559 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
560 DB_Table_insert_record(DB_Table_T table, DB_Record_T record);
581 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
582 DB_Table_remove_record(DB_Table_T table,DB_Record_T *record,DB_Key_T key);
600 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
601 DB_Table_delete_record(DB_Table_T table,DB_Record_T record);
624 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
625 DB_Table_delete_record_w_dtor(DB_Table_T table,DB_Record_T record,
626 DB_Table_RecordDtor_T dtor);
651 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
652 DB_Table_create_index(DB_Table_T table,
654 DB_IndexCompare_T compare_func,
655 const struct DB_IndexProperty *
const property);
673 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
674 DB_Table_delete_index(DB_Table_T table,DB_Index_T index);
700 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
701 DB_Table_select_all(DB_Table_T table,DB_Index_T index,DB_Cursor_T *cursor);
722 #define DB_Table_select_all_default(table_,eh_) \
723 DB_Table_select_all(table_,DB_TABLE_DEFAULT_INDEX,eh_)
746 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
747 DB_Table_select_match(DB_Table_T table,DB_Index_T index,
748 DB_Record_T *record,DB_Key_T key);
770 SHOULD_CHECK_RETURN DBDllExport DB_ReturnCode_T
771 DB_Table_select_range(DB_Table_T table,DB_Index_T index,
773 DB_Key_T lower,DB_Key_T upper);
788 DBDllExport
const char*
789 DB_Table_get_name(DB_Table_T table);
802 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
803 DB_Cursor_get_count(DB_Cursor_T cursor,RTI_INT32 *count);
825 MUST_CHECK_RETURN DBDllExport DB_ReturnCode_T
826 DB_Cursor_get_next(DB_Cursor_T handle, DB_Record_T *record);
848 DB_Cursor_finish(DB_Table_T table,DB_Cursor_T cursor);