1 2#ifndef _TPCBEXAMPLE_H_INCLUDE__ 3#define _TPCBEXAMPLE_H_INCLUDE__ 4 5#include <windows.h> 6#include "db.h" 7 8#define ACCOUNTS 1000 9#define BRANCHES 10 10#define TELLERS 100 11#define HISTORY 10000 12#define TRANSACTIONS 1000 13#define TESTDIR "TESTDIR" 14 15typedef enum { ACCOUNT, BRANCH, TELLER } FTYPE; 16 17extern "C" { 18void tpcb_errcallback(const DB_ENV *, const char *, const char *); 19} 20 21class TpcbExample 22{ 23public: 24 int createEnv(int); 25 void closeEnv(); 26 int populate(); 27 int run(int); 28 int txn(DB *, DB *, DB *, DB *, int, int, int); 29 int populateHistory(DB *, int, u_int32_t, u_int32_t, u_int32_t); 30 int populateTable(DB *, u_int32_t, u_int32_t, int, const char *); 31 32 TpcbExample(); 33 34 char *getHomeDir(char *, int); 35 wchar_t *getHomeDirW(wchar_t *, int); 36 void setHomeDir(char *); 37 void setHomeDirW(wchar_t *); 38 39#define ERR_STRING_MAX 1024 40 char msgString[ERR_STRING_MAX]; 41 int accounts; 42 int branches; 43 int history; 44 int tellers; 45 46 // options configured through the advanced dialog. 47 int fast_mode; 48 int verbose; 49 int cachesize; 50 int rand_seed; 51private: 52 DB_ENV *dbenv; 53 char homeDirName[MAX_PATH]; 54 wchar_t wHomeDirName[MAX_PATH]; 55 56 u_int32_t randomId(FTYPE, u_int32_t, u_int32_t, u_int32_t); 57 u_int32_t randomInt(u_int32_t, u_int32_t); 58 // no need for copy and assignment 59 TpcbExample(const TpcbExample &); 60 void operator = (const TpcbExample &); 61}; 62 63#endif 64