亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? types.c

?? PB 熟悉的哥們希望大家可以互相學習一下
?? C
字號:
/***************************************************************
 *                                                             *
 * Copyright (c) 2001-2007 McObject LLC. All Right Reserved.   *
 *                                                             *
 ***************************************************************/

/* This samples demonstartes various data types supported
 * by eXtremeDB.
 * insert() function creates an object that contains fields
 * of various types - integers, arrays, vectors, blob, string
 * see types.mco
 * erase() function deletes previously created objects one
 * by-one. Memory statistics is collected before and after
 * the objects are inserted and deleted.
 */

#include <platform.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "typesdb.h"

static const char* dbname = "TypesDb";
static const int SEGSZ = 1024 * 8000UL;
#ifndef MCO_PLATFORM_X64
    static const int PAGESIZE = 96;
#else 
    static const int PAGESIZE = 192;
#endif 

const int MAP_ADDRESS = 0x20000000;

static int obj_count = 0;

#define NUMOBJECTS 2000

void _SH_(void)
{

    char text[] = 
    {
        "\nThis samples demonstartes various data types supported\n"
            "by eXtremeDB. It creates and than deletes a number of objects\n"
            "with fields of different types - integer numbers, arrays, vectors\n"
            "and blobs. Class statistics and memory usage is displayed\n"
    };

    char text1[] = 
    {
        "Copyright (c) 2001-2007 McObject LLC. All Right Reserved.\n\n"
    };

    printf("%s\neXtremeDB runtime version %d.%d, build %d\n%s\n\nPress Enter to start", text, MCO_COMP_VER_MAJOR,
           MCO_COMP_VER_MINOR, MCO_COMP_BUILD_NUM, text1);

    getchar();

}


void showStat(mco_db_h db, uint2 class_code)
{
    MCO_RET rc = 0;
    mco_trans_h t;
    mco_class_stat_t stat;

    mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
    rc = mco_class_stat_get(t, class_code, &stat);
    mco_trans_commit(t);

    if (rc == MCO_S_OK)
    {
        printf("\n\tStatistics for the class with code %d:\n""\tNumber of objects:\t%ld\n"
               "\tTotal core pages used:\t%ld\n""\tTotal blob pages used:\t%ld\n""\tTotal core space used:\t%ld\n",
               class_code, stat.objects_num, stat.core_pages, stat.blob_pages, stat.core_space);
    }
}


void showMem(mco_db_h db)
{
    mco_puint totalpg, freepg;

    mco_db_free_pages(db, &freepg);
    mco_db_total_pages(db, &totalpg);

    printf("\n\tMemory Report:\n\ttotal pages=%d (%dK)\n\tfree pages=%d (%dK)\n\tused %dK\n", totalpg, totalpg*
           PAGESIZE / 1024, freepg, freepg* PAGESIZE / 1024, (totalpg - freepg)* PAGESIZE / 1024);
}


static int random_string(int len, char* str)
{
    int ind;

    for (ind = 0; ind < len; ind++)
    {
        int num = 'A' + rand() % ('Z' - 'A');
        str[ind] = (char)num;
    }
    str[len] = '\0';
    return 0;

}


static uint2 rand2(uint2 lowlimit, uint2 uplimit)
{
    int n = rand();
    return (n % (uplimit - lowlimit + 1)) + lowlimit;
}


static void get_random_string(char* to)
{
    static const char* exchange[3] = 
    {
        "NASDAQ", "AMEX", "NYSE"
    };
    strcpy(to, exchange[rand2(0, 2)]);
}


/* 
 */
static int erase(mco_db_h db)
{
    mco_cursor_t csr;
    mco_trans_h t;
    AllTypes types_obj;
    int8 u8;
    MCO_RET rc;

    mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);

    /* initialize cursor */
    rc = AllTypes_list_cursor(t, &csr);

    if (rc != MCO_S_OK)
    {
        mco_trans_commit(t);
        return rc;
    }

    rc = mco_cursor_first(t, &csr);
    AllTypes_from_cursor(t, &csr, &types_obj);

    AllTypes_autoid_get(&types_obj, &u8);
    rc = AllTypes_delete(&types_obj);
    if (rc)
    {
        mco_trans_rollback(t);
        #ifdef MCO_CFG_QUAD_STRUCT
            printf("\nError erasing object with autoid = {%ld, %ld}\n", u8.lo, u8.hi);
        #else /* MCO_CFG_QUAD_STRUCT */
            printf("\nError erasing object with autoid = {%lld}\n", u8);
        #endif /* MCO_CFG_QUAD_STRUCT */
    }

    mco_trans_commit(t);
    //  printf("\nObject with autoid = {%ld, %ld} deleted successfully\n", u8.lo, u8.hi);
    obj_count++;

    return 0;
}


static int insert(mco_db_h db, int num)
{

    int i;
    MCO_RET rc;
    mco_trans_h t;
    AllTypes types_obj;

    char str[8];
    DynStruct ds;
    FixedStruct fs;
    time_t ltime;

    static mco_uquad u8 = 
    {
        0
    };

    rc = mco_trans_start(db, MCO_READ_WRITE, MCO_TRANS_FOREGROUND, &t);
    if (rc)
    {
        return rc;
    }

    rc = AllTypes_new(t, &types_obj);
    if (rc)
    {
        //printf("rc=%d\n", rc);
        goto err;
    }

    /* mco_time . This is unformatted time that corresponds
    to ANSI time_t */
    time(&ltime);
    AllTypes_time_in_put(&types_obj, (mco_time)ltime);

    /* integers */
    AllTypes_u1_put(&types_obj, (uint1)num);
    AllTypes_u2_put(&types_obj, (uint2)num);
    AllTypes_u4_put(&types_obj, (uint4)num);

    mco_uquad_increment(&u8);
    AllTypes_u8_put(&types_obj, u8);

    /* arrays */
    for (i = 0; i < AllTypes_ds_length; i++)
    {
        AllTypes_ds_put(&types_obj, (uint2)i, &ds);
        get_random_string(str);
        DynStruct_s_put(&ds, str, (uint2)strlen(str));
    }

    for (i = 0; i < AllTypes_fs_length; i++)
    {
        AllTypes_fs_put(&types_obj, (uint2)i, &fs);

        FixedStruct_u4_put(&fs, (uint4)rand());
        FixedStruct_u8_put(&fs, u8);

    }

    for (i = 0; i < AllTypes_vint4_length; i++)
    {
        AllTypes_vint4_put(&types_obj, (uint2)i, (uint4)rand());
    }

    /* vectors */
    {
        uint2 nelem = rand2(1, 20);
        AllTypes_vs_alloc(&types_obj, nelem);
        for (i = 0; i < nelem; i++)
        {
            get_random_string(str);
            AllTypes_vs_put(&types_obj, (uint2)i, str, (uint2)strlen(str));
        }
    }

    /* blob */
    {
        char text[2000];
        random_string(sizeof(text) - 1, text);
        rc = AllTypes_blo_put(&types_obj, text, (uint4)strlen(text));
    }

    rc = mco_trans_commit(t);
    obj_count++;
    return rc;

    err: rc = mco_trans_rollback(t);
    return rc;
}


/* fatal error handler */
static void errhandler(int n)
{
    printf("\neXtremeDB runtime fatal error: %d", n);
    getchar();
    exit( - 1);
}


int main(void)
{
    MCO_RET rc;
    mco_db_h db = 0;
    int num = NUMOBJECTS;
    char* start_mem;
    mco_runtime_info_t info;

    _SH_();
    mco_get_runtime_info(&info);
    if (info.mco_shm_supported)
    {
        start_mem = (char*)MAP_ADDRESS;
    }
    else
    {
        start_mem = (char*)malloc(SEGSZ);
        if (!start_mem)
        {
            printf("Couldn't allocated memory\n");
            exit(1);
        }
    };

    /* set fatal error handler */
    mco_error_set_handler(&errhandler);

    rc = mco_runtime_start();

    rc = mco_db_open(dbname, typesdb_get_dictionary(), start_mem, SEGSZ, (uint2)PAGESIZE);

    if (rc)
    {
        printf("\nerror creating database");
        if (!info.mco_shm_supported)
        {
            free(start_mem);
        }
        exit(1);
    }

    /* connect to the database, obtain a database handle */
    mco_db_connect(dbname, &db);
    printf(
           "\nDatabase created successfully, db handle = %d\n%dK allocated for the database\nDatabase pagesize is %d bytes\n\n", db, SEGSZ / 1024, PAGESIZE);

    showStat(db, AllTypes_code);
    showMem(db);

    srand((unsigned)time(NULL));
    while (0 < num--)
    {
        /* create a new object */
        rc = insert(db, num);
        if (rc != 0)
        {
            break;
        }
    }

    showStat(db, AllTypes_code);

    num = NUMOBJECTS;
    obj_count = 0;
    /* delete all objects */
    while (0 < num--)
    {
        rc = erase(db);
        if (rc != 0)
        {
            break;
        }
    }

    showStat(db, AllTypes_code);
    showMem(db);

    /* disconnect from the database, db is no longer valid */
    mco_db_disconnect(db);
    /* destroy the db */
    mco_db_close(dbname);
    mco_runtime_stop();

    if (!info.mco_shm_supported)
    {
        free(start_mem);
    }

    printf("\nPress Enter key to exit");
    getchar();
    PROG_EXIT(0);

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色天天综合色天天久久| 国产精品美女久久久久aⅴ | 黄网站免费久久| 99国产精品久| 欧美一级二级三级乱码| 国产精品理伦片| 日韩中文字幕亚洲一区二区va在线| 丝袜诱惑亚洲看片| 91网页版在线| 精品国产一区二区亚洲人成毛片| 一区二区在线观看免费| 欧美日韩dvd在线观看| 国产亚洲人成网站| 国产精品国产三级国产aⅴ中文| 亚洲精品国久久99热| 国产成人免费视频一区| 欧美电视剧在线看免费| 亚洲一区二区欧美| www.欧美日韩| 国产日韩精品久久久| 蜜桃一区二区三区在线| 欧美精品三级在线观看| 久久久久亚洲蜜桃| 久国产精品韩国三级视频| 欧美日韩久久久久久| 亚洲综合男人的天堂| 99综合电影在线视频| 中文久久乱码一区二区| 久久国产精品72免费观看| 欧美夫妻性生活| 午夜精品久久久久久久99水蜜桃 | 91麻豆精品国产91久久久久久久久| 亚洲三级小视频| 91在线你懂得| 亚洲精选免费视频| 精品视频123区在线观看| 91啪在线观看| 亚洲午夜免费电影| 欧美日韩日本视频| 麻豆成人久久精品二区三区小说| 日韩精品一区二区三区蜜臀| 极品瑜伽女神91| 国产精品福利电影一区二区三区四区| 国产中文一区二区三区| 亚洲国产精品二十页| 91麻豆国产香蕉久久精品| 亚洲黄一区二区三区| 日韩精品中文字幕在线一区| 国产一区 二区| 亚洲精选在线视频| 精品国产乱码久久久久久牛牛| 国产成人精品亚洲777人妖| 亚洲欧美偷拍三级| 欧美一区二区三区在线电影| 国产jizzjizz一区二区| 亚洲在线视频一区| 欧美精品一区二区不卡| 99视频精品全部免费在线| 亚洲欧美日韩国产另类专区 | 另类综合日韩欧美亚洲| 久久久久久99精品| 日本韩国一区二区三区视频| 蜜臀91精品一区二区三区| 1区2区3区国产精品| 91麻豆精品国产91久久久| 成人激情综合网站| 亚洲影院理伦片| 国产精品欧美综合在线| 日韩欧美一级在线播放| 色综合天天综合色综合av| 久久99精品久久久久婷婷| 日韩精品国产欧美| 国产丝袜在线精品| 日韩欧美亚洲另类制服综合在线| 色噜噜狠狠色综合中国| 成人av在线一区二区三区| 奇米影视一区二区三区小说| 一区二区在线看| 中文字幕在线一区二区三区| 国产欧美一区二区三区网站 | 日本一区二区三级电影在线观看| 日韩欧美一二区| 日韩一级成人av| 欧美一级久久久久久久大片| 成人一级片网址| 国产一区二区三区久久久| 国产福利91精品一区二区三区| 国产一区二区三区观看| 免费av网站大全久久| 亚洲第一主播视频| 国产·精品毛片| www.欧美精品一二区| 91蜜桃免费观看视频| 91在线视频播放| 欧美午夜精品一区| 欧美中文字幕一二三区视频| 欧美日韩色一区| 91精品国产色综合久久不卡电影 | 日韩欧美成人午夜| 精品国产成人在线影院| 26uuu国产在线精品一区二区| 国产调教视频一区| 中文一区在线播放| 日韩一级片在线观看| 欧美韩日一区二区三区四区| 国产欧美日韩精品在线| 亚洲老妇xxxxxx| 久久99国产精品久久99果冻传媒| 国产一区二区久久| 日本久久精品电影| 精品国产一区二区三区久久影院| 久久久蜜臀国产一区二区| 亚洲狠狠丁香婷婷综合久久久| 亚洲欧洲日韩综合一区二区| 国产精品视频一区二区三区不卡| 国产精品丝袜一区| 亚洲国产精品一区二区www在线| gogo大胆日本视频一区| 国产精品小仙女| 不卡一区中文字幕| 欧美成人r级一区二区三区| 亚洲国产成人高清精品| 不卡的电视剧免费网站有什么| 欧美一级一区二区| 午夜精品久久久久久久99樱桃 | 欧美色爱综合网| 亚洲人妖av一区二区| 成人免费毛片高清视频| 久久一夜天堂av一区二区三区| 麻豆成人av在线| 日韩一区二区在线看片| 丝袜亚洲另类丝袜在线| 在线免费观看不卡av| 一区二区三区视频在线看| aaa欧美色吧激情视频| 亚洲国产一区在线观看| 日韩av中文字幕一区二区| 91啪在线观看| 不卡影院免费观看| 91精品国产欧美一区二区| 日韩主播视频在线| 欧美日韩国产区一| 亚洲第一av色| 67194成人在线观看| 美国欧美日韩国产在线播放| 日韩一级高清毛片| 国产麻豆精品久久一二三| 久久女同精品一区二区| 国产盗摄视频一区二区三区| 中文字幕在线视频一区| 色视频欧美一区二区三区| 性欧美疯狂xxxxbbbb| 7777精品伊人久久久大香线蕉最新版| 日韩不卡一区二区三区| 精品国内二区三区| 91在线观看一区二区| 亚洲国产精品久久艾草纯爱| 精品成人佐山爱一区二区| 国产福利精品导航| 亚洲最色的网站| 欧美精品一区二区三区蜜桃视频| 国产91丝袜在线观看| 亚洲一区二区中文在线| 日韩免费高清av| 色婷婷激情一区二区三区| 久久精品国产亚洲高清剧情介绍| 国产精品午夜在线观看| 欧美日韩在线播放三区四区| 国产乱码字幕精品高清av| 亚洲欧美日韩国产中文在线| 精品久久人人做人人爰| 色网综合在线观看| 国产69精品久久99不卡| 人人狠狠综合久久亚洲| 亚洲欧洲日韩av| 久久色在线视频| 欧美一区二区三区在线观看视频| 福利一区二区在线观看| 精品亚洲成av人在线观看| 视频一区欧美日韩| 亚洲欧美视频在线观看| 精品福利一区二区三区| 欧美高清性hdvideosex| 在线观看免费成人| 99精品国产91久久久久久| 国内精品写真在线观看| 日韩精品五月天| 亚洲成人高清在线| 亚洲国产人成综合网站| 亚洲激情在线播放| 亚洲欧洲国产日本综合| 国产女人水真多18毛片18精品视频| 欧美不卡视频一区| 911国产精品| 7777精品伊人久久久大香线蕉最新版 | 中文在线一区二区| 国产精品免费人成网站| ...xxx性欧美| 亚洲午夜久久久久久久久电影院| 自拍av一区二区三区|