mco_db_extend
接口适用于实时数据库 RT 。
扩展数据库内存。
此函数扩展了数据库 dbname 所使用的内存量。
MCO_RET mco_db_extend(
/*IN*/ const char * dbname
/*IN*/ void * mem,
/*IN*/ uint4 size
);
参数
dbname
const char *
要扩展的数据库的名称。
mem
void *
内存块的起始地址。
size
uint4
内存块的大小 (以字节为单位)。
返回
MCO_S_OK
已成功扩展数据库内存。
MCO_E_NOINSTANCE
指定的数据库未打开。
MCO_ERR_TRN
发生数据库事务错误。(例如。数据库已经被具有打开事务的其他线程打开.)。
示例
/* 应用程序代码片段 */
const char * dbname = "SimpleDb";
int main(int argc, char* argv[])
{
mco_db_h db;
MCO_RET rc;
mco_device_t dev;
mco_db_params_t db_params;
uint4 free_pages;
uint4 total_pages;
if( (rc = mco_runtime_start()) != MCO_S_OK)
exit(-1);
...
rc = mco_db_open_dev( dbname, simpledb_get_dictionary(), &dev, 1, &db_params);
...
rc = mco_db_connect(dbname, &db);
...
/* 检测到内存不足的情况 */
mco_db_free_pages(db, &freepages);
mco_db_total_pages(db, &totalpages );
if(freepages < totalpages / 10)
{
// 扩展数据库
char * mem2 = malloc(SECOND_SEGSZ);
if( mem2 )
{
rc = mco_db_extend(dbname, mem2, SECOND_SEGSZ);
...
}
}
}
文件
- 头文件:
mco.h
- 源文件:
mcodb.c
- 库:
libmcolib.a