testconcur.cpp

来自「最新版本!fastdb是高效的内存数据库系统」· C++ 代码 · 共 79 行

CPP
79
字号
//-< TESTCONCUR.CPP >------------------------------------------------*--------*
// FastDB                    Version 1.0         (c) 1999  GARRET    *     ?  *
// (Main Memory Database Management System)                          *   /\|  *
//                                                                   *  /  \  *
//                          Created:     28-Mar-2002  K.A. Knizhnik  * / [] \ *
//                          Last update: 28-Mar-2002  K.A. Knizhnik  * GARRET *
//-------------------------------------------------------------------*--------*
// Concurrency test
//-------------------------------------------------------------------*--------*

#include "fastdb.h"
#include <stdio.h>

USE_FASTDB_NAMESPACE

class Record
{
public:
    int4 recId;

    TYPE_DESCRIPTOR((KEY(recId, INDEXED)));
};

class Process
{
public:
    int4 pid;

    TYPE_DESCRIPTOR((KEY(pid, INDEXED)));
};

REGISTER(Record);
REGISTER(Process);

dbDatabase recordDb, processDb;

int main(int argc, char* argv[])
{
    dbThread readThread, writeThread, insertThread, deleteThread;
    bool interactive = true;

    // Open Database Instance 1
    if (processDb.open("foobar", "./foobar.fdb"))
    {
        dbQuery q;
        dbCursor<Process> processes;
        Process proc;
        proc.pid = GetCurrentProcessId();
        insert(proc);
        printf("%d active processes\n", processes.select());
        processDb.precommit();
    } else
    {
        printf("Failed to open database\n");
        return 1;
    }

    // Open Database Instance 2
    if (recordDb.open("recorddb", "./recorddb.fdb"))
    {
        dbQuery q;
        dbCursor<Record> records;
        Record rec;
        rec.recId = GetCurrentProcessId();
        insert(rec);
        printf("%d record rows\n", records.select());
        recordDb.precommit();
    } else
    {
        printf("Failed to open database\n");
        return 1;
    }

    Sleep (10000);
    processDb.close();
    recordDb.close();
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?