├── ChangeLog.txt ├── EULA.htm ├── EULA.txt ├── README ├── README.EGenSimpleTest ├── TestHarness ├── EGenTest │ ├── inc │ │ ├── EGenBaseTestSuite.h │ │ ├── EGenTestError.h │ │ ├── EGenTestHarness.h │ │ ├── EGenTestLoader.h │ │ ├── EGenTestSUT.h │ │ ├── EGenTestSuiteOne.h │ │ ├── EGenTestSuiteTwo.h │ │ └── EGenTestSuites_stdafx.h │ ├── prj │ │ ├── EGenTest.sln │ │ ├── EGenTest.vcproj │ │ ├── EGenTestSuites.vcproj │ │ ├── Makefile │ │ ├── ReadMe.txt │ │ ├── RefEGenBaseLoader.vcproj │ │ ├── RefEGenDriverCELib.vcproj │ │ ├── RefEGenDriverDMLib.vcproj │ │ ├── RefEGenDriverMEELib.vcproj │ │ ├── RefEGenFlatFileLoad.vcproj │ │ ├── RefEGenLogger.vcproj │ │ ├── RefEGenNullLoader.vcproj │ │ ├── RefEGenTables.vcproj │ │ └── RefEGenUtilities.vcproj │ └── src │ │ ├── EGenTest.cpp │ │ ├── EGenTestHarness.cpp │ │ ├── EGenTestSUT.cpp │ │ ├── EGenTestSuiteOne.cpp │ │ └── EGenTestSuiteTwo.cpp └── Reference │ ├── flat_in │ ├── AreaCode.txt │ ├── Charge.txt │ ├── CommissionRate.txt │ ├── Company.txt │ ├── CompanyCompetitor.txt │ ├── CompanySPRate.txt │ ├── Exchange.txt │ ├── FemaleFirstName.txt │ ├── Industry.txt │ ├── LastName.txt │ ├── MaleFirstName.txt │ ├── NonTaxableAccountName.txt │ ├── Sector.txt │ ├── Security.txt │ ├── StatusType.txt │ ├── StreetName.txt │ ├── StreetSuffix.txt │ ├── TaxRatesCountry.txt │ ├── TaxRatesDivision.txt │ ├── TaxableAccountName.txt │ ├── TradeType.txt │ └── ZipCode.txt │ ├── inc │ ├── AddressTable.h │ ├── BaseLoader.h │ ├── BaseLoaderFactory.h │ ├── BaseLogFormatter.h │ ├── BaseLogger.h │ ├── Brokers.h │ ├── CE.h │ ├── CESUTInterface.h │ ├── CETxnInputGenerator.h │ ├── CETxnMixGenerator.h │ ├── ChargeTable.h │ ├── CommissionRateTable.h │ ├── CompanyCompetitorFile.h │ ├── CompanyCompetitorTable.h │ ├── CompanyFile.h │ ├── CompanyTable.h │ ├── CustomerAccountsAndPermissionsTable.h │ ├── CustomerSelection.h │ ├── CustomerTable.h │ ├── CustomerTaxratesTable.h │ ├── DM.h │ ├── DMSUTInterface.h │ ├── DailyMarketTable.h │ ├── DateTime.h │ ├── DriverParamSettings.h │ ├── DriverTypes.h │ ├── EGenBaseLoader_stdafx.h │ ├── EGenError.h │ ├── EGenGenerateAndLoad.h │ ├── EGenGenerateAndLoadBaseOutput.h │ ├── EGenGenerateAndLoadStandardOutput.h │ ├── EGenGenerateAndLoad_stdafx.h │ ├── EGenLoader_stdafx.h │ ├── EGenLogFormatterTab.h │ ├── EGenLogger.h │ ├── EGenNullLoader_stdafx.h │ ├── EGenStandardTypes.h │ ├── EGenTables_stdafx.h │ ├── EGenUtilities_stdafx.h │ ├── EGenVersion.h │ ├── ExchangeTable.h │ ├── FinalTransform.h │ ├── FinancialTable.h │ ├── FixedArray.h │ ├── FixedMap.h │ ├── FlatAccountPermissionLoad.h │ ├── FlatAddressLoad.h │ ├── FlatBrokerLoad.h │ ├── FlatCashTransactionLoad.h │ ├── FlatChargeLoad.h │ ├── FlatCommissionRateLoad.h │ ├── FlatCompanyCompetitorLoad.h │ ├── FlatCompanyLoad.h │ ├── FlatCustomerAccountLoad.h │ ├── FlatCustomerLoad.h │ ├── FlatCustomerTaxrateLoad.h │ ├── FlatDailyMarketLoad.h │ ├── FlatExchangeLoad.h │ ├── FlatFile.h │ ├── FlatFileLoad_stdafx.h │ ├── FlatFileLoader.h │ ├── FlatFinancialLoad.h │ ├── FlatHoldingHistoryLoad.h │ ├── FlatHoldingLoad.h │ ├── FlatHoldingSummaryLoad.h │ ├── FlatIndustryLoad.h │ ├── FlatLastTradeLoad.h │ ├── FlatLoaderFactory.h │ ├── FlatNewsItemLoad.h │ ├── FlatNewsXRefLoad.h │ ├── FlatSectorLoad.h │ ├── FlatSecurityLoad.h │ ├── FlatSettlementLoad.h │ ├── FlatStatusTypeLoad.h │ ├── FlatTaxrateLoad.h │ ├── FlatTradeHistoryLoad.h │ ├── FlatTradeLoad.h │ ├── FlatTradeRequestLoad.h │ ├── FlatTradeTypeLoad.h │ ├── FlatWatchItemLoad.h │ ├── FlatWatchListLoad.h │ ├── FlatZipCodeLoad.h │ ├── HoldingsAndTradesTable.h │ ├── IndustryTable.h │ ├── InputFile.h │ ├── InputFileNoWeight.h │ ├── InputFlatFilesDeclarations.h │ ├── InputFlatFilesStructure.h │ ├── LastTradeTable.h │ ├── MEE.h │ ├── MEEPriceBoard.h │ ├── MEESUTInterface.h │ ├── MEESecurity.h │ ├── MEETickerTape.h │ ├── MEETradeRequestActions.h │ ├── MEETradingFloor.h │ ├── MiscConsts.h │ ├── Money.h │ ├── NewsItemAndXRefTable.h │ ├── NullLoad_stdafx.h │ ├── NullLoader.h │ ├── NullLoaderFactory.h │ ├── Person.h │ ├── RNGSeeds.h │ ├── Random.h │ ├── SectorTable.h │ ├── SecurityFile.h │ ├── SecurityPriceRange.h │ ├── SecurityTable.h │ ├── StatusTypeTable.h │ ├── SyncLockInterface.h │ ├── TableConsts.h │ ├── TableTemplate.h │ ├── Table_Defs.h │ ├── TaxrateTable.h │ ├── TimerWheel.h │ ├── TimerWheelTimer.h │ ├── TradeGen.h │ ├── TradeTypeIDs.h │ ├── TradeTypeTable.h │ ├── TxnHarnessBrokerVolume.h │ ├── TxnHarnessCustomerPosition.h │ ├── TxnHarnessDBInterface.h │ ├── TxnHarnessDataMaintenance.h │ ├── TxnHarnessMarketFeed.h │ ├── TxnHarnessMarketWatch.h │ ├── TxnHarnessSecurityDetail.h │ ├── TxnHarnessSendToMarketInterface.h │ ├── TxnHarnessStructs.h │ ├── TxnHarnessTradeCleanup.h │ ├── TxnHarnessTradeLookup.h │ ├── TxnHarnessTradeOrder.h │ ├── TxnHarnessTradeResult.h │ ├── TxnHarnessTradeStatus.h │ ├── TxnHarnessTradeUpdate.h │ ├── WatchListsAndItemsTable.h │ ├── Wheel.h │ ├── WheelTime.h │ ├── ZipCodeTable.h │ ├── bucketsimulator.h │ ├── error.h │ ├── progressmeter.h │ ├── progressmeterinterface.h │ ├── strutil.h │ ├── threading.h │ ├── threading_pthread.h │ ├── threading_single.h │ ├── unusedflag.h │ └── win │ │ ├── DBLoader.h │ │ ├── ODBCAccountPermissionLoad.h │ │ ├── ODBCAddressLoad.h │ │ ├── ODBCBrokerLoad.h │ │ ├── ODBCCashTransactionLoad.h │ │ ├── ODBCChargeLoad.h │ │ ├── ODBCCommissionRateLoad.h │ │ ├── ODBCCompanyCompetitorLoad.h │ │ ├── ODBCCompanyLoad.h │ │ ├── ODBCCustomerAccountLoad.h │ │ ├── ODBCCustomerLoad.h │ │ ├── ODBCCustomerTaxrateLoad.h │ │ ├── ODBCDailyMarketLoad.h │ │ ├── ODBCExchangeLoad.h │ │ ├── ODBCFinancialLoad.h │ │ ├── ODBCHoldingHistoryLoad.h │ │ ├── ODBCHoldingLoad.h │ │ ├── ODBCHoldingSummaryLoad.h │ │ ├── ODBCIndustryLoad.h │ │ ├── ODBCLastTradeLoad.h │ │ ├── ODBCLoad_stdafx.h │ │ ├── ODBCLoaderFactory.h │ │ ├── ODBCNewsItemLoad.h │ │ ├── ODBCNewsXRefLoad.h │ │ ├── ODBCSectorLoad.h │ │ ├── ODBCSecurityLoad.h │ │ ├── ODBCSettlementLoad.h │ │ ├── ODBCStatusTypeLoad.h │ │ ├── ODBCTaxrateLoad.h │ │ ├── ODBCTradeHistoryLoad.h │ │ ├── ODBCTradeLoad.h │ │ ├── ODBCTradeRequestLoad.h │ │ ├── ODBCTradeTypeLoad.h │ │ ├── ODBCWatchItemLoad.h │ │ ├── ODBCWatchListLoad.h │ │ ├── ODBCZipCodeLoad.h │ │ ├── SyncLock.h │ │ └── error.h │ ├── prj │ ├── EGen.sln │ ├── EGenBaseLoader.vcproj │ ├── EGenDriverCELib.vcproj │ ├── EGenDriverDMLib.vcproj │ ├── EGenDriverMEELib.vcproj │ ├── EGenFlatFileLoad.vcproj │ ├── EGenGenerateAndLoad.vcproj │ ├── EGenLoader.vcproj │ ├── EGenLogger.vcproj │ ├── EGenMSSQLLoader.vcproj │ ├── EGenNullLoader.vcproj │ ├── EGenTables.vcproj │ ├── EGenUtilities.vcproj │ ├── EGenValidate.vcproj │ ├── Makefile │ └── Readme │ └── src │ ├── AddressTable.cpp │ ├── BaseLogger.cpp │ ├── CE.cpp │ ├── CETxnInputGenerator.cpp │ ├── CETxnMixGenerator.cpp │ ├── CustomerSelection.cpp │ ├── CustomerTable.cpp │ ├── DM.cpp │ ├── DateTime.cpp │ ├── EGenGenerateAndLoad.cpp │ ├── EGenLoader.cpp │ ├── EGenLogFormatterTab.cpp │ ├── EGenValidate.cpp │ ├── EGenVersion.cpp │ ├── FlatFileLoader.cpp │ ├── InputFlatFilesStructure.cpp │ ├── MEE.cpp │ ├── MEEPriceBoard.cpp │ ├── MEESecurity.cpp │ ├── MEETickerTape.cpp │ ├── MEETradingFloor.cpp │ ├── Money.cpp │ ├── Person.cpp │ ├── Random.cpp │ ├── ReadRowFunctions.cpp │ ├── ReadRowFunctions_sscanf.cpp │ ├── TradeGen.cpp │ ├── WheelTime.cpp │ ├── bucketsimulator.cpp │ ├── error.cpp │ ├── progressmeter.cpp │ ├── progressmeterinterface.cpp │ ├── strutil.cpp │ ├── threading.cpp │ └── win │ └── DBLoader.cpp ├── flat_in ├── AreaCode.txt ├── Charge.txt ├── CommissionRate.txt ├── Company.txt ├── CompanyCompetitor.txt ├── CompanySPRate.txt ├── Exchange.txt ├── FemaleFirstName.txt ├── Industry.txt ├── LastName.txt ├── MaleFirstName.txt ├── NonTaxableAccountName.txt ├── Sector.txt ├── Security.txt ├── StatusType.txt ├── StreetName.txt ├── StreetSuffix.txt ├── TaxRatesCountry.txt ├── TaxRatesDivision.txt ├── TaxableAccountName.txt ├── TradeType.txt └── ZipCode.txt ├── inc ├── AddressTable.h ├── BaseLoader.h ├── BaseLoaderFactory.h ├── BaseLogFormatter.h ├── BaseLogger.h ├── BigMath.h ├── BrokerVolumeDB.h ├── Brokers.h ├── CE.h ├── CESUT.h ├── CESUTInterface.h ├── CETxnInputGenerator.h ├── CETxnMixGenerator.h ├── ChargeTable.h ├── CommissionRateTable.h ├── CompanyCompetitorFile.h ├── CompanyCompetitorTable.h ├── CompanyFile.h ├── CompanyTable.h ├── CustomerAccountsAndPermissionsTable.h ├── CustomerPositionDB.h ├── CustomerSelection.h ├── CustomerTable.h ├── CustomerTaxratesTable.h ├── DBConnection.h ├── DM.h ├── DMSUT.h ├── DMSUTInterface.h ├── DailyMarketTable.h ├── DataMaintenanceDB.h ├── DateTime.h ├── DriverParamSettings.h ├── DriverTypes.h ├── EGenBaseLoader_stdafx.h ├── EGenError.h ├── EGenGenerateAndLoad.h ├── EGenGenerateAndLoadBaseOutput.h ├── EGenGenerateAndLoadStandardOutput.h ├── EGenGenerateAndLoad_stdafx.h ├── EGenLoader_stdafx.h ├── EGenLogFormatterTab.h ├── EGenLogger.h ├── EGenNullLoader_stdafx.h ├── EGenNullLogger.h ├── EGenSimpleTest.h ├── EGenStandardTypes.h ├── EGenTables_common.h ├── EGenTables_stdafx.h ├── EGenUtilities_stdafx.h ├── EGenVersion.h ├── ExchangeTable.h ├── FinancialTable.h ├── FixedArray.h ├── FixedMap.h ├── FlatAccountPermissionLoad.h ├── FlatAddressLoad.h ├── FlatBrokerLoad.h ├── FlatCashTransactionLoad.h ├── FlatChargeLoad.h ├── FlatCommissionRateLoad.h ├── FlatCompanyCompetitorLoad.h ├── FlatCompanyLoad.h ├── FlatCustomerAccountLoad.h ├── FlatCustomerLoad.h ├── FlatCustomerTaxrateLoad.h ├── FlatDailyMarketLoad.h ├── FlatExchangeLoad.h ├── FlatFile.h ├── FlatFileLoad_common.h ├── FlatFileLoad_stdafx.h ├── FlatFileLoader.h ├── FlatFinancialLoad.h ├── FlatHoldingHistoryLoad.h ├── FlatHoldingLoad.h ├── FlatHoldingSummaryLoad.h ├── FlatIndustryLoad.h ├── FlatLastTradeLoad.h ├── FlatLoaderFactory.h ├── FlatNewsItemLoad.h ├── FlatNewsXRefLoad.h ├── FlatSectorLoad.h ├── FlatSecurityLoad.h ├── FlatSettlementLoad.h ├── FlatStatusTypeLoad.h ├── FlatTaxrateLoad.h ├── FlatTradeHistoryLoad.h ├── FlatTradeLoad.h ├── FlatTradeRequestLoad.h ├── FlatTradeTypeLoad.h ├── FlatWatchItemLoad.h ├── FlatWatchListLoad.h ├── FlatZipCodeLoad.h ├── HoldingsAndTradesTable.h ├── IndustryTable.h ├── InputFile.h ├── InputFileNoWeight.h ├── InputFlatFilesDeclarations.h ├── InputFlatFilesStructure.h ├── LastTradeTable.h ├── MEE.h ├── MEEPriceBoard.h ├── MEESUT.h ├── MEESUTInterface.h ├── MEESecurity.h ├── MEETickerTape.h ├── MEETradeRequestActions.h ├── MEETradingFloor.h ├── MarketFeedDB.h ├── MarketWatchDB.h ├── MiscConsts.h ├── Money.h ├── NewsItemAndXRefTable.h ├── NullLoad_stdafx.h ├── NullLoader.h ├── NullLoaderFactory.h ├── ODBCERR.h ├── Person.h ├── RNGSeeds.h ├── Random.h ├── RtHistogram.h ├── SectorTable.h ├── SecurityDetailDB.h ├── SecurityFile.h ├── SecurityPriceRange.h ├── SecurityTable.h ├── SendToMarket.h ├── StatusTypeTable.h ├── TableConsts.h ├── TableTemplate.h ├── Table_Defs.h ├── TaxrateTable.h ├── TimerWheel.h ├── TimerWheelTimer.h ├── TradeCleanupDB.h ├── TradeGen.h ├── TradeLookupDB.h ├── TradeOrderDB.h ├── TradeResultDB.h ├── TradeStatusDB.h ├── TradeTypeIDs.h ├── TradeTypeTable.h ├── TradeUpdateDB.h ├── TxnDBBase.h ├── TxnHarnessBrokerVolume.h ├── TxnHarnessCustomerPosition.h ├── TxnHarnessDBInterface.h ├── TxnHarnessDataMaintenance.h ├── TxnHarnessMarketFeed.h ├── TxnHarnessMarketWatch.h ├── TxnHarnessSecurityDetail.h ├── TxnHarnessSendToMarketInterface.h ├── TxnHarnessStructs.h ├── TxnHarnessTradeCleanup.h ├── TxnHarnessTradeLookup.h ├── TxnHarnessTradeOrder.h ├── TxnHarnessTradeResult.h ├── TxnHarnessTradeStatus.h ├── TxnHarnessTradeUpdate.h ├── WatchListsAndItemsTable.h ├── Wheel.h ├── WheelTime.h ├── ZipCodeTable.h ├── bucketsimulator.h ├── error.h ├── locking.h ├── odbc_wrapper.h ├── progressmeter.h ├── progressmeterinterface.h ├── strutil.h ├── threading.h ├── unusedflag.h └── win │ ├── DBLoader.h │ ├── ODBCAccountPermissionLoad.h │ ├── ODBCAddressLoad.h │ ├── ODBCBrokerLoad.h │ ├── ODBCCashTransactionLoad.h │ ├── ODBCChargeLoad.h │ ├── ODBCCommissionRateLoad.h │ ├── ODBCCompanyCompetitorLoad.h │ ├── ODBCCompanyLoad.h │ ├── ODBCCustomerAccountLoad.h │ ├── ODBCCustomerLoad.h │ ├── ODBCCustomerTaxrateLoad.h │ ├── ODBCDailyMarketLoad.h │ ├── ODBCExchangeLoad.h │ ├── ODBCFinancialLoad.h │ ├── ODBCHoldingHistoryLoad.h │ ├── ODBCHoldingLoad.h │ ├── ODBCHoldingSummaryLoad.h │ ├── ODBCIndustryLoad.h │ ├── ODBCLastTradeLoad.h │ ├── ODBCLoad_stdafx.h │ ├── ODBCLoaderFactory.h │ ├── ODBCNewsItemLoad.h │ ├── ODBCNewsXRefLoad.h │ ├── ODBCSectorLoad.h │ ├── ODBCSecurityLoad.h │ ├── ODBCSettlementLoad.h │ ├── ODBCStatusTypeLoad.h │ ├── ODBCTaxrateLoad.h │ ├── ODBCTradeHistoryLoad.h │ ├── ODBCTradeLoad.h │ ├── ODBCTradeRequestLoad.h │ ├── ODBCTradeTypeLoad.h │ ├── ODBCWatchItemLoad.h │ ├── ODBCWatchListLoad.h │ ├── ODBCZipCodeLoad.h │ └── error.h ├── prj ├── Makefile ├── Makefile.new └── VS2008 │ ├── EGen.sln │ ├── EGenBaseLoader.vcproj │ ├── EGenDriverCELib.vcproj │ ├── EGenDriverDMLib.vcproj │ ├── EGenDriverMEELib.vcproj │ ├── EGenFlatFileLoad.vcproj │ ├── EGenGenerateAndLoad.vcproj │ ├── EGenLoader.vcproj │ ├── EGenLogger.vcproj │ ├── EGenMSSQLLoader.vcproj │ ├── EGenNullLoader.vcproj │ ├── EGenTables.vcproj │ ├── EGenUtilities.vcproj │ └── EGenValidate.vcproj ├── scripts ├── mysql │ ├── 1_create_table.sql │ ├── 2_load_data.sql │ ├── 3_create_index.sql │ ├── 4_create_fk.sql │ └── 5_create_sequence.sql ├── oracle │ ├── 1_create_table.sql │ ├── 2_load_data.sh │ ├── 3_create_keys.sql │ ├── 4_create_fk_index.sql │ ├── 4_create_index.sql │ ├── 5_create_sequence.sh │ ├── 6_analyze_table.sql │ ├── AccountPermission.ctl │ ├── Address.ctl │ ├── Broker.ctl │ ├── CashTransaction.ctl │ ├── Charge.ctl │ ├── CommissionRate.ctl │ ├── Company.ctl │ ├── CompanyCompetitor.ctl │ ├── Customer.ctl │ ├── CustomerAccount.ctl │ ├── CustomerTaxrate.ctl │ ├── DailyMarket.ctl │ ├── Exchange.ctl │ ├── Financial.ctl │ ├── Holding.ctl │ ├── HoldingHistory.ctl │ ├── HoldingSummary.ctl │ ├── Industry.ctl │ ├── LastTrade.ctl │ ├── NewsItem.ctl │ ├── NewsXRef.ctl │ ├── Sector.ctl │ ├── Security.ctl │ ├── Settlement.ctl │ ├── StatusType.ctl │ ├── Taxrate.ctl │ ├── Trade.ctl │ ├── TradeHistory.ctl │ ├── TradeRequest.ctl │ ├── TradeType.ctl │ ├── WatchItem.ctl │ ├── WatchList.ctl │ └── ZipCode.ctl └── pgsql │ ├── 1_create_table.sql │ ├── 2_load_data.sql │ ├── 3_create_keys.sql │ ├── 4_create_fk_index.sql │ ├── 4_create_index.sql │ ├── 5_create_sequence.sql │ └── 6_analyze_table.sql ├── src ├── AddressTable.cpp ├── BaseLogger.cpp ├── BrokerVolumeDB.cpp ├── CE.cpp ├── CESUT.cpp ├── CETxnInputGenerator.cpp ├── CETxnMixGenerator.cpp ├── CustomerPositionDB.cpp ├── CustomerSelection.cpp ├── CustomerTable.cpp ├── DBConnection.cpp ├── DM.cpp ├── DMSUT.cpp ├── DataMaintenanceDB.cpp ├── DateTime.cpp ├── EGenGenerateAndLoad.cpp ├── EGenLoader.cpp ├── EGenLogFormatterTab.cpp ├── EGenSimpleTest.cpp ├── EGenValidate.cpp ├── EGenVersion.cpp ├── FlatFileLoader.cpp ├── InputFlatFilesStructure.cpp ├── MEE.cpp ├── MEEPriceBoard.cpp ├── MEESUT.cpp ├── MEESecurity.cpp ├── MEETickerTape.cpp ├── MEETradingFloor.cpp ├── MarketFeedDB.cpp ├── MarketWatchDB.cpp ├── Money.cpp ├── Person.cpp ├── Random.cpp ├── ReadRowFunctions.cpp ├── ReadRowFunctions_istream.cpp ├── ReadRowFunctions_sscanf.cpp ├── RtHistogram.cpp ├── SecurityDetailDB.cpp ├── SendToMarket.cpp ├── TradeCleanupDB.cpp ├── TradeGen.cpp ├── TradeLookupDB.cpp ├── TradeOrderDB.cpp ├── TradeResultDB.cpp ├── TradeStatusDB.cpp ├── TradeUpdateDB.cpp ├── TxnDBBase.cpp ├── WheelTime.cpp ├── bucketsimulator.cpp ├── error.cpp ├── locking.cpp ├── odbc_wrapper.cpp ├── progressmeter.cpp ├── progressmeterinterface.cpp ├── strutil.cpp ├── threading.cpp └── win │ └── DBLoader.cpp └── unittest ├── Makefile ├── tc_checkcompliant.cpp ├── tc_main.cpp └── tc_securityfile.cpp /EULA.htm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Percona-Lab/tpce-mysql/d75bd4559e1dafd9a4d81593a762a447b39745f6/EULA.htm -------------------------------------------------------------------------------- /EULA.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Percona-Lab/tpce-mysql/d75bd4559e1dafd9a4d81593a762a447b39745f6/EULA.txt -------------------------------------------------------------------------------- /README.EGenSimpleTest: -------------------------------------------------------------------------------- 1 | simple TPC-E workload generator for developmental use of rdbms 2 | (based on http://www.tpc.org/tpce/spec/TPCE-v1.9.0.pdf ) 3 | 4 | ######################################################################### 5 | Attention: ODBC versions are not tested at all. And aren't supported now. 6 | ######################################################################### 7 | 8 | 9 | - EGen_v1.9.0.zip 10 | ( from http://www.tpc.org/tpce/ ) 11 | 12 | - unixODBC and the ODBC driver for your rdbms 13 | * Even if you use MySQL C API only, unixODBC headers are needed. 14 | 15 | 16 | 17 | 18 | 1. 19 | Extract files to EGen_v1.9.0/ (here!) from EGen_v1.9.0.zip 20 | 21 | 2. 22 | > cd EGen_v1.9.0/prj/ 23 | > cp Makefile.new Makefile 24 | 25 | 3. 26 | Configure Makefile as you like 27 | (default is for MySQL C API) 28 | 29 | 4. 30 | > make 31 | > cd .. 32 | 33 | 5. 34 | Generate data 35 | 36 | (ex. customers=1000, history=3days *These are too small for the TPC-E specification) 37 | > ./bin/EGenLoader -c 1000 -t 1000 -w 3 38 | 39 | *generated in ./flat_out (about 200MB) 40 | 41 | 6. 42 | Setup database using scripts in ./scripts/[rdbms name]/ 43 | 44 | 7. 45 | Testing 46 | 47 | (ex. MySQL C API ver. : rampup 10s, measure 300s, "CE" sessions 12) 48 | > ./bin/EGenSimpleTest -S server_name -D db_name -c 1000 -a 1000 -d 3 -r 10 -t 300 -u 12 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /TestHarness/EGenTest/inc/EGenBaseTestSuite.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef EGEN_BASE_TEST_SUITE_H 38 | #define EGEN_BASE_TEST_SUITE_H 39 | 40 | /* 41 | * Test suite interface class. 42 | */ 43 | 44 | namespace TPCETest 45 | { 46 | 47 | // Test suites description. 48 | // 49 | enum eTestSuite 50 | { 51 | eTestSuiteAll, 52 | eTestSuiteOne, // run one reference instance vs. one current instance 53 | eTestSuiteTwo // run one reference instance vs. two current instances 54 | }; 55 | 56 | class CEGenBaseTestSuite 57 | { 58 | public: 59 | 60 | /* 61 | * Run all the tests in the suite. 62 | * 63 | * PARAMETERS: 64 | * none. 65 | * 66 | * RETURNS: 67 | * none. 68 | */ 69 | virtual void Run() = 0; 70 | }; 71 | 72 | } // namespace TPCETest 73 | #endif // EGEN_BASE_TEST_SUITE_H -------------------------------------------------------------------------------- /TestHarness/EGenTest/inc/EGenTestError.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef EGEN_TEST_ERROR_H 38 | #define EGEN_TEST_ERROR_H 39 | 40 | /* 41 | * Test suite exception class. 42 | * 43 | */ 44 | 45 | #include "EGenTestSuites_stdafx.h" 46 | 47 | namespace TPCETest 48 | { 49 | 50 | const int iMaxTestErrMsg = 256; 51 | 52 | // Subclass from std::exception so that can throw on the stack (without 'new'). 53 | // 54 | class CEGenTestErr : public std::exception 55 | { 56 | std::string m_Msg; 57 | 58 | public: 59 | CEGenTestErr(char* szMsg) 60 | : m_Msg(szMsg) 61 | { 62 | } 63 | 64 | virtual const char* what() const throw() 65 | { 66 | return m_Msg.c_str(); 67 | } 68 | }; 69 | 70 | } // namespace TPCETest 71 | 72 | #endif // EGEN_TEST_ERROR_H -------------------------------------------------------------------------------- /TestHarness/EGenTest/prj/ReadMe.txt: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | EGenTest is a test harness designed to test two versions of EGen code. 38 | One, the Reference, is located in the ../Reference directory. It is supposed to 39 | be the correct and previously tested version. 40 | 41 | The other, the Current, is located in the ../.. directory. It is being compared 42 | to the Reference and any differences are reported. 43 | 44 | The following test suites are available: 45 | 46 | 1. Compare table generation classes, with two instances of the Current EGen being 47 | matched to one instance to the Reference EGen. By default, the breakdown of customer ranges is: 48 | EGen Reference: customers 1..5000 49 | EGen Current 1: customers 1..2000 50 | EGen Current 2: customers 2001..5000 51 | 52 | 2. Compare CCE and CDM generated transaction inputs, including matching transaction types. 53 | In order to be repeatable, a constructor with external RGN seeds is used. -------------------------------------------------------------------------------- /TestHarness/Reference/flat_in/Charge.txt: -------------------------------------------------------------------------------- 1 | TMB 1 5 2 | TMB 2 4.5 3 | TMB 3 2.5 4 | TMS 1 5 5 | TMS 2 4.5 6 | TMS 3 2.5 7 | TSL 1 6.5 8 | TSL 2 5.5 9 | TSL 3 3.5 10 | TLS 1 6 11 | TLS 2 5 12 | TLS 3 3 13 | TLB 1 6 14 | TLB 2 5 15 | TLB 3 3 16 | -------------------------------------------------------------------------------- /TestHarness/Reference/flat_in/CompanySPRate.txt: -------------------------------------------------------------------------------- 1 | 1 A 2 | 1 B 3 | 1 C 4 | 1 AA 5 | 1 AB 6 | 1 AC 7 | 1 BA 8 | 1 BB 9 | 1 BC 10 | 1 CA 11 | 1 CB 12 | 1 CC 13 | 1 AAA 14 | 1 AAB 15 | 1 AAC 16 | 1 ABA 17 | 1 ABB 18 | 1 ABC 19 | 1 ACA 20 | 1 ACB 21 | 1 ACC 22 | 1 BAA 23 | 1 BAB 24 | 1 BAC 25 | 1 BBA 26 | 1 BBB 27 | 1 BBC 28 | 1 BCA 29 | 1 BCB 30 | 1 BCC 31 | 1 CAA 32 | 1 CAB 33 | 1 CAC 34 | 1 CBA 35 | 1 CBB 36 | 1 CBC 37 | 1 CCA 38 | 1 CCB 39 | 1 CCC 40 | -------------------------------------------------------------------------------- /TestHarness/Reference/flat_in/Exchange.txt: -------------------------------------------------------------------------------- 1 | NYSE New York Stock Exchange 0930 1600 Simulates the New York Stock Exchange 1 2 | NASDAQ NASDAQ (National Association of Security Dealers and Quotations) 0930 1600 Simulates the NASDAQ 2 3 | AMEX American Stock Exchange 0930 1600 Simulates the American Stock Exchange 3 4 | PCX Pacific Exchange 0930 1600 Simulates the Pacific Exchange 4 5 | -------------------------------------------------------------------------------- /TestHarness/Reference/flat_in/NonTaxableAccountName.txt: -------------------------------------------------------------------------------- 1 | Traditional IRA 2 | Roth IRA 3 | IRA-SEP 4 | 401(k) 5 | Pension Account 6 | Rollover IRA 7 | Retirement Fund 8 | Roth 401(K) 9 | Flexible Spending 10 | Health Savings 11 | Non-Taxable Trust 12 | -------------------------------------------------------------------------------- /TestHarness/Reference/flat_in/Sector.txt: -------------------------------------------------------------------------------- 1 | BM Basic Materials 2 | CG Capital Goods 3 | CO Conglomerates 4 | CC Consumer Cyclical 5 | CN Consumer Non-Cyclical 6 | EN Energy 7 | FN Financial 8 | HC Healthcare 9 | SV Services 10 | TC Technology 11 | TR Transportation 12 | UT Utilities 13 | -------------------------------------------------------------------------------- /TestHarness/Reference/flat_in/StatusType.txt: -------------------------------------------------------------------------------- 1 | CMPT Completed 2 | ACTV Active 3 | SBMT Submitted 4 | PNDG Pending 5 | CNCL Canceled 6 | -------------------------------------------------------------------------------- /TestHarness/Reference/flat_in/StreetSuffix.txt: -------------------------------------------------------------------------------- 1 | 1 Street 2 | 1 Road 3 | 1 Court 4 | 1 Boulevard 5 | 1 Way 6 | 1 Lane 7 | 1 Crescent 8 | 1 Park 9 | 1 Avenue 10 | 1 Rue 11 | 1 Drive 12 | 1 South 13 | 1 North 14 | 1 West 15 | 1 East 16 | 1 Upper 17 | 1 Lower 18 | -------------------------------------------------------------------------------- /TestHarness/Reference/flat_in/TaxRatesCountry.txt: -------------------------------------------------------------------------------- 1 | 1 US1 U.S. Income Tax Bracket for the poor 0.15 2 | 1 US2 U.S. Income Tax Bracket for the huddled masses 0.275 3 | 1 US3 U.S. Income Tax Bracket for the masses 0.305 4 | 1 US4 U.S. Income Tax Bracket for the well to do 0.355 5 | 1 US5 U.S. Income Tax Bracket for the filthy rich 0.391 6 | 2 CN1 Canadian Income Tax for the poor 0.16 7 | 2 CN2 Canadian Income Tax for the huddled masses 0.22 8 | 2 CN3 Canadian Income Tax for the well to do 0.26 9 | 2 CN4 Canadian Income Tax for the filthy rich 0.29 10 | -------------------------------------------------------------------------------- /TestHarness/Reference/flat_in/TaxableAccountName.txt: -------------------------------------------------------------------------------- 1 | Emergency Expenses 2 | Vacation Account 3 | Healthcare Fund 4 | New Car Account 5 | House Money 6 | Individual Account 7 | Family Trust 8 | Custodial Account 9 | Joint Account 10 | Business Account 11 | College Fund 12 | Savings Account 13 | Play Money 14 | -------------------------------------------------------------------------------- /TestHarness/Reference/flat_in/TradeType.txt: -------------------------------------------------------------------------------- 1 | TMB Market-Buy 0 1 2 | TMS Market-Sell 1 1 3 | TSL Stop-Loss 1 0 4 | TLS Limit-Sell 1 0 5 | TLB Limit-Buy 0 0 6 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/DriverTypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Matt Emmerton 35 | */ 36 | 37 | /****************************************************************************** 38 | * Description: Driver types and names 39 | ******************************************************************************/ 40 | 41 | #ifndef DRIVER_TYPES_H 42 | #define DRIVER_TYPES_H 43 | 44 | namespace TPCE 45 | { 46 | 47 | enum eDriverType 48 | { 49 | eDriverEGenLoader, 50 | eDriverAll, 51 | eDriverCE, 52 | eDriverMEE, 53 | eDriverDM, 54 | eDriverMax 55 | }; 56 | 57 | extern char szDriverTypeNames[eDriverMax][14]; 58 | } // namespace TPCE 59 | 60 | 61 | #endif // DRIVER_TYPES_H 62 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/EGenBaseLoader_stdafx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef EGEN_BASELOADER_STDAFX_H 38 | #define EGEN_BASELOADER_STDAFX_H 39 | 40 | #include "BaseLoader.h" 41 | #include "BaseLoaderFactory.h" 42 | 43 | #endif // #ifndef EGEN_BASELOADER_STDAFX_H 44 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/EGenGenerateAndLoad_stdafx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef EGEN_GENERATE_AND_LOAD_STDAFX_H 38 | #define EGEN_GENERATE_AND_LOAD_STDAFX_H 39 | 40 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | 51 | using namespace std; 52 | 53 | #include "EGenTables_stdafx.h" 54 | #include "EGenBaseLoader_stdafx.h" 55 | #include "EGenGenerateAndLoadBaseOutput.h" 56 | #include "EGenGenerateAndLoadStandardOutput.h" 57 | #include "DriverParamSettings.h" 58 | #include "EGenLogger.h" 59 | #include "EGenGenerateAndLoad.h" 60 | 61 | #endif // #ifndef EGEN_GENERATE_AND_LOAD_STDAFX_H 62 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/EGenNullLoader_stdafx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | // stdafx.h : include file for standard system include files, 38 | // or project specific include files that are used frequently, but 39 | // are changed infrequently 40 | // 41 | 42 | #ifndef EGEN_NULLLOADER_STDAFX_H 43 | #define EGEN_NULLLOADER_STDAFX_H 44 | 45 | #include "NullLoader.h" 46 | #include "NullLoaderFactory.h" 47 | 48 | #endif // #ifndef EGEN_NULLLOADER_STDAFX_H 49 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/FlatChargeLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for CHARGE. 39 | */ 40 | #ifndef FLAT_CHARGE_LOAD_H 41 | #define FLAT_CHARGE_LOAD_H 42 | 43 | namespace TPCE 44 | { 45 | 46 | class CFlatChargeLoad : public CFlatFileLoader 47 | { 48 | public: 49 | CFlatChargeLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 50 | 51 | /* 52 | * Writes a record to the file. 53 | */ 54 | void WriteNextRecord(PT next_record) 55 | { 56 | int rc = fprintf( hOutFile, ChargeRowFmt, 57 | next_record->CH_TT_ID, 58 | next_record->CH_C_TIER, 59 | next_record->CH_CHRG 60 | ); 61 | if (rc < 0) { 62 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatChargeLoad::WriteNextRecord"); 63 | } 64 | } 65 | }; 66 | 67 | } // namespace TPCE 68 | 69 | #endif //FLAT_CHARGE_LOAD_H 70 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/FlatIndustryLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for INDUSTRY. 39 | */ 40 | #ifndef FLAT_INDUSTRY_LOAD_H 41 | #define FLAT_INDUSTRY_LOAD_H 42 | 43 | namespace TPCE 44 | { 45 | 46 | class CFlatIndustryLoad : public CFlatFileLoader 47 | { 48 | public: 49 | CFlatIndustryLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 50 | 51 | /* 52 | * Writes a record to the file. 53 | */ 54 | void WriteNextRecord(PT next_record) 55 | { 56 | int rc = fprintf( hOutFile, IndustryRowFmt, 57 | next_record->IN_ID, 58 | next_record->IN_NAME, 59 | next_record->IN_SC_ID 60 | ); 61 | if (rc < 0) { 62 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatIndustryLoad::WriteNextRecord"); 63 | } 64 | } 65 | }; 66 | 67 | } // namespace TPCE 68 | 69 | #endif //FLAT_INDUSTRY_LOAD_H 70 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/FlatNewsXRefLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for NEWS_XREF. 39 | */ 40 | #ifndef FLAT_NEWS_XREF_LOAD_H 41 | #define FLAT_NEWS_XREF_LOAD_H 42 | 43 | namespace TPCE 44 | { 45 | 46 | class CFlatNewsXRefLoad : public CFlatFileLoader 47 | { 48 | public: 49 | CFlatNewsXRefLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode) {}; 50 | 51 | /* 52 | * Writes a record to the file. 53 | */ 54 | void WriteNextRecord(PT next_record) 55 | { 56 | int rc = fprintf( hOutFile, NewsXRefRowFmt, 57 | next_record->NX_NI_ID, 58 | next_record->NX_CO_ID 59 | ); 60 | if (rc < 0) { 61 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatNewsXRefLoad::WriteNextRecord"); 62 | } 63 | } 64 | }; 65 | 66 | } // namespace TPCE 67 | 68 | #endif //FLAT_NEWS_XREF_LOAD_H 69 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/FlatSectorLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for SECTOR. 39 | */ 40 | #ifndef FLAT_SECTOR_LOAD_H 41 | #define FLAT_SECTOR_LOAD_H 42 | 43 | namespace TPCE 44 | { 45 | 46 | class CFlatSectorLoad : public CFlatFileLoader 47 | { 48 | public: 49 | CFlatSectorLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 50 | 51 | /* 52 | * Writes a record to the file. 53 | */ 54 | void WriteNextRecord(PT next_record) 55 | { 56 | int rc = fprintf( hOutFile, SectorRowFmt, 57 | next_record->SC_ID, 58 | next_record->SC_NAME 59 | ); 60 | if (rc < 0) { 61 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatSectorLoad::WriteNextRecord"); 62 | } 63 | } 64 | }; 65 | 66 | } // namespace TPCE 67 | 68 | #endif //FLAT_SECTOR_LOAD_H 69 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/FlatStatusTypeLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for STATUS_TYPE. 39 | */ 40 | #ifndef FLAT_STATUS_TYPE_LOAD_H 41 | #define FLAT_STATUS_TYPE_LOAD_H 42 | 43 | namespace TPCE 44 | { 45 | 46 | class CFlatStatusTypeLoad : public CFlatFileLoader 47 | { 48 | public: 49 | CFlatStatusTypeLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 50 | 51 | /* 52 | * Writes a record to the file. 53 | */ 54 | void WriteNextRecord(PT next_record) 55 | { 56 | int rc = fprintf( hOutFile, StatusTypeRowFmt, 57 | next_record->ST_ID, 58 | next_record->ST_NAME 59 | ); 60 | if (rc < 0) { 61 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatStatusType::WriteNextRecord"); 62 | } 63 | } 64 | }; 65 | 66 | } // namespace TPCE 67 | 68 | #endif //FLAT_STATUS_TYPE_LOAD_H 69 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/FlatTaxrateLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for TAXRATE. 39 | */ 40 | #ifndef FLAT_TAXRATE_LOAD_H 41 | #define FLAT_TAXRATE_LOAD_H 42 | 43 | namespace TPCE 44 | { 45 | 46 | class CFlatTaxrateLoad : public CFlatFileLoader 47 | { 48 | public: 49 | CFlatTaxrateLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 50 | 51 | /* 52 | * Writes a record to the file. 53 | */ 54 | void WriteNextRecord(PT next_record) 55 | { 56 | int rc = fprintf( hOutFile, TaxrateRowFmt, 57 | next_record->TX_ID, 58 | next_record->TX_NAME, 59 | next_record->TX_RATE 60 | ); 61 | if (rc < 0) { 62 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatTaxrateLoad::WriteNextRecord"); 63 | } 64 | } 65 | }; 66 | 67 | } // namespace TPCE 68 | 69 | #endif //FLAT_TAXRATE_LOAD_H 70 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/FlatWatchItemLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for WATCH_ITEM. 39 | */ 40 | #ifndef FLAT_WATCH_ITEM_LOAD_H 41 | #define FLAT_WATCH_ITEM_LOAD_H 42 | 43 | namespace TPCE 44 | { 45 | 46 | class CFlatWatchItemLoad : public CFlatFileLoader 47 | { 48 | public: 49 | CFlatWatchItemLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 50 | 51 | /* 52 | * Writes a record to the file. 53 | */ 54 | void WriteNextRecord(PT next_record) 55 | { 56 | int rc = fprintf( hOutFile, WatchItemRowFmt, 57 | next_record->WI_WL_ID, 58 | next_record->WI_S_SYMB 59 | ); 60 | if (rc < 0) { 61 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatWatchItemLoad::WriteNextRecord"); 62 | } 63 | } 64 | }; 65 | 66 | } // namespace TPCE 67 | 68 | #endif //FLAT_WATCH_ITEM_LOAD_H 69 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/FlatWatchListLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for WATCH_LIST. 39 | */ 40 | #ifndef FLAT_WATCH_LIST_LOAD_H 41 | #define FLAT_WATCH_LIST_LOAD_H 42 | 43 | namespace TPCE 44 | { 45 | 46 | class CFlatWatchListLoad : public CFlatFileLoader 47 | { 48 | public: 49 | CFlatWatchListLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 50 | 51 | /* 52 | * Writes a record to the file. 53 | */ 54 | void WriteNextRecord(PT next_record) 55 | { 56 | int rc = fprintf( hOutFile, WatchListRowFmt, 57 | next_record->WL_ID, 58 | next_record->WL_C_ID 59 | ); 60 | if (rc < 0) { 61 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatWatchListLoad::WriteNextRecord"); 62 | } 63 | } 64 | }; 65 | 66 | } // namespace TPCE 67 | 68 | #endif //FLAT_WATCH_LIST_LOAD_H 69 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/FlatZipCodeLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for ZIP_CODE. 39 | */ 40 | #ifndef FLAT_ZIP_CODE_LOAD_H 41 | #define FLAT_ZIP_CODE_LOAD_H 42 | 43 | namespace TPCE 44 | { 45 | 46 | class CFlatZipCodeLoad : public CFlatFileLoader 47 | { 48 | public: 49 | CFlatZipCodeLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 50 | 51 | /* 52 | * Writes a record to the file. 53 | */ 54 | void WriteNextRecord(PT next_record) 55 | { 56 | int rc = fprintf( hOutFile, ZipCodeRowFmt, 57 | next_record->ZC_CODE, 58 | next_record->ZC_TOWN, 59 | next_record->ZC_DIV 60 | ); 61 | if (rc < 0) { 62 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatZipCodeLoad::WriteNextRecord"); 63 | } 64 | } 65 | }; 66 | 67 | } // namespace TPCE 68 | 69 | #endif //FLAT_ZIP_CODE_LOAD_H 70 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/MEETradeRequestActions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /****************************************************************************** 38 | * Description: These are the different actions the MEE can take 39 | * with an inbound trade request. 40 | ******************************************************************************/ 41 | 42 | #ifndef MEE_TRADE_REQUEST_ACTIONS_H 43 | #define MEE_TRADE_REQUEST_ACTIONS_H 44 | 45 | namespace TPCE 46 | { 47 | 48 | enum eMEETradeRequestAction 49 | { 50 | eMEEProcessOrder = 0, 51 | eMEESetLimitOrderTrigger 52 | }; 53 | 54 | } //namespace TPCE 55 | 56 | #endif //MEE_TRADE_REQUEST_ACTIONS_H 57 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/NullLoad_stdafx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef EGEN_NULLLOADER_STDAFX_H 38 | #define EGEN_NULLLOADER_STDAFX_H 39 | 40 | #include "NullLoader.h" 41 | #include "NullLoaderFactory.h" 42 | 43 | #endif // #ifndef EGEN_NULLLOADER_STDAFX_H 44 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/SecurityPriceRange.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /****************************************************************************** 38 | * Description: Minimum and maximum values for a security's price range 39 | ******************************************************************************/ 40 | 41 | #ifndef SECURITY_PRICE_RANGE_H 42 | #define SECURITY_PRICE_RANGE_H 43 | 44 | namespace TPCE 45 | { 46 | 47 | const double fMinSecPrice = 20.00; 48 | const double fMaxSecPrice = 30.00; 49 | 50 | } //namespace TPCE 51 | 52 | #endif //SECURITY_PRICE_RANGE_H 53 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/SyncLockInterface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef SYNCLOCK_H 38 | #define SYNCLOCK_H 39 | 40 | #include 41 | 42 | /* 43 | * Syncronization lock that lets only one thread acquire it. 44 | */ 45 | 46 | namespace TPCE 47 | { 48 | 49 | class CSyncLock 50 | { 51 | pthread_mutex_t mutex; 52 | public: 53 | CSyncLock() { 54 | pthread_mutex_init(&mutex, NULL); 55 | } 56 | ~CSyncLock() { 57 | pthread_mutex_destroy(&mutex); 58 | } 59 | 60 | // Acquire lock or block until it is available 61 | void ClaimLock() { 62 | pthread_mutex_lock(&mutex); 63 | } 64 | 65 | // Release lock so that it can be acquired again 66 | void ReleaseLock() { 67 | pthread_mutex_unlock(&mutex); 68 | } 69 | }; 70 | 71 | } // namespace TPCE 72 | 73 | #endif // #ifndef SYNCLOCK_H 74 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/TradeTypeIDs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /****************************************************************************** 38 | * Description: Trade Type IDs corresponding to the TradeType.txt flat 39 | * file. 40 | * Note: The order of enumeration members must match the 41 | * order of rows in the TradeType.txt flat file. 42 | ******************************************************************************/ 43 | 44 | #ifndef TRADE_TYPE_IDS_H 45 | #define TRADE_TYPE_IDS_H 46 | 47 | namespace TPCE 48 | { 49 | 50 | enum eTradeTypeID 51 | { 52 | eMarketBuy = 0, 53 | eMarketSell, 54 | eStopLoss, 55 | eLimitSell, 56 | eLimitBuy, 57 | 58 | eMaxTradeTypeID // should be the last - contains the number of items in the enumeration 59 | }; 60 | 61 | } //namespace TPCE 62 | 63 | #endif //TRADE_TYPE_IDS_H 64 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/TxnHarnessDataMaintenance.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef TXN_HARNESS_DATA_MAINTENANCE_H 38 | #define TXN_HARNESS_DATA_MAINTENANCE_H 39 | 40 | #include "TxnHarnessDBInterface.h" 41 | 42 | namespace TPCE 43 | { 44 | 45 | class CDataMaintenance 46 | { 47 | CDataMaintenanceDBInterface* m_db; 48 | 49 | public: 50 | CDataMaintenance(CDataMaintenanceDBInterface *pDB) 51 | : m_db(pDB) 52 | { 53 | }; 54 | 55 | void DoTxn( PDataMaintenanceTxnInput pTxnInput, PDataMaintenanceTxnOutput pTxnOutput ) 56 | { 57 | m_db->DoDataMaintenanceFrame1( pTxnInput, pTxnOutput); 58 | } 59 | }; 60 | 61 | } // namespace TPCE 62 | 63 | #endif //TXN_HARNESS_DATA_MAINTENANCE_H 64 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/TxnHarnessMarketWatch.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef TXN_HARNESS_MARKET_WATCH_H 38 | #define TXN_HARNESS_MARKET_WATCH_H 39 | 40 | #include "TxnHarnessDBInterface.h" 41 | 42 | namespace TPCE 43 | { 44 | 45 | class CMarketWatch 46 | { 47 | CMarketWatchDBInterface* m_db; 48 | 49 | public: 50 | CMarketWatch(CMarketWatchDBInterface *pDB) 51 | : m_db(pDB) 52 | { 53 | }; 54 | 55 | void DoTxn(PMarketWatchTxnInput pTxnInput, PMarketWatchTxnOutput pTxnOutput) 56 | { 57 | m_db->DoMarketWatchFrame1(pTxnInput, pTxnOutput); 58 | } 59 | }; 60 | 61 | } // namespace TPCE 62 | 63 | #endif //TXN_HARNESS_MARKET_WATCH_H 64 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/TxnHarnessTradeCleanup.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Matt Emmerton 35 | */ 36 | 37 | #ifndef TXN_HARNESS_TRADE_CLEANUP_H 38 | #define TXN_HARNESS_TRADE_CLEANUP_H 39 | 40 | #include "TxnHarnessDBInterface.h" 41 | 42 | namespace TPCE 43 | { 44 | 45 | class CTradeCleanup 46 | { 47 | CTradeCleanupDBInterface* m_db; 48 | 49 | public: 50 | CTradeCleanup(CTradeCleanupDBInterface *pDB) 51 | : m_db(pDB) 52 | { 53 | } 54 | 55 | void DoTxn( PTradeCleanupTxnInput pTxnInput, PTradeCleanupTxnOutput pTxnOutput) 56 | { 57 | TTradeCleanupFrame1Output Frame1Output; 58 | memset(&Frame1Output, 0, sizeof( Frame1Output )); 59 | 60 | m_db->DoTradeCleanupFrame1(pTxnInput, &Frame1Output); 61 | 62 | pTxnOutput->status = Frame1Output.status; 63 | } 64 | }; 65 | 66 | } // namespace TPCE 67 | 68 | #endif //TXN_HARNESS_TRADE_CLEANUP_H 69 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/progressmeterinterface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Christopher Chan-Nui 35 | */ 36 | 37 | #ifndef PROGRESSMETERINTERFACE_H_INCLUDED 38 | #define PROGRESSMETERINTERFACE_H_INCLUDED 39 | 40 | #include 41 | 42 | namespace TPCE 43 | { 44 | 45 | // Interface to provide a simple progress indicator 46 | // Also an interface to display messages through. 47 | class ProgressMeterInterface 48 | { 49 | public: 50 | virtual ~ProgressMeterInterface(); 51 | 52 | // Display the current work status. 53 | virtual void display() const; 54 | 55 | // Mark some work done 56 | // count - amount of "work" completed 57 | virtual void inc(int count=1); 58 | 59 | // Print out an arbitrary message 60 | // mesg - message to display 61 | // level - level of message for verbosity filtering 62 | virtual void message(const std::string& mesg, int level=0); 63 | }; 64 | 65 | } 66 | 67 | #endif // PROGRESSMETER_H_INCLUDED 68 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/threading.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Christopher Chan-Nui 35 | */ 36 | /* 37 | * Loads the correct include file for the systems threading abstraction 38 | */ 39 | 40 | #ifndef THREADING_H_INCLUDED 41 | #define THREADING_H_INCLUDED 42 | 43 | #ifdef NO_THREADS 44 | #include "threading_single.h" 45 | #else 46 | #include "threading_pthread.h" 47 | #endif 48 | 49 | #endif // THREADING_H_INCLUDED 50 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/unusedflag.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Christopher Chan-Nui 35 | */ 36 | /* 37 | * This file is only to provide a define which can hint some compilers that 38 | * certain parameters are unused. 39 | */ 40 | #ifndef UNUSEDFLAG_H_INCLUDED 41 | #define UNUSEDFLAG_H_INCLUDED 42 | #ifdef __GNUC__ 43 | #define UNUSED __attribute__((unused)) 44 | #else 45 | #define UNUSED 46 | #endif 47 | #endif // UNUSEDFLAG_H_INCLUDED 48 | -------------------------------------------------------------------------------- /TestHarness/Reference/inc/win/SyncLock.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef SYNCLOCK_H 38 | #define SYNCLOCK_H 39 | 40 | /* 41 | * Windows implementation of a syncronization lock that uses Win32 mutex. 42 | */ 43 | 44 | namespace TPCE 45 | { 46 | 47 | class CSyncLock 48 | { 49 | CRITICAL_SECTION m_CriticalSection; 50 | public: 51 | 52 | // Constructor 53 | CSyncLock() 54 | { 55 | InitializeCriticalSection(&m_CriticalSection); // do not acquire initial ownership 56 | } 57 | 58 | // Destructor 59 | ~CSyncLock() 60 | { 61 | DeleteCriticalSection(&m_CriticalSection); 62 | } 63 | 64 | // Acquire lock 65 | void ClaimLock() 66 | { 67 | EnterCriticalSection(&m_CriticalSection); 68 | } 69 | 70 | // Release mutex 71 | void ReleaseLock() 72 | { 73 | LeaveCriticalSection(&m_CriticalSection); 74 | } 75 | }; 76 | 77 | } // namespace TPCE 78 | 79 | #endif // #ifndef SYNCLOCK_H 80 | -------------------------------------------------------------------------------- /TestHarness/Reference/prj/Readme: -------------------------------------------------------------------------------- 1 | 2 | To use the Makefile you must first set the following environment variables 3 | to match your system and compiler requirements: 4 | 5 | CXX: path and name of compiler 6 | ex: export CXX=/opt/SUNWspro/bin/CC (C++ compiler on Solaris) 7 | CCFLAGS: compiler options 8 | ex: export CCFLAGS="-g -O" 9 | -g enable debug 10 | -O optimize code 11 | LDFLAGS: linker/loader options 12 | ex: export LDFLAGS="-g" 13 | LIBS: extra libraries to link in 14 | ex: export LIBS="-lpthread" 15 | 16 | -------------------------------------------------------------------------------- /TestHarness/Reference/src/progressmeterinterface.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Christopher Chan-Nui 35 | */ 36 | 37 | #include "../inc/progressmeterinterface.h" 38 | #include "../inc/unusedflag.h" 39 | 40 | namespace TPCE 41 | { 42 | 43 | // Dummy implementation in case someone wants to have a null progress meter 44 | ProgressMeterInterface::~ProgressMeterInterface() 45 | { 46 | } 47 | 48 | void ProgressMeterInterface::display() const 49 | { 50 | } 51 | 52 | void ProgressMeterInterface::inc(int count UNUSED) 53 | { 54 | } 55 | 56 | void ProgressMeterInterface::message(const std::string& mesg UNUSED, int level UNUSED) 57 | { 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /flat_in/Charge.txt: -------------------------------------------------------------------------------- 1 | TMB 1 5 2 | TMB 2 4.5 3 | TMB 3 2.5 4 | TMS 1 5 5 | TMS 2 4.5 6 | TMS 3 2.5 7 | TSL 1 6.5 8 | TSL 2 5.5 9 | TSL 3 3.5 10 | TLS 1 6 11 | TLS 2 5 12 | TLS 3 3 13 | TLB 1 6 14 | TLB 2 5 15 | TLB 3 3 16 | -------------------------------------------------------------------------------- /flat_in/CompanySPRate.txt: -------------------------------------------------------------------------------- 1 | 1 A 2 | 1 B 3 | 1 C 4 | 1 AA 5 | 1 AB 6 | 1 AC 7 | 1 BA 8 | 1 BB 9 | 1 BC 10 | 1 CA 11 | 1 CB 12 | 1 CC 13 | 1 AAA 14 | 1 AAB 15 | 1 AAC 16 | 1 ABA 17 | 1 ABB 18 | 1 ABC 19 | 1 ACA 20 | 1 ACB 21 | 1 ACC 22 | 1 BAA 23 | 1 BAB 24 | 1 BAC 25 | 1 BBA 26 | 1 BBB 27 | 1 BBC 28 | 1 BCA 29 | 1 BCB 30 | 1 BCC 31 | 1 CAA 32 | 1 CAB 33 | 1 CAC 34 | 1 CBA 35 | 1 CBB 36 | 1 CBC 37 | 1 CCA 38 | 1 CCB 39 | 1 CCC 40 | -------------------------------------------------------------------------------- /flat_in/Exchange.txt: -------------------------------------------------------------------------------- 1 | NYSE New York Stock Exchange 0930 1600 Simulates the New York Stock Exchange 1 2 | NASDAQ NASDAQ (National Association of Security Dealers and Quotations) 0930 1600 Simulates the NASDAQ 2 3 | AMEX American Stock Exchange 0930 1600 Simulates the American Stock Exchange 3 4 | PCX Pacific Exchange 0930 1600 Simulates the Pacific Exchange 4 5 | -------------------------------------------------------------------------------- /flat_in/NonTaxableAccountName.txt: -------------------------------------------------------------------------------- 1 | Traditional IRA 2 | Roth IRA 3 | IRA-SEP 4 | 401(k) 5 | Pension Account 6 | Rollover IRA 7 | Retirement Fund 8 | Roth 401(K) 9 | Flexible Spending 10 | Health Savings 11 | Non-Taxable Trust 12 | -------------------------------------------------------------------------------- /flat_in/Sector.txt: -------------------------------------------------------------------------------- 1 | BM Basic Materials 2 | CG Capital Goods 3 | CO Conglomerates 4 | CC Consumer Cyclical 5 | CN Consumer Non-Cyclical 6 | EN Energy 7 | FN Financial 8 | HC Healthcare 9 | SV Services 10 | TC Technology 11 | TR Transportation 12 | UT Utilities 13 | -------------------------------------------------------------------------------- /flat_in/StatusType.txt: -------------------------------------------------------------------------------- 1 | CMPT Completed 2 | ACTV Active 3 | SBMT Submitted 4 | PNDG Pending 5 | CNCL Canceled 6 | -------------------------------------------------------------------------------- /flat_in/StreetSuffix.txt: -------------------------------------------------------------------------------- 1 | 1 Street 2 | 1 Road 3 | 1 Court 4 | 1 Boulevard 5 | 1 Way 6 | 1 Lane 7 | 1 Crescent 8 | 1 Park 9 | 1 Avenue 10 | 1 Rue 11 | 1 Drive 12 | 1 South 13 | 1 North 14 | 1 West 15 | 1 East 16 | 1 Upper 17 | 1 Lower 18 | -------------------------------------------------------------------------------- /flat_in/TaxRatesCountry.txt: -------------------------------------------------------------------------------- 1 | 1 US1 U.S. Income Tax Bracket for the poor 0.15 2 | 1 US2 U.S. Income Tax Bracket for the huddled masses 0.275 3 | 1 US3 U.S. Income Tax Bracket for the masses 0.305 4 | 1 US4 U.S. Income Tax Bracket for the well to do 0.355 5 | 1 US5 U.S. Income Tax Bracket for the filthy rich 0.391 6 | 2 CN1 Canadian Income Tax for the poor 0.16 7 | 2 CN2 Canadian Income Tax for the huddled masses 0.22 8 | 2 CN3 Canadian Income Tax for the well to do 0.26 9 | 2 CN4 Canadian Income Tax for the filthy rich 0.29 10 | -------------------------------------------------------------------------------- /flat_in/TaxableAccountName.txt: -------------------------------------------------------------------------------- 1 | Emergency Expenses 2 | Vacation Account 3 | Healthcare Fund 4 | New Car Account 5 | House Money 6 | Individual Account 7 | Family Trust 8 | Custodial Account 9 | Joint Account 10 | Business Account 11 | College Fund 12 | Savings Account 13 | Play Money 14 | -------------------------------------------------------------------------------- /flat_in/TradeType.txt: -------------------------------------------------------------------------------- 1 | TMB Market-Buy 0 1 2 | TMS Market-Sell 1 1 3 | TSL Stop-Loss 1 0 4 | TLS Limit-Sell 1 0 5 | TLB Limit-Buy 0 0 6 | -------------------------------------------------------------------------------- /inc/BrokerVolumeDB.h: -------------------------------------------------------------------------------- 1 | // BrokerVolumeDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef BROKER_VOLUME_DB_H 5 | #define BROKER_VOLUME_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CBrokerVolumeDB : public CTxnDBBase, public CBrokerVolumeDBInterface 13 | { 14 | public: 15 | CBrokerVolumeDB(CDBConnection *pDBConn); 16 | ~CBrokerVolumeDB(); 17 | 18 | virtual void DoBrokerVolumeFrame1(const TBrokerVolumeFrame1Input *pIn, 19 | TBrokerVolumeFrame1Output *pOut); 20 | }; 21 | 22 | } // namespace TPCE 23 | 24 | #endif //BROKER_VOLUME_DB_H 25 | -------------------------------------------------------------------------------- /inc/CESUT.h: -------------------------------------------------------------------------------- 1 | // CESUT.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef CE_SUT_H 5 | #define CE_SUT_H 6 | 7 | #include "CESUTInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CCESUT : public CCESUTInterface 13 | { 14 | private: 15 | CDBConnection* m_pDBConnection; 16 | long clk_tck; 17 | 18 | public: 19 | unsigned int m_CountBrokerVolume[4]; 20 | unsigned int m_CountCustomerPosition[4]; 21 | unsigned int m_CountMarketWatch[4]; 22 | unsigned int m_CountSecurityDetail[4]; 23 | unsigned int m_CountTradeLookup[4]; 24 | unsigned int m_CountTradeOrder[4]; 25 | unsigned int m_CountTradeStatus[4]; 26 | unsigned int m_CountTradeUpdate[4]; 27 | 28 | CCESUT(const char *szHost, const char *szDBName, 29 | const char *szDBUser, const char *szDBPass); 30 | ~CCESUT(); 31 | 32 | virtual bool BrokerVolume( PBrokerVolumeTxnInput pTxnInput ); 33 | virtual bool CustomerPosition( PCustomerPositionTxnInput pTxnInput ); 34 | virtual bool MarketWatch( PMarketWatchTxnInput pTxnInput ); 35 | virtual bool SecurityDetail( PSecurityDetailTxnInput pTxnInput ); 36 | virtual bool TradeLookup( PTradeLookupTxnInput pTxnInput ); 37 | virtual bool TradeOrder( PTradeOrderTxnInput pTxnInput, INT32 iTradeType, 38 | bool bExecutorIsAccountOwner ); 39 | virtual bool TradeStatus( PTradeStatusTxnInput pTxnInput ); 40 | virtual bool TradeUpdate( PTradeUpdateTxnInput pTxnInput ); 41 | }; 42 | 43 | } // namespace TPCE 44 | 45 | #endif // CE_SUT_H 46 | -------------------------------------------------------------------------------- /inc/CustomerPositionDB.h: -------------------------------------------------------------------------------- 1 | // CustomerPositionDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef CUSTOMER_POSITION_DB_H 5 | #define CUSTOMER_POSITION_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CCustomerPositionDB : public CTxnDBBase, public CCustomerPositionDBInterface 13 | { 14 | public: 15 | CCustomerPositionDB(CDBConnection *pDBConn); 16 | ~CCustomerPositionDB(); 17 | 18 | virtual void DoCustomerPositionFrame1(const TCustomerPositionFrame1Input *pIn, 19 | TCustomerPositionFrame1Output *pOut); 20 | virtual void DoCustomerPositionFrame2(const TCustomerPositionFrame2Input *pIn, 21 | TCustomerPositionFrame2Output *pOut); 22 | virtual void DoCustomerPositionFrame3(TCustomerPositionFrame3Output *pOut); 23 | }; 24 | 25 | } // namespace TPCE 26 | 27 | #endif //CUSTOMER_POSITION_DB_H 28 | -------------------------------------------------------------------------------- /inc/DMSUT.h: -------------------------------------------------------------------------------- 1 | // DMSUT.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef DM_SUT_H 5 | #define DM_SUT_H 6 | 7 | #include "DMSUTInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CDMSUT : public CDMSUTInterface 13 | { 14 | private: 15 | CDBConnection* m_pDBConnection; 16 | long clk_tck; 17 | 18 | public: 19 | unsigned int m_CountDataMaintenance[4]; 20 | 21 | CDMSUT(const char *szHost, const char *szDBName, 22 | const char *szDBUser, const char *szDBPass); 23 | ~CDMSUT(); 24 | 25 | virtual bool DataMaintenance( PDataMaintenanceTxnInput pTxnInput ); 26 | virtual bool TradeCleanup( PTradeCleanupTxnInput pTxnInput ); 27 | }; 28 | 29 | } // namespace TPCE 30 | 31 | #endif //DM_SUT_H 32 | -------------------------------------------------------------------------------- /inc/DataMaintenanceDB.h: -------------------------------------------------------------------------------- 1 | // DataMaintenanceDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef DATA_MAINTENANCE_DB_H 5 | #define DATA_MAINTENANCE_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CDataMaintenanceDB : public CTxnDBBase, public CDataMaintenanceDBInterface 13 | { 14 | public: 15 | CDataMaintenanceDB(CDBConnection *pDBConn); 16 | ~CDataMaintenanceDB(); 17 | 18 | void DoDataMaintenanceFrame1(const TDataMaintenanceFrame1Input *pIn, 19 | TDataMaintenanceFrame1Output *pOut); 20 | }; 21 | 22 | } //namespace TPCE 23 | 24 | #endif //DATA_MAINTENANCE_DB_H 25 | -------------------------------------------------------------------------------- /inc/DriverTypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Matt Emmerton 35 | */ 36 | 37 | /****************************************************************************** 38 | * Description: Driver types and names 39 | ******************************************************************************/ 40 | 41 | #ifndef DRIVER_TYPES_H 42 | #define DRIVER_TYPES_H 43 | 44 | namespace TPCE 45 | { 46 | 47 | enum eDriverType 48 | { 49 | eDriverEGenLoader, 50 | eDriverAll, 51 | eDriverCE, 52 | eDriverMEE, 53 | eDriverDM, 54 | eDriverMax 55 | }; 56 | 57 | extern char szDriverTypeNames[eDriverMax][14]; 58 | } // namespace TPCE 59 | 60 | 61 | #endif // DRIVER_TYPES_H 62 | -------------------------------------------------------------------------------- /inc/EGenBaseLoader_stdafx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef EGEN_BASELOADER_STDAFX_H 38 | #define EGEN_BASELOADER_STDAFX_H 39 | 40 | #include "BaseLoader.h" 41 | #include "BaseLoaderFactory.h" 42 | 43 | #endif // #ifndef EGEN_BASELOADER_STDAFX_H 44 | -------------------------------------------------------------------------------- /inc/EGenError.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /****************************************************************************** 38 | * Description: Error handling functionality for the EGen package. 39 | ******************************************************************************/ 40 | 41 | #ifndef EGEN_ERROR_H 42 | #define EGEN_ERROR_H 43 | 44 | #include 45 | 46 | using namespace std; 47 | 48 | namespace TPCE 49 | { 50 | 51 | class CEGenErrorMessages 52 | { 53 | private: 54 | public: 55 | }; 56 | 57 | class CEGenErrorException 58 | { 59 | private: 60 | string m_Msg; 61 | 62 | public: 63 | CEGenErrorException( string Msg ) 64 | { 65 | m_Msg = Msg; 66 | } 67 | 68 | ~CEGenErrorException( void ) 69 | { 70 | } 71 | 72 | void AddMsg( string Msg ) 73 | { 74 | m_Msg += Msg; 75 | } 76 | 77 | string Msg( void ) 78 | { 79 | return( m_Msg ); 80 | } 81 | }; 82 | 83 | } // namespace TPCE 84 | 85 | #endif //EGEN_ERROR_H 86 | -------------------------------------------------------------------------------- /inc/EGenGenerateAndLoad_stdafx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef EGEN_GENERATE_AND_LOAD_STDAFX_H 38 | #define EGEN_GENERATE_AND_LOAD_STDAFX_H 39 | 40 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | 51 | using namespace std; 52 | 53 | #include "EGenTables_stdafx.h" 54 | #include "EGenBaseLoader_stdafx.h" 55 | #include "EGenGenerateAndLoadBaseOutput.h" 56 | #include "EGenGenerateAndLoadStandardOutput.h" 57 | #include "DriverParamSettings.h" 58 | #include "EGenLogger.h" 59 | #include "EGenGenerateAndLoad.h" 60 | 61 | #endif // #ifndef EGEN_GENERATE_AND_LOAD_STDAFX_H 62 | -------------------------------------------------------------------------------- /inc/EGenNullLoader_stdafx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | // stdafx.h : include file for standard system include files, 38 | // or project specific include files that are used frequently, but 39 | // are changed infrequently 40 | // 41 | 42 | #ifndef EGEN_NULLLOADER_STDAFX_H 43 | #define EGEN_NULLLOADER_STDAFX_H 44 | 45 | #include "NullLoader.h" 46 | #include "NullLoaderFactory.h" 47 | 48 | #endif // #ifndef EGEN_NULLLOADER_STDAFX_H 49 | -------------------------------------------------------------------------------- /inc/EGenNullLogger.h: -------------------------------------------------------------------------------- 1 | // EGenNullLogger.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef EGEN_NULL_LOGGER_H 5 | #define EGEN_NULL_LOGGER_H 6 | 7 | #include 8 | #include 9 | 10 | #include "EGenStandardTypes.h" 11 | #include "DriverParamSettings.h" 12 | #include "EGenVersion.h" 13 | #include "BaseLogger.h" 14 | #include "EGenLogFormatterTab.h" 15 | 16 | namespace TPCE 17 | { 18 | 19 | class CEGenNullLogger : public CBaseLogger 20 | { 21 | private: 22 | bool SendToLoggerImpl(const char *szPrefix, const char *szTimestamp, const char *szMsg) 23 | { 24 | return true; 25 | } 26 | 27 | public: 28 | CEGenNullLogger(eDriverType drvType, UINT32 UniqueId, const char *szFilename, CBaseLogFormatter* pLogFormatter) 29 | : CBaseLogger(drvType, UniqueId, pLogFormatter) 30 | { 31 | }; 32 | }; 33 | 34 | } // namespace TPCE 35 | 36 | #endif //EGEN_NULL_LOGGER_H 37 | -------------------------------------------------------------------------------- /inc/EGenTables_common.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Chris Ruemmler 35 | */ 36 | 37 | #ifndef EGEN_TABLES_COMMON_H 38 | #define EGEN_TABLES_COMMON_H 39 | 40 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 41 | 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | #include 51 | #include 52 | #include 53 | #include 54 | #include 55 | 56 | using namespace std; 57 | 58 | #include "EGenStandardTypes.h" 59 | #include "EGenUtilities_stdafx.h" 60 | #include "Table_Defs.h" 61 | #include "TableTemplate.h" 62 | #include "InputFlatFilesDeclarations.h" 63 | #include "InputFlatFilesStructure.h" 64 | #include "InputFileNoWeight.h" 65 | #include "Person.h" 66 | #include "CustomerSelection.h" 67 | 68 | #endif // #ifndef EGEN_TABLES_COMMON_H 69 | -------------------------------------------------------------------------------- /inc/FlatChargeLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for CHARGE. 39 | */ 40 | #ifndef FLAT_CHARGE_LOAD_H 41 | #define FLAT_CHARGE_LOAD_H 42 | 43 | #include "FlatFileLoad_common.h" 44 | 45 | namespace TPCE 46 | { 47 | 48 | class CFlatChargeLoad : public CFlatFileLoader 49 | { 50 | public: 51 | CFlatChargeLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 52 | 53 | /* 54 | * Writes a record to the file. 55 | */ 56 | void WriteNextRecord(PT next_record) 57 | { 58 | int rc = fprintf( hOutFile, ChargeRowFmt, 59 | next_record->CH_TT_ID, 60 | next_record->CH_C_TIER, 61 | next_record->CH_CHRG 62 | ); 63 | if (rc < 0) { 64 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatChargeLoad::WriteNextRecord"); 65 | } 66 | } 67 | }; 68 | 69 | } // namespace TPCE 70 | 71 | #endif //FLAT_CHARGE_LOAD_H 72 | -------------------------------------------------------------------------------- /inc/FlatCustomerTaxrateLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for CUSTOMER_TAXRATE. 39 | */ 40 | #ifndef FLAT_CUSTOMER_TAXRATE_LOAD_H 41 | #define FLAT_CUSTOMER_TAXRATE_LOAD_H 42 | 43 | #include "FlatFileLoad_common.h" 44 | 45 | namespace TPCE 46 | { 47 | 48 | class CFlatCustomerTaxrateLoad : public CFlatFileLoader 49 | { 50 | public: 51 | CFlatCustomerTaxrateLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 52 | 53 | /* 54 | * Writes a record to the file. 55 | */ 56 | void WriteNextRecord(PT next_record) 57 | { 58 | int rc = fprintf( hOutFile, CustomerTaxrateRowFmt, 59 | next_record->CX_TX_ID, 60 | next_record->CX_C_ID 61 | ); 62 | if (rc < 0) { 63 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatCustomerTaxrateLoad::WriteNextRecord"); 64 | } 65 | } 66 | }; 67 | 68 | } // namespace TPCE 69 | 70 | #endif //FLAT_CUSTOMER_TAXRATE_LOAD_H 71 | -------------------------------------------------------------------------------- /inc/FlatFileLoad_common.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Chris Ruemmler 35 | */ 36 | 37 | #ifndef FLAT_FILE_LOAD_COMMON_H 38 | #define FLAT_FILE_LOAD_COMMON_H 39 | 40 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 41 | 42 | #include 43 | #include 44 | #include 45 | 46 | #include "FlatFileLoader.h" 47 | #include "Table_Defs.h" 48 | #include "DateTime.h" 49 | #include "error.h" 50 | 51 | #endif // #ifndef FLAT_FILE_LOAD_COMMON_H 52 | -------------------------------------------------------------------------------- /inc/FlatIndustryLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for INDUSTRY. 39 | */ 40 | #ifndef FLAT_INDUSTRY_LOAD_H 41 | #define FLAT_INDUSTRY_LOAD_H 42 | 43 | #include "FlatFileLoad_common.h" 44 | 45 | namespace TPCE 46 | { 47 | 48 | class CFlatIndustryLoad : public CFlatFileLoader 49 | { 50 | public: 51 | CFlatIndustryLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 52 | 53 | /* 54 | * Writes a record to the file. 55 | */ 56 | void WriteNextRecord(PT next_record) 57 | { 58 | int rc = fprintf( hOutFile, IndustryRowFmt, 59 | next_record->IN_ID, 60 | next_record->IN_NAME, 61 | next_record->IN_SC_ID 62 | ); 63 | if (rc < 0) { 64 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatIndustryLoad::WriteNextRecord"); 65 | } 66 | } 67 | }; 68 | 69 | } // namespace TPCE 70 | 71 | #endif //FLAT_INDUSTRY_LOAD_H 72 | -------------------------------------------------------------------------------- /inc/FlatNewsXRefLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for NEWS_XREF. 39 | */ 40 | #ifndef FLAT_NEWS_XREF_LOAD_H 41 | #define FLAT_NEWS_XREF_LOAD_H 42 | 43 | #include "FlatFileLoad_common.h" 44 | 45 | namespace TPCE 46 | { 47 | 48 | class CFlatNewsXRefLoad : public CFlatFileLoader 49 | { 50 | public: 51 | CFlatNewsXRefLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode) {}; 52 | 53 | /* 54 | * Writes a record to the file. 55 | */ 56 | void WriteNextRecord(PT next_record) 57 | { 58 | int rc = fprintf( hOutFile, NewsXRefRowFmt, 59 | next_record->NX_NI_ID, 60 | next_record->NX_CO_ID 61 | ); 62 | if (rc < 0) { 63 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatNewsXRefLoad::WriteNextRecord"); 64 | } 65 | } 66 | }; 67 | 68 | } // namespace TPCE 69 | 70 | #endif //FLAT_NEWS_XREF_LOAD_H 71 | -------------------------------------------------------------------------------- /inc/FlatSectorLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for SECTOR. 39 | */ 40 | #ifndef FLAT_SECTOR_LOAD_H 41 | #define FLAT_SECTOR_LOAD_H 42 | 43 | #include "FlatFileLoad_common.h" 44 | 45 | namespace TPCE 46 | { 47 | 48 | class CFlatSectorLoad : public CFlatFileLoader 49 | { 50 | public: 51 | CFlatSectorLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 52 | 53 | /* 54 | * Writes a record to the file. 55 | */ 56 | void WriteNextRecord(PT next_record) 57 | { 58 | int rc = fprintf( hOutFile, SectorRowFmt, 59 | next_record->SC_ID, 60 | next_record->SC_NAME 61 | ); 62 | if (rc < 0) { 63 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatSectorLoad::WriteNextRecord"); 64 | } 65 | } 66 | }; 67 | 68 | } // namespace TPCE 69 | 70 | #endif //FLAT_SECTOR_LOAD_H 71 | -------------------------------------------------------------------------------- /inc/FlatStatusTypeLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for STATUS_TYPE. 39 | */ 40 | #ifndef FLAT_STATUS_TYPE_LOAD_H 41 | #define FLAT_STATUS_TYPE_LOAD_H 42 | 43 | #include "FlatFileLoad_common.h" 44 | 45 | namespace TPCE 46 | { 47 | 48 | class CFlatStatusTypeLoad : public CFlatFileLoader 49 | { 50 | public: 51 | CFlatStatusTypeLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 52 | 53 | /* 54 | * Writes a record to the file. 55 | */ 56 | void WriteNextRecord(PT next_record) 57 | { 58 | int rc = fprintf( hOutFile, StatusTypeRowFmt, 59 | next_record->ST_ID, 60 | next_record->ST_NAME 61 | ); 62 | if (rc < 0) { 63 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatStatusType::WriteNextRecord"); 64 | } 65 | } 66 | }; 67 | 68 | } // namespace TPCE 69 | 70 | #endif //FLAT_STATUS_TYPE_LOAD_H 71 | -------------------------------------------------------------------------------- /inc/FlatTaxrateLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for TAXRATE. 39 | */ 40 | #ifndef FLAT_TAXRATE_LOAD_H 41 | #define FLAT_TAXRATE_LOAD_H 42 | 43 | #include "FlatFileLoad_common.h" 44 | 45 | namespace TPCE 46 | { 47 | 48 | class CFlatTaxrateLoad : public CFlatFileLoader 49 | { 50 | public: 51 | CFlatTaxrateLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 52 | 53 | /* 54 | * Writes a record to the file. 55 | */ 56 | void WriteNextRecord(PT next_record) 57 | { 58 | int rc = fprintf( hOutFile, TaxrateRowFmt, 59 | next_record->TX_ID, 60 | next_record->TX_NAME, 61 | next_record->TX_RATE 62 | ); 63 | if (rc < 0) { 64 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatTaxrateLoad::WriteNextRecord"); 65 | } 66 | } 67 | }; 68 | 69 | } // namespace TPCE 70 | 71 | #endif //FLAT_TAXRATE_LOAD_H 72 | -------------------------------------------------------------------------------- /inc/FlatWatchItemLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for WATCH_ITEM. 39 | */ 40 | #ifndef FLAT_WATCH_ITEM_LOAD_H 41 | #define FLAT_WATCH_ITEM_LOAD_H 42 | 43 | #include "FlatFileLoad_common.h" 44 | 45 | namespace TPCE 46 | { 47 | 48 | class CFlatWatchItemLoad : public CFlatFileLoader 49 | { 50 | public: 51 | CFlatWatchItemLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 52 | 53 | /* 54 | * Writes a record to the file. 55 | */ 56 | void WriteNextRecord(PT next_record) 57 | { 58 | int rc = fprintf( hOutFile, WatchItemRowFmt, 59 | next_record->WI_WL_ID, 60 | next_record->WI_S_SYMB 61 | ); 62 | if (rc < 0) { 63 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatWatchItemLoad::WriteNextRecord"); 64 | } 65 | } 66 | }; 67 | 68 | } // namespace TPCE 69 | 70 | #endif //FLAT_WATCH_ITEM_LOAD_H 71 | -------------------------------------------------------------------------------- /inc/FlatWatchListLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for WATCH_LIST. 39 | */ 40 | #ifndef FLAT_WATCH_LIST_LOAD_H 41 | #define FLAT_WATCH_LIST_LOAD_H 42 | 43 | #include "FlatFileLoad_common.h" 44 | 45 | namespace TPCE 46 | { 47 | 48 | class CFlatWatchListLoad : public CFlatFileLoader 49 | { 50 | public: 51 | CFlatWatchListLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 52 | 53 | /* 54 | * Writes a record to the file. 55 | */ 56 | void WriteNextRecord(PT next_record) 57 | { 58 | int rc = fprintf( hOutFile, WatchListRowFmt, 59 | next_record->WL_ID, 60 | next_record->WL_C_ID 61 | ); 62 | if (rc < 0) { 63 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatWatchListLoad::WriteNextRecord"); 64 | } 65 | } 66 | }; 67 | 68 | } // namespace TPCE 69 | 70 | #endif //FLAT_WATCH_LIST_LOAD_H 71 | -------------------------------------------------------------------------------- /inc/FlatZipCodeLoad.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /* 38 | * Flat file loader for ZIP_CODE. 39 | */ 40 | #ifndef FLAT_ZIP_CODE_LOAD_H 41 | #define FLAT_ZIP_CODE_LOAD_H 42 | 43 | #include "FlatFileLoad_common.h" 44 | 45 | namespace TPCE 46 | { 47 | 48 | class CFlatZipCodeLoad : public CFlatFileLoader 49 | { 50 | public: 51 | CFlatZipCodeLoad( char *szFileName, FlatFileOutputModes FlatFileOutputMode ) : CFlatFileLoader(szFileName, FlatFileOutputMode){}; 52 | 53 | /* 54 | * Writes a record to the file. 55 | */ 56 | void WriteNextRecord(PT next_record) 57 | { 58 | int rc = fprintf( hOutFile, ZipCodeRowFmt, 59 | next_record->ZC_CODE, 60 | next_record->ZC_TOWN, 61 | next_record->ZC_DIV 62 | ); 63 | if (rc < 0) { 64 | throw CSystemErr(CSystemErr::eWriteFile, "CFlatZipCodeLoad::WriteNextRecord"); 65 | } 66 | } 67 | }; 68 | 69 | } // namespace TPCE 70 | 71 | #endif //FLAT_ZIP_CODE_LOAD_H 72 | -------------------------------------------------------------------------------- /inc/MEESUT.h: -------------------------------------------------------------------------------- 1 | // MEESUT.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef MEE_SUT_H 5 | #define MEE_SUT_H 6 | 7 | #include "MEESUTInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CMEESUT : public CMEESUTInterface 13 | { 14 | private: 15 | char m_szHost[iMaxHostname]; 16 | char m_szDBName[iMaxDBName]; 17 | char m_szDBUser[iMaxDBName]; 18 | char m_szDBPass[iMaxDBName]; 19 | 20 | public: 21 | unsigned int m_CountTradeResult[4]; 22 | unsigned int m_CountMarketFeed[4]; 23 | 24 | CMEESUT(const char *szHost, const char *szDBName, 25 | const char *szDBUser, const char *szDBPass, 26 | INT32 InitialThreads, INT32 MaxThreads); 27 | ~CMEESUT(); 28 | 29 | virtual bool TradeResult( PTradeResultTxnInput pTxnInput ); 30 | virtual bool MarketFeed( PMarketFeedTxnInput pTxnInput ); 31 | }; 32 | 33 | } // namespace TPCE 34 | 35 | #endif //MEE_SUT_H 36 | -------------------------------------------------------------------------------- /inc/MEETradeRequestActions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /****************************************************************************** 38 | * Description: These are the different actions the MEE can take 39 | * with an inbound trade request. 40 | ******************************************************************************/ 41 | 42 | #ifndef MEE_TRADE_REQUEST_ACTIONS_H 43 | #define MEE_TRADE_REQUEST_ACTIONS_H 44 | 45 | namespace TPCE 46 | { 47 | 48 | enum eMEETradeRequestAction 49 | { 50 | eMEEProcessOrder = 0, 51 | eMEESetLimitOrderTrigger 52 | }; 53 | 54 | } //namespace TPCE 55 | 56 | #endif //MEE_TRADE_REQUEST_ACTIONS_H 57 | -------------------------------------------------------------------------------- /inc/MarketFeedDB.h: -------------------------------------------------------------------------------- 1 | // MarketFeedDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef MARKET_FEED_DB_H 5 | #define MARKET_FEED_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CMarketFeedDB : public CTxnDBBase, public CMarketFeedDBInterface 13 | { 14 | public: 15 | CMarketFeedDB(CDBConnection *pDBConn); 16 | ~CMarketFeedDB(); 17 | 18 | virtual void DoMarketFeedFrame1(const TMarketFeedFrame1Input *pIn, 19 | TMarketFeedFrame1Output *pOut, 20 | CSendToMarketInterface *pSendToMarket); 21 | }; 22 | 23 | } //namespace TPCE 24 | 25 | #endif //MARKET_FEED_DB_H 26 | -------------------------------------------------------------------------------- /inc/MarketWatchDB.h: -------------------------------------------------------------------------------- 1 | // MarketWatchDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef MARKET_WATCH_DB_H 5 | #define MARKET_WATCH_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CMarketWatchDB : public CTxnDBBase, public CMarketWatchDBInterface 13 | { 14 | public: 15 | CMarketWatchDB(CDBConnection *pDBConn); 16 | ~CMarketWatchDB(); 17 | 18 | virtual void DoMarketWatchFrame1(const TMarketWatchFrame1Input *pIn, 19 | TMarketWatchFrame1Output *pOut); 20 | }; 21 | 22 | } //namespace TPCE 23 | 24 | #endif //MARKET_WATCH_DB_H 25 | -------------------------------------------------------------------------------- /inc/NullLoad_stdafx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef EGEN_NULLLOADER_STDAFX_H 38 | #define EGEN_NULLLOADER_STDAFX_H 39 | 40 | #include "NullLoader.h" 41 | #include "NullLoaderFactory.h" 42 | 43 | #endif // #ifndef EGEN_NULLLOADER_STDAFX_H 44 | -------------------------------------------------------------------------------- /inc/RtHistogram.h: -------------------------------------------------------------------------------- 1 | // RtHistogram.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef RT_HISTOGRAM_H 5 | #define RT_HISTOGRAM_H 6 | 7 | #define RTHIST_MAX_MSEC 6000 8 | #define RTHIST_CLASS_MSEC 10 9 | 10 | namespace TPCE 11 | { 12 | 13 | class CRtHistogram 14 | { 15 | protected: 16 | long m_Total_Hist[RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC]; 17 | long m_Current_Hist[RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC]; 18 | CMutex m_RtHistLock; 19 | long clk_tck; 20 | 21 | public: 22 | long m_Total_Max; // msec. 23 | long m_Current_Max;// msec. 24 | 25 | CRtHistogram(); 26 | ~CRtHistogram(); 27 | 28 | void Put(long rtclk); 29 | long Check_point(); //return 90%ile line 30 | void Print(); 31 | }; 32 | 33 | } // namespace TPCE 34 | 35 | #endif // RT_HISTOGRAM_H 36 | -------------------------------------------------------------------------------- /inc/SecurityDetailDB.h: -------------------------------------------------------------------------------- 1 | // SecurityDetailDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef SECURITY_DETAIL_DB_H 5 | #define SECURITY_DETAIL_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CSecurityDetailDB : public CTxnDBBase, public CSecurityDetailDBInterface 13 | { 14 | public: 15 | CSecurityDetailDB(CDBConnection *pDBConn); 16 | ~CSecurityDetailDB(); 17 | 18 | virtual void DoSecurityDetailFrame1(const TSecurityDetailFrame1Input *pIn, 19 | TSecurityDetailFrame1Output *pOut); 20 | }; 21 | 22 | } //namespace TPCE 23 | 24 | #endif //SECURITY_DETAIL_DB_H 25 | -------------------------------------------------------------------------------- /inc/SecurityPriceRange.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /****************************************************************************** 38 | * Description: Minimum and maximum values for a security's price range 39 | ******************************************************************************/ 40 | 41 | #ifndef SECURITY_PRICE_RANGE_H 42 | #define SECURITY_PRICE_RANGE_H 43 | 44 | namespace TPCE 45 | { 46 | 47 | const double fMinSecPrice = 20.00; 48 | const double fMaxSecPrice = 30.00; 49 | 50 | } //namespace TPCE 51 | 52 | #endif //SECURITY_PRICE_RANGE_H 53 | -------------------------------------------------------------------------------- /inc/SendToMarket.h: -------------------------------------------------------------------------------- 1 | // SendToMarket.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef SEND_TO_MARKET_H 5 | #define SEND_TO_MARKET_H 6 | 7 | namespace TPCE 8 | { 9 | 10 | class CSendToMarket : public CSendToMarketInterface 11 | { 12 | public: 13 | CSendToMarket() {}; 14 | ~CSendToMarket() {}; 15 | 16 | virtual bool SendToMarket(TTradeRequest &trade_mes); 17 | }; 18 | 19 | } // namespace TPCE 20 | 21 | #endif //SEND_TO_MARKET_H 22 | -------------------------------------------------------------------------------- /inc/TradeCleanupDB.h: -------------------------------------------------------------------------------- 1 | // TradeCleanupDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef TRADE_CLEANUP_DB_H 5 | #define TRADE_CLEANUP_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CTradeCleanupDB : public CTxnDBBase, public CTradeCleanupDBInterface 13 | { 14 | public: 15 | CTradeCleanupDB(CDBConnection *pDBConn); 16 | ~CTradeCleanupDB(); 17 | 18 | virtual void DoTradeCleanupFrame1(const TTradeCleanupFrame1Input *pIn, 19 | TTradeCleanupFrame1Output *pOut); 20 | }; 21 | 22 | } // namespace TPCE 23 | 24 | #endif //TRADE_CLEANUP_DB_H 25 | -------------------------------------------------------------------------------- /inc/TradeLookupDB.h: -------------------------------------------------------------------------------- 1 | // TradeLookupDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef TRADE_LOOKUP_DB_H 5 | #define TRADE_LOOKUP_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CTradeLookupDB : public CTxnDBBase, public CTradeLookupDBInterface 13 | { 14 | public: 15 | CTradeLookupDB(CDBConnection *pDBConn); 16 | ~CTradeLookupDB(); 17 | 18 | virtual void DoTradeLookupFrame1(const TTradeLookupFrame1Input *pIn, 19 | TTradeLookupFrame1Output *pOut); 20 | virtual void DoTradeLookupFrame2(const TTradeLookupFrame2Input *pIn, 21 | TTradeLookupFrame2Output *pOut); 22 | virtual void DoTradeLookupFrame3(const TTradeLookupFrame3Input *pIn, 23 | TTradeLookupFrame3Output *pOut); 24 | virtual void DoTradeLookupFrame4(const TTradeLookupFrame4Input *pIn, 25 | TTradeLookupFrame4Output *pOut); 26 | }; 27 | 28 | } // namespace TPCE 29 | 30 | #endif //TRADE_LOOKUP_DB_H 31 | -------------------------------------------------------------------------------- /inc/TradeOrderDB.h: -------------------------------------------------------------------------------- 1 | // TradeOrderDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef TRADE_ORDER_DB_H 5 | #define TRADE_ORDER_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CTradeOrderDB : public CTxnDBBase, public CTradeOrderDBInterface 13 | { 14 | public: 15 | CTradeOrderDB(CDBConnection *pDBConn); 16 | ~CTradeOrderDB(); 17 | 18 | virtual void DoTradeOrderFrame1(const TTradeOrderFrame1Input *pIn, 19 | TTradeOrderFrame1Output *pOut); 20 | virtual void DoTradeOrderFrame2(const TTradeOrderFrame2Input *pIn, 21 | TTradeOrderFrame2Output *pOut); 22 | virtual void DoTradeOrderFrame3(const TTradeOrderFrame3Input *pIn, 23 | TTradeOrderFrame3Output *pOut); 24 | virtual void DoTradeOrderFrame4(const TTradeOrderFrame4Input *pIn, 25 | TTradeOrderFrame4Output *pOut); 26 | virtual void DoTradeOrderFrame5(TTradeOrderFrame5Output *pOut); 27 | virtual void DoTradeOrderFrame6(TTradeOrderFrame6Output *pOut); 28 | }; 29 | 30 | } //namespace TPCE 31 | 32 | #endif //TRADE_ORDER_DB_H 33 | -------------------------------------------------------------------------------- /inc/TradeResultDB.h: -------------------------------------------------------------------------------- 1 | // TradeResultDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef TRADE_RESULT_DB_H 5 | #define TRADE_RESULT_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CTradeResultDB : public CTxnDBBase, public CTradeResultDBInterface 13 | { 14 | public: 15 | CTradeResultDB(CDBConnection *pDBConn); 16 | ~CTradeResultDB(); 17 | 18 | virtual void DoTradeResultFrame1(const TTradeResultFrame1Input *pIn, 19 | TTradeResultFrame1Output *pOut); 20 | virtual void DoTradeResultFrame2(const TTradeResultFrame2Input *pIn, 21 | TTradeResultFrame2Output *pOut); 22 | virtual void DoTradeResultFrame3(const TTradeResultFrame3Input *pIn, 23 | TTradeResultFrame3Output *pOut); 24 | virtual void DoTradeResultFrame4(const TTradeResultFrame4Input *pIn, 25 | TTradeResultFrame4Output *pOut); 26 | virtual void DoTradeResultFrame5(const TTradeResultFrame5Input *pIn, 27 | TTradeResultFrame5Output *pOut); 28 | virtual void DoTradeResultFrame6(const TTradeResultFrame6Input *pIn, 29 | TTradeResultFrame6Output *pOut); 30 | }; 31 | 32 | } //namespace TPCE 33 | 34 | #endif //TRADE_RESULT_DB_H 35 | -------------------------------------------------------------------------------- /inc/TradeStatusDB.h: -------------------------------------------------------------------------------- 1 | // TradeStatusDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef TRADE_STATUS_DB_H 5 | #define TRADE_STATUS_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CTradeStatusDB : public CTxnDBBase, public CTradeStatusDBInterface 13 | { 14 | public: 15 | CTradeStatusDB(CDBConnection *pDBConn); 16 | ~CTradeStatusDB(); 17 | 18 | virtual void DoTradeStatusFrame1(const TTradeStatusFrame1Input *pIn, 19 | TTradeStatusFrame1Output *pOut); 20 | }; 21 | 22 | } // namespace TPCE 23 | 24 | #endif //TRADE_STATUS_DB_H 25 | -------------------------------------------------------------------------------- /inc/TradeTypeIDs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /****************************************************************************** 38 | * Description: Trade Type IDs corresponding to the TradeType.txt flat 39 | * file. 40 | * Note: The order of enumeration members must match the 41 | * order of rows in the TradeType.txt flat file. 42 | ******************************************************************************/ 43 | 44 | #ifndef TRADE_TYPE_IDS_H 45 | #define TRADE_TYPE_IDS_H 46 | 47 | namespace TPCE 48 | { 49 | 50 | enum eTradeTypeID 51 | { 52 | eMarketBuy = 0, 53 | eMarketSell, 54 | eStopLoss, 55 | eLimitSell, 56 | eLimitBuy, 57 | 58 | eMaxTradeTypeID // should be the last - contains the number of items in the enumeration 59 | }; 60 | 61 | } //namespace TPCE 62 | 63 | #endif //TRADE_TYPE_IDS_H 64 | -------------------------------------------------------------------------------- /inc/TradeUpdateDB.h: -------------------------------------------------------------------------------- 1 | // TradeUpdateDB.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef TRADE_UPDATE_DB_H 5 | #define TRADE_UPDATE_DB_H 6 | 7 | #include "TxnHarnessDBInterface.h" 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CTradeUpdateDB : public CTxnDBBase, public CTradeUpdateDBInterface 13 | { 14 | public: 15 | CTradeUpdateDB(CDBConnection *pDBConn); 16 | ~CTradeUpdateDB(); 17 | 18 | virtual void DoTradeUpdateFrame1(const TTradeUpdateFrame1Input *pIn, 19 | TTradeUpdateFrame1Output *pOut); 20 | virtual void DoTradeUpdateFrame2(const TTradeUpdateFrame2Input *pIn, 21 | TTradeUpdateFrame2Output *pOut); 22 | virtual void DoTradeUpdateFrame3(const TTradeUpdateFrame3Input *pIn, 23 | TTradeUpdateFrame3Output *pOut); 24 | }; 25 | 26 | } //namespace TPCE 27 | 28 | #endif //TRADE_UPDATE_DB_H 29 | -------------------------------------------------------------------------------- /inc/TxnDBBase.h: -------------------------------------------------------------------------------- 1 | // TxnDBBase.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef TXN_DB_BASE_H 5 | #define TXN_DB_BASE_H 6 | 7 | #define MAX_RETRY 20 8 | 9 | namespace TPCE 10 | { 11 | 12 | class CTxnDBBase 13 | { 14 | protected: 15 | CDBConnection* m_pDBConnection; 16 | SQLHDBC m_Conn; 17 | SQLHSTMT m_Stmt; 18 | SQLHSTMT m_Stmt2; 19 | SQLLEN m_DummyInd; 20 | 21 | public: 22 | CTxnDBBase(CDBConnection *pDBConn); 23 | ~CTxnDBBase(); 24 | 25 | void BeginTxn(); 26 | void CommitTxn(); 27 | void RollbackTxn(); 28 | void ThrowError( CODBCERR::ACTION eAction, SQLSMALLINT HandleType, SQLHANDLE Handle, 29 | const char* FileName = NULL, unsigned int Line = 0); 30 | void ThrowError( CODBCERR::ACTION eAction, 31 | const char* FileName = NULL, unsigned int Line = 0) 32 | { 33 | ThrowError(eAction, 0, SQL_NULL_HANDLE, FileName, Line); 34 | }; 35 | }; 36 | 37 | } //namespace TPCE 38 | 39 | #endif //TXN_DB_BASE_H 40 | -------------------------------------------------------------------------------- /inc/TxnHarnessDataMaintenance.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef TXN_HARNESS_DATA_MAINTENANCE_H 38 | #define TXN_HARNESS_DATA_MAINTENANCE_H 39 | 40 | #include "TxnHarnessDBInterface.h" 41 | 42 | namespace TPCE 43 | { 44 | 45 | class CDataMaintenance 46 | { 47 | CDataMaintenanceDBInterface* m_db; 48 | 49 | public: 50 | CDataMaintenance(CDataMaintenanceDBInterface *pDB) 51 | : m_db(pDB) 52 | { 53 | }; 54 | 55 | void DoTxn( PDataMaintenanceTxnInput pTxnInput, PDataMaintenanceTxnOutput pTxnOutput ) 56 | { 57 | m_db->DoDataMaintenanceFrame1( pTxnInput, pTxnOutput); 58 | } 59 | }; 60 | 61 | } // namespace TPCE 62 | 63 | #endif //TXN_HARNESS_DATA_MAINTENANCE_H 64 | -------------------------------------------------------------------------------- /inc/TxnHarnessMarketFeed.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef TXN_HARNESS_MARKET_FEED_H 38 | #define TXN_HARNESS_MARKET_FEED_H 39 | 40 | #include "TxnHarnessDBInterface.h" 41 | 42 | namespace TPCE 43 | { 44 | 45 | class CMarketFeed 46 | { 47 | CMarketFeedDBInterface* m_db; 48 | CSendToMarketInterface* m_pSendToMarket; 49 | 50 | public: 51 | CMarketFeed(CMarketFeedDBInterface *pDB, CSendToMarketInterface *pSendToMarket) 52 | : m_db(pDB) 53 | , m_pSendToMarket(pSendToMarket) 54 | { 55 | }; 56 | 57 | void DoTxn( PMarketFeedTxnInput pTxnInput, PMarketFeedTxnOutput pTxnOutput ) 58 | { 59 | TMarketFeedFrame1Output Frame1Output; 60 | memset(&Frame1Output, 0, sizeof( Frame1Output )); 61 | 62 | // Execute Frame1 63 | m_db->DoMarketFeedFrame1(pTxnInput, &Frame1Output, m_pSendToMarket); 64 | 65 | pTxnOutput->send_len = Frame1Output.send_len; 66 | pTxnOutput->status = Frame1Output.status; 67 | } 68 | }; 69 | 70 | } // namespace TPCE 71 | 72 | #endif //TXN_HARNESS_MARKET_FEED_H 73 | -------------------------------------------------------------------------------- /inc/TxnHarnessMarketWatch.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Sergey Vasilevskiy 35 | */ 36 | 37 | #ifndef TXN_HARNESS_MARKET_WATCH_H 38 | #define TXN_HARNESS_MARKET_WATCH_H 39 | 40 | #include "TxnHarnessDBInterface.h" 41 | 42 | namespace TPCE 43 | { 44 | 45 | class CMarketWatch 46 | { 47 | CMarketWatchDBInterface* m_db; 48 | 49 | public: 50 | CMarketWatch(CMarketWatchDBInterface *pDB) 51 | : m_db(pDB) 52 | { 53 | }; 54 | 55 | void DoTxn(PMarketWatchTxnInput pTxnInput, PMarketWatchTxnOutput pTxnOutput) 56 | { 57 | if ( pTxnInput->acct_id != 0 || 58 | pTxnInput->c_id != 0 || 59 | pTxnInput->industry_name[0] != '\0') 60 | { 61 | m_db->DoMarketWatchFrame1(pTxnInput, pTxnOutput); 62 | } else { 63 | pTxnOutput->status = -411; 64 | } 65 | } 66 | }; 67 | 68 | } // namespace TPCE 69 | 70 | #endif //TXN_HARNESS_MARKET_WATCH_H 71 | -------------------------------------------------------------------------------- /inc/TxnHarnessTradeCleanup.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Matt Emmerton 35 | */ 36 | 37 | #ifndef TXN_HARNESS_TRADE_CLEANUP_H 38 | #define TXN_HARNESS_TRADE_CLEANUP_H 39 | 40 | #include "TxnHarnessDBInterface.h" 41 | 42 | namespace TPCE 43 | { 44 | 45 | class CTradeCleanup 46 | { 47 | CTradeCleanupDBInterface* m_db; 48 | 49 | public: 50 | CTradeCleanup(CTradeCleanupDBInterface *pDB) 51 | : m_db(pDB) 52 | { 53 | } 54 | 55 | void DoTxn( PTradeCleanupTxnInput pTxnInput, PTradeCleanupTxnOutput pTxnOutput) 56 | { 57 | TTradeCleanupFrame1Output Frame1Output; 58 | memset(&Frame1Output, 0, sizeof( Frame1Output )); 59 | 60 | m_db->DoTradeCleanupFrame1(pTxnInput, &Frame1Output); 61 | 62 | pTxnOutput->status = Frame1Output.status; 63 | } 64 | }; 65 | 66 | } // namespace TPCE 67 | 68 | #endif //TXN_HARNESS_TRADE_CLEANUP_H 69 | -------------------------------------------------------------------------------- /inc/Wheel.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Doug Johnson 35 | */ 36 | 37 | /****************************************************************************** 38 | * Description: This file contains items that are common across timer 39 | * wheel, event wheel, and wheel time code. 40 | ******************************************************************************/ 41 | 42 | #ifndef WHEEL_H 43 | #define WHEEL_H 44 | 45 | //Use EGen standard types. 46 | #include "EGenStandardTypes.h" 47 | 48 | namespace TPCE 49 | { 50 | 51 | 52 | // Used to help define "infinitely far into the future" 53 | const INT32 MaxWheelCycles = 999999999; 54 | 55 | typedef struct TWheelConfig 56 | { 57 | INT32 WheelSize; // Total size of the wheel (based on the period and resolution) 58 | INT32 WheelResolution; // Expressed in milliseconds 59 | 60 | TWheelConfig( INT32 Size, INT32 Resolution ) 61 | : WheelSize( Size ) 62 | , WheelResolution( Resolution ) 63 | { 64 | }; 65 | } *PWheelConfig; 66 | 67 | 68 | } // namespace TPCE 69 | 70 | #endif //WHEEL_H 71 | -------------------------------------------------------------------------------- /inc/locking.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Christopher Chan-Nui, Matt Emmerton 35 | */ 36 | 37 | #ifndef LOCKING_H_INCLUDED 38 | #define LOCKING_H_INCLUDED 39 | 40 | #include "EGenStandardTypes.h" 41 | #include 42 | #include 43 | 44 | namespace TPCE 45 | { 46 | 47 | // Standard mutex 48 | class CMutex 49 | { 50 | private: 51 | TMutex mutex_; 52 | TMutex* mutex(); 53 | public: 54 | CMutex(); 55 | ~CMutex(); 56 | void lock(); 57 | void unlock(); 58 | }; 59 | 60 | // Provide a RAII style lock for any class which supports 61 | // lock() and unlock() 62 | template 63 | class Locker 64 | { 65 | private: 66 | T& mutex_; 67 | 68 | public: 69 | explicit Locker(T& mutex) 70 | : mutex_(mutex) 71 | { 72 | mutex_.lock(); 73 | } 74 | 75 | ~Locker() { 76 | mutex_.unlock(); 77 | } 78 | }; 79 | 80 | } 81 | 82 | #endif // LOCKING_H_INCLUDED 83 | -------------------------------------------------------------------------------- /inc/odbc_wrapper.h: -------------------------------------------------------------------------------- 1 | // odbc_wrapper.h 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #ifndef _ODBC_WRAPPER_H 5 | #define _ODBC_WRAPPER_H 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | // This odbc_wrapper needs unixODBC headers. 12 | #include 13 | #include 14 | #include 15 | 16 | // Trick to avoid g++ error 17 | #undef max 18 | #undef min 19 | 20 | namespace TPCE 21 | { 22 | 23 | extern "C" { 24 | 25 | enum MY_STATE { ST_UNKNOWN, ST_PREPARED, ST_PRE_EXECUTED, ST_EXECUTED, ST_DIRECT_EXECUTED }; 26 | 27 | typedef struct st_my_hdbc 28 | { 29 | MYSQL* mysql; 30 | 31 | int connected; 32 | } MY_HDBC; 33 | 34 | typedef struct st_my_hstmt 35 | { 36 | MYSQL_STMT* mysql_stmt; 37 | 38 | enum MY_STATE state; 39 | 40 | int nColumns; 41 | int nParameters; 42 | MYSQL_RES* meta_result; 43 | MYSQL_BIND* columnP; 44 | MYSQL_BIND* paramP; 45 | 46 | int prepared; 47 | int res_binded; 48 | } MY_HSTMT; 49 | 50 | typedef struct st_param_bind 51 | { 52 | SQLSMALLINT SqlType,CType; 53 | void * buffer; 54 | char * pos_in_query,*value; 55 | SQLINTEGER ValueMax; 56 | SQLINTEGER * actual_len; 57 | SQLINTEGER value_length; 58 | bool alloced,used; 59 | bool real_param_done; 60 | } PARAM_BIND; 61 | 62 | } 63 | 64 | } 65 | 66 | SQLRETURN SQL_API SQLConnect_DIRECT(SQLHDBC ConnectionHandle, 67 | SQLCHAR *ServerName, SQLSMALLINT NameLength1, 68 | SQLCHAR *DatabaseName, SQLSMALLINT NameLength4, 69 | SQLCHAR *UserName, SQLSMALLINT NameLength2, 70 | SQLCHAR *Authentication, SQLSMALLINT NameLength3); 71 | 72 | 73 | 74 | #endif /* _ODBC_WRAPPER_H */ 75 | -------------------------------------------------------------------------------- /inc/progressmeterinterface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Christopher Chan-Nui 35 | */ 36 | 37 | #ifndef PROGRESSMETERINTERFACE_H_INCLUDED 38 | #define PROGRESSMETERINTERFACE_H_INCLUDED 39 | 40 | #include 41 | 42 | namespace TPCE 43 | { 44 | 45 | // Interface to provide a simple progress indicator 46 | // Also an interface to display messages through. 47 | class ProgressMeterInterface 48 | { 49 | public: 50 | virtual ~ProgressMeterInterface(); 51 | 52 | // Display the current work status. 53 | virtual void display() const; 54 | 55 | // Mark some work done 56 | // count - amount of "work" completed 57 | virtual void inc(int count=1); 58 | 59 | // Print out an arbitrary message 60 | // mesg - message to display 61 | // level - level of message for verbosity filtering 62 | virtual void message(const std::string& mesg, int level=0); 63 | }; 64 | 65 | } 66 | 67 | #endif // PROGRESSMETER_H_INCLUDED 68 | -------------------------------------------------------------------------------- /inc/unusedflag.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Christopher Chan-Nui 35 | */ 36 | /* 37 | * This file is only to provide a define which can hint some compilers that 38 | * certain parameters are unused. 39 | */ 40 | #ifndef UNUSEDFLAG_H_INCLUDED 41 | #define UNUSEDFLAG_H_INCLUDED 42 | #ifdef __GNUC__ 43 | #define UNUSED __attribute__((unused)) 44 | #else 45 | #define UNUSED 46 | #endif 47 | #endif // UNUSEDFLAG_H_INCLUDED 48 | -------------------------------------------------------------------------------- /scripts/mysql/3_create_index.sql: -------------------------------------------------------------------------------- 1 | SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; 2 | SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; 3 | 4 | CREATE INDEX i_c_tax_id ON customer (c_tax_id); 5 | CREATE INDEX i_co_name ON company (co_name); 6 | CREATE INDEX i_th_t_id_dts ON trade_history (th_t_id, th_dts); 7 | CREATE INDEX i_in_name ON industry (in_name); 8 | CREATE INDEX i_sc_name ON sector (sc_name); 9 | CREATE INDEX i_t_ca_id_dts ON trade (t_ca_id, t_dts); 10 | CREATE INDEX i_t_s_symb_dts ON trade (t_s_symb, t_dts); 11 | CREATE INDEX i_h_ca_id_s_symb_dts ON holding (h_ca_id, h_s_symb, h_dts); 12 | 13 | SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; 14 | SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; 15 | 16 | -------------------------------------------------------------------------------- /scripts/mysql/5_create_sequence.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS seq_trade_id; 2 | CREATE TABLE seq_trade_id ( id BIGINT(16) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 3 | INSERT INTO seq_trade_id SELECT MAX(t_id) FROM trade; 4 | 5 | -------------------------------------------------------------------------------- /scripts/oracle/2_load_data.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | USERID=tpce/tpce 3 | sqlldr $USERID control=AccountPermission.ctl 4 | sqlldr $USERID control=Customer.ctl 5 | sqlldr $USERID control=CustomerAccount.ctl 6 | sqlldr $USERID control=CustomerTaxrate.ctl 7 | sqlldr $USERID control=Holding.ctl 8 | sqlldr $USERID control=HoldingHistory.ctl 9 | sqlldr $USERID control=HoldingSummary.ctl 10 | sqlldr $USERID control=WatchItem.ctl 11 | sqlldr $USERID control=WatchList.ctl 12 | sqlldr $USERID control=Broker.ctl 13 | sqlldr $USERID control=CashTransaction.ctl 14 | sqlldr $USERID control=Charge.ctl 15 | sqlldr $USERID control=CommissionRate.ctl 16 | sqlldr $USERID control=Settlement.ctl 17 | sqlldr $USERID control=Trade.ctl 18 | sqlldr $USERID control=TradeHistory.ctl 19 | #sqlldr $USERID control=TradeRequest.ctl 20 | sqlldr $USERID control=TradeType.ctl 21 | sqlldr $USERID control=Company.ctl 22 | sqlldr $USERID control=CompanyCompetitor.ctl 23 | sqlldr $USERID control=DailyMarket.ctl 24 | sqlldr $USERID control=Exchange.ctl 25 | sqlldr $USERID control=Financial.ctl 26 | sqlldr $USERID control=Industry.ctl 27 | sqlldr $USERID control=LastTrade.ctl 28 | sqlldr $USERID control=NewsItem.ctl 29 | sqlldr $USERID control=NewsXRef.ctl 30 | sqlldr $USERID control=Sector.ctl 31 | sqlldr $USERID control=Security.ctl 32 | sqlldr $USERID control=Address.ctl 33 | sqlldr $USERID control=StatusType.ctl 34 | sqlldr $USERID control=Taxrate.ctl 35 | sqlldr $USERID control=ZipCode.ctl 36 | 37 | -------------------------------------------------------------------------------- /scripts/oracle/4_create_fk_index.sql: -------------------------------------------------------------------------------- 1 | CREATE INDEX i_fk_customer_st ON customer 2 | (c_st_id); 3 | CREATE INDEX i_fk_customer_ad ON customer 4 | (c_ad_id); 5 | CREATE INDEX i_fk_customer_account_b ON customer_account 6 | (ca_b_id); 7 | CREATE INDEX i_fk_customer_account_c ON customer_account 8 | (ca_c_id); 9 | CREATE INDEX i_fk_customer_taxrate_tx ON customer_taxrate 10 | (cx_tx_id); 11 | CREATE INDEX i_fk_holding_hs ON holding 12 | (h_ca_id, h_s_symb); 13 | CREATE INDEX i_fk_holding_history_t1 ON holding_history 14 | (hh_h_t_id); 15 | CREATE INDEX i_fk_holding_summary_s ON holding_summary 16 | (hs_s_symb); 17 | CREATE INDEX i_fk_watch_item_s ON watch_item 18 | (wi_s_symb); 19 | CREATE INDEX i_fk_watch_list_c ON watch_list 20 | (wl_c_id); 21 | CREATE INDEX i_fk_broker_st ON broker 22 | (b_st_id); 23 | CREATE INDEX i_fk_commission_rate_tt ON commission_rate 24 | (cr_tt_id); 25 | CREATE INDEX i_fk_commission_rate_ex ON commission_rate 26 | (cr_ex_id); 27 | CREATE INDEX i_fk_trade_st ON trade 28 | (t_st_id); 29 | CREATE INDEX i_fk_trade_tt ON trade 30 | (t_tt_id); 31 | CREATE INDEX i_fk_trade_history_st ON trade_history 32 | (th_st_id); 33 | CREATE INDEX i_fk_trade_request_tt ON trade_request 34 | (tr_tt_id); 35 | CREATE INDEX i_fk_trade_request_s ON trade_request 36 | (tr_s_symb); 37 | CREATE INDEX i_fk_trade_request_b ON trade_request 38 | (tr_b_id); 39 | CREATE INDEX i_fk_company_st ON company 40 | (co_st_id); 41 | CREATE INDEX i_fk_company_in ON company 42 | (co_in_id); 43 | CREATE INDEX i_fk_company_ad ON company 44 | (co_ad_id); 45 | CREATE INDEX i_fk_company_competitor_co2 ON company_competitor 46 | (cp_comp_co_id); 47 | CREATE INDEX i_fk_company_competitor_in ON company_competitor 48 | (cp_in_id); 49 | CREATE INDEX i_fk_exchange_ad ON exchange 50 | (ex_ad_id); 51 | CREATE INDEX i_fk_industry_sc ON industry 52 | (in_sc_id); 53 | CREATE INDEX i_fk_news_xref_ni ON news_xref 54 | (nx_ni_id); 55 | CREATE INDEX i_fk_security_st ON security 56 | (s_st_id); 57 | CREATE INDEX i_fk_security_ex ON security 58 | (s_ex_id); 59 | CREATE INDEX i_fk_security_co ON security 60 | (s_co_id); 61 | CREATE INDEX i_fk_address_zc ON address 62 | (ad_zc_code); 63 | -------------------------------------------------------------------------------- /scripts/oracle/4_create_index.sql: -------------------------------------------------------------------------------- 1 | CREATE INDEX i_c_tax_id ON customer (c_tax_id); 2 | CREATE INDEX i_co_name ON company (co_name); 3 | 4 | CREATE INDEX i_th_t_id_dts ON trade_history (th_t_id, th_dts); 5 | CREATE INDEX i_in_name ON industry (in_name); 6 | CREATE INDEX i_sc_name ON sector (sc_name); 7 | CREATE INDEX i_t_ca_id_dts ON trade (t_ca_id, t_dts); 8 | CREATE INDEX i_t_s_symb_dts ON trade (t_s_symb, t_dts); 9 | CREATE INDEX i_h_ca_id_s_symb_dts ON holding (h_ca_id, h_s_symb, h_dts); 10 | 11 | -------------------------------------------------------------------------------- /scripts/oracle/5_create_sequence.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | USERID=tpce/tpce 3 | NEXT_T_ID=`( sqlplus $USERID <<_EOF_ 4 | SET NUMWIDTH 50 5 | SELECT MAX(t_id)+1 FROM trade; 6 | _EOF_ 7 | ) | grep [0-9] | grep -v [A-Z]` 8 | sqlplus $USERID <<_EOF_ 9 | DROP SEQUENCE seq_trade_id; 10 | CREATE SEQUENCE seq_trade_id START WITH $NEXT_T_ID INCREMENT BY 1 NOMAXVALUE NOCYCLE; 11 | _EOF_ 12 | 13 | -------------------------------------------------------------------------------- /scripts/oracle/6_analyze_table.sql: -------------------------------------------------------------------------------- 1 | exec dbms_stats.gather_schema_stats(ownname=> '"TPCE"' , cascade=> TRUE, estimate_percent=> null, degree=> DBMS_STATS.AUTO_DEGREE, no_invalidate=> DBMS_STATS.AUTO_INVALIDATE, granularity=> 'AUTO', method_opt=> 'FOR ALL COLUMNS SIZE AUTO', options=> 'GATHER'); 2 | 3 | -------------------------------------------------------------------------------- /scripts/oracle/AccountPermission.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/AccountPermission.txt' 4 | APPEND 5 | INTO TABLE account_permission 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | ap_ca_id, 9 | ap_acl, 10 | ap_tax_id, 11 | ap_l_name, 12 | ap_f_name 13 | ) 14 | -------------------------------------------------------------------------------- /scripts/oracle/Address.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Address.txt' 4 | APPEND 5 | INTO TABLE address 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | ad_id, 9 | ad_line1, 10 | ad_line2, 11 | ad_zc_code, 12 | ad_ctry 13 | ) 14 | -------------------------------------------------------------------------------- /scripts/oracle/Broker.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Broker.txt' 4 | APPEND 5 | INTO TABLE broker 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | b_id, 9 | b_st_id, 10 | b_name, 11 | b_num_trades, 12 | b_comm_total 13 | ) 14 | -------------------------------------------------------------------------------- /scripts/oracle/CashTransaction.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/CashTransaction.txt' 4 | APPEND 5 | INTO TABLE cash_transaction 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | ct_t_id, 9 | ct_dts TIMESTAMP "YYYY-MM-DD HH24:MI:SS.FF3", 10 | ct_amt, 11 | ct_name 12 | ) 13 | -------------------------------------------------------------------------------- /scripts/oracle/Charge.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Charge.txt' 4 | APPEND 5 | INTO TABLE charge 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | ch_tt_id, 9 | ch_c_tier, 10 | ch_chrg 11 | ) 12 | -------------------------------------------------------------------------------- /scripts/oracle/CommissionRate.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/CommissionRate.txt' 4 | APPEND 5 | INTO TABLE commission_rate 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | cr_c_tier, 9 | cr_tt_id, 10 | cr_ex_id, 11 | cr_from_qty, 12 | cr_to_qty, 13 | cr_rate 14 | ) 15 | -------------------------------------------------------------------------------- /scripts/oracle/Company.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Company.txt' 4 | APPEND 5 | INTO TABLE company 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | co_id, 9 | co_st_id, 10 | co_name, 11 | co_in_id, 12 | co_sp_rate, 13 | co_ceo, 14 | co_ad_id, 15 | co_desc, 16 | co_open_date DATE "YYYY-MM-DD" 17 | ) 18 | -------------------------------------------------------------------------------- /scripts/oracle/CompanyCompetitor.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/CompanyCompetitor.txt' 4 | APPEND 5 | INTO TABLE company_competitor 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | cp_co_id, 9 | cp_comp_co_id, 10 | cp_in_id 11 | ) 12 | -------------------------------------------------------------------------------- /scripts/oracle/Customer.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Customer.txt' 4 | APPEND 5 | INTO TABLE customer 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | c_id, 9 | c_tax_id, 10 | c_st_id, 11 | c_l_name, 12 | c_f_name, 13 | c_m_name, 14 | c_gndr, 15 | c_tier, 16 | c_dob DATE "YYYY-MM-DD", 17 | c_ad_id, 18 | c_ctry_1, 19 | c_area_1, 20 | c_local_1, 21 | c_ext_1, 22 | c_ctry_2, 23 | c_area_2, 24 | c_local_2, 25 | c_ext_2, 26 | c_ctry_3, 27 | c_area_3, 28 | c_local_3, 29 | c_ext_3, 30 | c_email_1, 31 | c_email_2 32 | ) 33 | -------------------------------------------------------------------------------- /scripts/oracle/CustomerAccount.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/CustomerAccount.txt' 4 | APPEND 5 | INTO TABLE customer_account 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | ca_id, 9 | ca_b_id, 10 | ca_c_id, 11 | ca_name, 12 | ca_tax_st, 13 | ca_bal 14 | ) 15 | -------------------------------------------------------------------------------- /scripts/oracle/CustomerTaxrate.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/CustomerTaxrate.txt' 4 | APPEND 5 | INTO TABLE customer_taxrate 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | cx_tx_id, 9 | cx_c_id 10 | ) 11 | -------------------------------------------------------------------------------- /scripts/oracle/DailyMarket.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/DailyMarket.txt' 4 | APPEND 5 | INTO TABLE daily_market 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | dm_date DATE "YYYY-MM-DD", 9 | dm_s_symb, 10 | dm_close, 11 | dm_high, 12 | dm_low, 13 | dm_vol 14 | ) 15 | -------------------------------------------------------------------------------- /scripts/oracle/Exchange.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Exchange.txt' 4 | APPEND 5 | INTO TABLE exchange 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | ex_id, 9 | ex_name, 10 | ex_num_symb, 11 | ex_open, 12 | ex_close, 13 | ex_desc, 14 | ex_ad_id 15 | ) 16 | -------------------------------------------------------------------------------- /scripts/oracle/Financial.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Financial.txt' 4 | APPEND 5 | INTO TABLE financial 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | fi_co_id, 9 | fi_year, 10 | fi_qtr, 11 | fi_qtr_start_date DATE "YYYY-MM-DD", 12 | fi_revenue, 13 | fi_net_earn, 14 | fi_basic_eps, 15 | fi_dilut_eps, 16 | fi_margin, 17 | fi_inventory, 18 | fi_assets, 19 | fi_liability, 20 | fi_out_basic, 21 | fi_out_dilut 22 | ) 23 | -------------------------------------------------------------------------------- /scripts/oracle/Holding.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Holding.txt' 4 | APPEND 5 | INTO TABLE holding 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | h_t_id, 9 | h_ca_id, 10 | h_s_symb, 11 | h_dts TIMESTAMP "YYYY-MM-DD HH24:MI:SS.FF3", 12 | h_price, 13 | h_qty 14 | ) 15 | -------------------------------------------------------------------------------- /scripts/oracle/HoldingHistory.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/HoldingHistory.txt' 4 | APPEND 5 | INTO TABLE holding_history 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | hh_h_t_id, 9 | hh_t_id, 10 | hh_before_qty, 11 | hh_after_qty 12 | ) 13 | -------------------------------------------------------------------------------- /scripts/oracle/HoldingSummary.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/HoldingSummary.txt' 4 | APPEND 5 | INTO TABLE holding_summary 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | hs_ca_id, 9 | hs_s_symb, 10 | hs_qty 11 | ) 12 | -------------------------------------------------------------------------------- /scripts/oracle/Industry.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Industry.txt' 4 | APPEND 5 | INTO TABLE industry 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | in_id, 9 | in_name, 10 | in_sc_id 11 | ) 12 | -------------------------------------------------------------------------------- /scripts/oracle/LastTrade.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/LastTrade.txt' 4 | APPEND 5 | INTO TABLE last_trade 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | lt_s_symb, 9 | lt_dts TIMESTAMP "YYYY-MM-DD HH24:MI:SS.FF3", 10 | lt_price, 11 | lt_open_price, 12 | lt_vol 13 | ) 14 | -------------------------------------------------------------------------------- /scripts/oracle/NewsItem.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/NewsItem.txt' 4 | APPEND 5 | INTO TABLE news_item 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | ni_id, 9 | ni_headline, 10 | ni_summary, 11 | ni_item CHAR(100000), 12 | ni_dts TIMESTAMP "YYYY-MM-DD HH24:MI:SS.FF3", 13 | ni_source, 14 | ni_author 15 | ) 16 | -------------------------------------------------------------------------------- /scripts/oracle/NewsXRef.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/NewsXRef.txt' 4 | APPEND 5 | INTO TABLE news_xref 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | nx_ni_id, 9 | nx_co_id 10 | ) 11 | 12 | -------------------------------------------------------------------------------- /scripts/oracle/Sector.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Sector.txt' 4 | APPEND 5 | INTO TABLE sector 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | sc_id, 9 | sc_name 10 | ) 11 | -------------------------------------------------------------------------------- /scripts/oracle/Security.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Security.txt' 4 | APPEND 5 | INTO TABLE security 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | s_symb, 9 | s_issue, 10 | s_st_id, 11 | s_name, 12 | s_ex_id, 13 | s_co_id, 14 | s_num_out, 15 | s_start_date DATE "YYYY-MM-DD", 16 | s_exch_date DATE "YYYY-MM-DD", 17 | s_pe, 18 | s_52wk_high, 19 | s_52wk_high_date DATE "YYYY-MM-DD", 20 | s_52wk_low, 21 | s_52wk_low_date DATE "YYYY-MM-DD", 22 | s_dividend, 23 | s_yield 24 | ) 25 | -------------------------------------------------------------------------------- /scripts/oracle/Settlement.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Settlement.txt' 4 | APPEND 5 | INTO TABLE settlement 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | se_t_id, 9 | se_cash_type, 10 | se_cash_due_date DATE "YYYY-MM-DD", 11 | se_amt 12 | ) 13 | -------------------------------------------------------------------------------- /scripts/oracle/StatusType.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/StatusType.txt' 4 | APPEND 5 | INTO TABLE status_type 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | st_id, 9 | st_name 10 | ) 11 | -------------------------------------------------------------------------------- /scripts/oracle/Taxrate.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Taxrate.txt' 4 | APPEND 5 | INTO TABLE taxrate 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | tx_id, 9 | tx_name, 10 | tx_rate 11 | ) 12 | -------------------------------------------------------------------------------- /scripts/oracle/Trade.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/Trade.txt' 4 | APPEND 5 | INTO TABLE trade 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | t_id, 9 | t_dts TIMESTAMP "YYYY-MM-DD HH24:MI:SS.FF3", 10 | t_st_id, 11 | t_tt_id, 12 | t_is_cash, 13 | t_s_symb, 14 | t_qty, 15 | t_bid_price, 16 | t_ca_id, 17 | t_exec_name, 18 | t_trade_price, 19 | t_chrg, 20 | t_comm, 21 | t_tax, 22 | t_lifo 23 | ) 24 | -------------------------------------------------------------------------------- /scripts/oracle/TradeHistory.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/TradeHistory.txt' 4 | APPEND 5 | INTO TABLE trade_history 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | th_t_id, 9 | th_dts TIMESTAMP "YYYY-MM-DD HH24:MI:SS.FF3", 10 | th_st_id 11 | ) 12 | -------------------------------------------------------------------------------- /scripts/oracle/TradeRequest.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/TradeRequest.txt' 4 | APPEND 5 | INTO TABLE trade_request 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | tr_t_id, 9 | tr_tt_id, 10 | tr_s_symb, 11 | tr_qty, 12 | tr_bid_price, 13 | tr_b_id 14 | ) 15 | -------------------------------------------------------------------------------- /scripts/oracle/TradeType.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/TradeType.txt' 4 | APPEND 5 | INTO TABLE trade_type 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | tt_id, 9 | tt_name, 10 | tt_is_sell, 11 | tt_is_mrkt 12 | ) 13 | -------------------------------------------------------------------------------- /scripts/oracle/WatchItem.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/WatchItem.txt' 4 | APPEND 5 | INTO TABLE watch_item 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | wi_wl_id, 9 | wi_s_symb 10 | ) 11 | -------------------------------------------------------------------------------- /scripts/oracle/WatchList.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/WatchList.txt' 4 | APPEND 5 | INTO TABLE watch_list 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | wl_id, 9 | wl_c_id 10 | ) 11 | -------------------------------------------------------------------------------- /scripts/oracle/ZipCode.ctl: -------------------------------------------------------------------------------- 1 | OPTIONS (DIRECT=TRUE) 2 | LOAD DATA 3 | INFILE '../../flat_out/ZipCode.txt' 4 | APPEND 5 | INTO TABLE zip_code 6 | FIELDS TERMINATED BY '|' 7 | ( 8 | zc_code, 9 | zc_town, 10 | zc_div 11 | ) 12 | -------------------------------------------------------------------------------- /scripts/pgsql/2_load_data.sql: -------------------------------------------------------------------------------- 1 | 2 | \copy account_permission FROM '../../flat_out/AccountPermission.txt' DELIMITER '|' 3 | \copy customer FROM '../../flat_out/Customer.txt' DELIMITER '|' 4 | \copy customer_account FROM '../../flat_out/CustomerAccount.txt' DELIMITER '|' 5 | \copy customer_taxrate FROM '../../flat_out/CustomerTaxrate.txt' DELIMITER '|' 6 | \copy holding FROM '../../flat_out/Holding.txt' DELIMITER '|' 7 | \copy holding_history FROM '../../flat_out/HoldingHistory.txt' DELIMITER '|' 8 | \copy holding_summary FROM '../../flat_out/HoldingSummary.txt' DELIMITER '|' 9 | \copy watch_item FROM '../../flat_out/WatchItem.txt' DELIMITER '|' 10 | \copy watch_list FROM '../../flat_out/WatchList.txt' DELIMITER '|' 11 | \copy broker FROM '../../flat_out/Broker.txt' DELIMITER '|' 12 | \copy cash_transaction FROM '../../flat_out/CashTransaction.txt' DELIMITER '|' 13 | \copy charge FROM '../../flat_out/Charge.txt' DELIMITER '|' 14 | \copy commission_rate FROM '../../flat_out/CommissionRate.txt' DELIMITER '|' 15 | \copy settlement FROM '../../flat_out/Settlement.txt' DELIMITER '|' 16 | \copy trade FROM '../../flat_out/Trade.txt' DELIMITER '|' 17 | \copy trade_history FROM '../../flat_out/TradeHistory.txt' DELIMITER '|' 18 | -- \copy trade_request FROM '../../flat_out/TradeRequest.txt' DELIMITER '|' 19 | \copy trade_type FROM '../../flat_out/TradeType.txt' DELIMITER '|' 20 | \copy company FROM '../../flat_out/Company.txt' DELIMITER '|' 21 | \copy company_competitor FROM '../../flat_out/CompanyCompetitor.txt' DELIMITER '|' 22 | \copy daily_market FROM '../../flat_out/DailyMarket.txt' DELIMITER '|' 23 | \copy exchange FROM '../../flat_out/Exchange.txt' DELIMITER '|' 24 | \copy financial FROM '../../flat_out/Financial.txt' DELIMITER '|' 25 | \copy industry FROM '../../flat_out/Industry.txt' DELIMITER '|' 26 | \copy last_trade FROM '../../flat_out/LastTrade.txt' DELIMITER '|' 27 | \copy news_item FROM '../../flat_out/NewsItem.txt' DELIMITER '|' 28 | \copy news_xref FROM '../../flat_out/NewsXRef.txt' DELIMITER '|' 29 | \copy sector FROM '../../flat_out/Sector.txt' DELIMITER '|' 30 | \copy security FROM '../../flat_out/Security.txt' DELIMITER '|' 31 | \copy address FROM '../../flat_out/Address.txt' DELIMITER '|' 32 | \copy status_type FROM '../../flat_out/StatusType.txt' DELIMITER '|' 33 | \copy taxrate FROM '../../flat_out/Taxrate.txt' DELIMITER '|' 34 | \copy zip_code FROM '../../flat_out/ZipCode.txt' DELIMITER '|' 35 | 36 | -------------------------------------------------------------------------------- /scripts/pgsql/4_create_fk_index.sql: -------------------------------------------------------------------------------- 1 | CREATE INDEX i_fk_customer_st ON customer 2 | (c_st_id); 3 | CREATE INDEX i_fk_customer_ad ON customer 4 | (c_ad_id); 5 | CREATE INDEX i_fk_customer_account_b ON customer_account 6 | (ca_b_id); 7 | CREATE INDEX i_fk_customer_account_c ON customer_account 8 | (ca_c_id); 9 | CREATE INDEX i_fk_customer_taxrate_tx ON customer_taxrate 10 | (cx_tx_id); 11 | CREATE INDEX i_fk_holding_hs ON holding 12 | (h_ca_id, h_s_symb); 13 | CREATE INDEX i_fk_holding_history_t1 ON holding_history 14 | (hh_h_t_id); 15 | CREATE INDEX i_fk_holding_summary_s ON holding_summary 16 | (hs_s_symb); 17 | CREATE INDEX i_fk_watch_item_s ON watch_item 18 | (wi_s_symb); 19 | CREATE INDEX i_fk_watch_list_c ON watch_list 20 | (wl_c_id); 21 | CREATE INDEX i_fk_broker_st ON broker 22 | (b_st_id); 23 | CREATE INDEX i_fk_commission_rate_tt ON commission_rate 24 | (cr_tt_id); 25 | CREATE INDEX i_fk_commission_rate_ex ON commission_rate 26 | (cr_ex_id); 27 | CREATE INDEX i_fk_trade_st ON trade 28 | (t_st_id); 29 | CREATE INDEX i_fk_trade_tt ON trade 30 | (t_tt_id); 31 | CREATE INDEX i_fk_trade_history_st ON trade_history 32 | (th_st_id); 33 | CREATE INDEX i_fk_trade_request_tt ON trade_request 34 | (tr_tt_id); 35 | CREATE INDEX i_fk_trade_request_s ON trade_request 36 | (tr_s_symb); 37 | CREATE INDEX i_fk_trade_request_b ON trade_request 38 | (tr_b_id); 39 | CREATE INDEX i_fk_company_st ON company 40 | (co_st_id); 41 | CREATE INDEX i_fk_company_in ON company 42 | (co_in_id); 43 | CREATE INDEX i_fk_company_ad ON company 44 | (co_ad_id); 45 | CREATE INDEX i_fk_company_competitor_co2 ON company_competitor 46 | (cp_comp_co_id); 47 | CREATE INDEX i_fk_company_competitor_in ON company_competitor 48 | (cp_in_id); 49 | CREATE INDEX i_fk_exchange_ad ON exchange 50 | (ex_ad_id); 51 | CREATE INDEX i_fk_industry_sc ON industry 52 | (in_sc_id); 53 | CREATE INDEX i_fk_news_xref_ni ON news_xref 54 | (nx_ni_id); 55 | CREATE INDEX i_fk_security_st ON security 56 | (s_st_id); 57 | CREATE INDEX i_fk_security_ex ON security 58 | (s_ex_id); 59 | CREATE INDEX i_fk_security_co ON security 60 | (s_co_id); 61 | CREATE INDEX i_fk_address_zc ON address 62 | (ad_zc_code); 63 | -------------------------------------------------------------------------------- /scripts/pgsql/4_create_index.sql: -------------------------------------------------------------------------------- 1 | CREATE INDEX i_c_tax_id ON customer (c_tax_id); 2 | CREATE INDEX i_co_name ON company (co_name); 3 | 4 | CREATE INDEX i_th_t_id_dts ON trade_history (th_t_id, th_dts); 5 | CREATE INDEX i_in_name ON industry (in_name); 6 | CREATE INDEX i_sc_name ON sector (sc_name); 7 | CREATE INDEX i_t_ca_id_dts ON trade (t_ca_id, t_dts); 8 | CREATE INDEX i_t_s_symb_dts ON trade (t_s_symb, t_dts); 9 | CREATE INDEX i_h_ca_id_s_symb_dts ON holding (h_ca_id, h_s_symb, h_dts); 10 | 11 | -------------------------------------------------------------------------------- /scripts/pgsql/5_create_sequence.sql: -------------------------------------------------------------------------------- 1 | DROP SEQUENCE IF EXISTS seq_trade_id; 2 | CREATE SEQUENCE seq_trade_id INCREMENT 1; 3 | SELECT SETVAL('seq_trade_id',(SELECT MAX(t_id) FROM trade)); 4 | 5 | -------------------------------------------------------------------------------- /scripts/pgsql/6_analyze_table.sql: -------------------------------------------------------------------------------- 1 | ANALYZE account_permission; 2 | ANALYZE customer; 3 | ANALYZE customer_account; 4 | ANALYZE customer_taxrate; 5 | ANALYZE holding; 6 | ANALYZE holding_history; 7 | ANALYZE holding_summary; 8 | ANALYZE watch_item; 9 | ANALYZE watch_list; 10 | ANALYZE broker; 11 | ANALYZE cash_transaction; 12 | ANALYZE charge; 13 | ANALYZE commission_rate; 14 | ANALYZE settlement; 15 | ANALYZE trade; 16 | ANALYZE trade_history; 17 | ANALYZE trade_request; 18 | ANALYZE trade_type; 19 | ANALYZE company; 20 | ANALYZE company_competitor; 21 | ANALYZE daily_market; 22 | ANALYZE exchange; 23 | ANALYZE financial; 24 | ANALYZE industry; 25 | ANALYZE last_trade; 26 | ANALYZE news_item; 27 | ANALYZE news_xref; 28 | ANALYZE sector; 29 | ANALYZE security; 30 | ANALYZE address; 31 | ANALYZE status_type; 32 | ANALYZE taxrate; 33 | ANALYZE zip_code; 34 | -------------------------------------------------------------------------------- /src/ReadRowFunctions.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Matt Emmerton 35 | */ 36 | 37 | /* 38 | * This file allows compile-time selection of the type of ReadRowFunctions to 39 | * use at runtime - C++-style istream (the default) or C-style sscanf. 40 | */ 41 | 42 | #ifdef READROW_SSCANF 43 | #include "ReadRowFunctions_sscanf.cpp" 44 | #else 45 | #include "ReadRowFunctions_istream.cpp" 46 | #endif 47 | -------------------------------------------------------------------------------- /src/RtHistogram.cpp: -------------------------------------------------------------------------------- 1 | // RtHistogram.cpp 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #include "../inc/EGenSimpleTest.h" 5 | 6 | using namespace TPCE; 7 | 8 | CRtHistogram::CRtHistogram() 9 | { 10 | for(int i=0; i<(RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC); i++) 11 | { 12 | m_Total_Hist[i] = m_Current_Hist[i] = 0; 13 | } 14 | clk_tck = sysconf(_SC_CLK_TCK); 15 | 16 | m_Total_Max = m_Current_Max = 0; 17 | } 18 | 19 | CRtHistogram::~CRtHistogram() 20 | { 21 | } 22 | 23 | void CRtHistogram::Put(long rtclk) 24 | { 25 | long msec = rtclk * 1000 / clk_tck; 26 | long i = msec / RTHIST_CLASS_MSEC; 27 | if (i >= (RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC)) 28 | i = (RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC) - 1; 29 | 30 | m_RtHistLock.lock(); 31 | 32 | ++m_Current_Hist[i]; 33 | 34 | if(msec > m_Current_Max) 35 | m_Current_Max = msec; 36 | 37 | m_RtHistLock.unlock(); 38 | } 39 | 40 | long CRtHistogram::Check_point() 41 | { 42 | long total = 0; 43 | long tmp = 0; 44 | long line = RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC; 45 | 46 | m_RtHistLock.lock(); 47 | 48 | for(long i=0; i < (RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC); i++) 49 | total += m_Current_Hist[i]; 50 | 51 | for(long i=(RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC)-1; i >= 0 ; i--) 52 | { 53 | if( (tmp * 10) <= total ) 54 | { 55 | tmp += m_Current_Hist[i]; 56 | line = i + 1; 57 | } 58 | 59 | m_Total_Hist[i] += m_Current_Hist[i]; 60 | m_Current_Hist[i] = 0; 61 | } 62 | if(tmp==0) 63 | line=0; 64 | 65 | if(m_Current_Max > m_Total_Max) 66 | m_Total_Max = m_Current_Max; 67 | 68 | m_Current_Max = 0; 69 | 70 | m_RtHistLock.unlock(); 71 | 72 | return( (line == RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC)?(-1):(line * RTHIST_CLASS_MSEC) ); 73 | } 74 | 75 | void CRtHistogram::Print() 76 | { 77 | long total = 0; 78 | long tmp = 0; 79 | long line = RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC; 80 | 81 | for(long i=0; i < (RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC); i++) 82 | total += m_Total_Hist[i]; 83 | 84 | for(long i=(RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC)-1; i >= 0 ; i--) 85 | { 86 | if( (tmp * 10) <= total ) 87 | { 88 | tmp += m_Total_Hist[i]; 89 | line = i + 1; 90 | } 91 | else 92 | { 93 | break; 94 | } 95 | } 96 | cout << "90%ile : " << (long)((line == RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC)?(-1):(line * RTHIST_CLASS_MSEC)) << 97 | " msec." << endl; 98 | cout << "max : " << m_Total_Max << " msec." << endl; 99 | 100 | // print histogram limit (90%ile * 2) 101 | for(long i=0; (i < (RTHIST_MAX_MSEC / RTHIST_CLASS_MSEC)) && (i < line * 2); i++) 102 | printf("%5ld, %ld\n", i * RTHIST_CLASS_MSEC, m_Total_Hist[i]); 103 | printf("\n"); 104 | } 105 | -------------------------------------------------------------------------------- /src/SendToMarket.cpp: -------------------------------------------------------------------------------- 1 | // SendToMarket.cpp 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #include "../inc/EGenSimpleTest.h" 5 | 6 | using namespace TPCE; 7 | 8 | void push_message(PTradeRequest pMessage); 9 | 10 | bool CSendToMarket::SendToMarket(TTradeRequest &trade_mes) 11 | { 12 | push_message(&trade_mes); 13 | return true; 14 | } 15 | -------------------------------------------------------------------------------- /src/TxnDBBase.cpp: -------------------------------------------------------------------------------- 1 | // TxnDBBase.cpp 2 | // 2008 Yasufumi Kinoshita 3 | 4 | #include "../inc/EGenSimpleTest.h" 5 | 6 | using namespace TPCE; 7 | 8 | CTxnDBBase::CTxnDBBase(CDBConnection *pDBConn) 9 | : m_pDBConnection(pDBConn) 10 | { 11 | m_Conn = m_pDBConnection->m_Conn; 12 | m_Stmt = m_pDBConnection->m_Stmt; 13 | m_Stmt2 = m_pDBConnection->m_Stmt2; 14 | } 15 | 16 | CTxnDBBase::~CTxnDBBase() 17 | { 18 | } 19 | 20 | void CTxnDBBase::BeginTxn() 21 | { 22 | m_pDBConnection->BeginTxn(); 23 | } 24 | 25 | void CTxnDBBase::CommitTxn() 26 | { 27 | m_pDBConnection->CommitTxn(); 28 | } 29 | 30 | void CTxnDBBase::RollbackTxn() 31 | { 32 | m_pDBConnection->RollbackTxn(); 33 | } 34 | 35 | void CTxnDBBase::ThrowError( CODBCERR::ACTION eAction, SQLSMALLINT HandleType, SQLHANDLE Handle, 36 | const char* FileName, unsigned int Line) 37 | { 38 | m_pDBConnection->ThrowError(eAction, HandleType, Handle, FileName, Line); 39 | } 40 | -------------------------------------------------------------------------------- /src/progressmeterinterface.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a part of a 5 | * benchmark specification maintained by the TPC. 6 | * 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Christopher Chan-Nui 35 | */ 36 | 37 | #include "../inc/progressmeterinterface.h" 38 | #include "../inc/unusedflag.h" 39 | 40 | namespace TPCE 41 | { 42 | 43 | // Dummy implementation in case someone wants to have a null progress meter 44 | ProgressMeterInterface::~ProgressMeterInterface() 45 | { 46 | } 47 | 48 | void ProgressMeterInterface::display() const 49 | { 50 | } 51 | 52 | void ProgressMeterInterface::inc(int count UNUSED) 53 | { 54 | } 55 | 56 | void ProgressMeterInterface::message(const std::string& mesg UNUSED, int level UNUSED) 57 | { 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /unittest/Makefile: -------------------------------------------------------------------------------- 1 | CXXFLAGS=-g -D__unix -D__STDC_FORMAT_MACROS -D__STDC_CONSTANT_MACROS -I/opt/include/boost-1_36 2 | LDFLAGS=-g -L/opt/lib 3 | 4 | EGEN_OBJS= \ 5 | ../obj/FlatFileLoader.o \ 6 | ../obj/error.o \ 7 | ../obj/ReadRowFunctions.o \ 8 | 9 | unittest: tc_main.o tc_checkcompliant.o tc_securityfile.o 10 | $(CXX) $(LDFLAGS) -o $@ $^ $(EGEN_OBJS) /opt/lib/libboost_unit_test_framework-xgcc40-mt.a 11 | 12 | 13 | -------------------------------------------------------------------------------- /unittest/tc_main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Legal Notice 3 | * 4 | * This document and associated source code (the "Work") is a preliminary 5 | * version of a benchmark specification being developed by the TPC. The 6 | * Work is being made available to the public for review and comment only. 7 | * The TPC reserves all right, title, and interest to the Work as provided 8 | * under U.S. and international laws, including without limitation all patent 9 | * and trademark rights therein. 10 | * 11 | * No Warranty 12 | * 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION 14 | * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE 15 | * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER 16 | * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, 17 | * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, 18 | * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR 19 | * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF 20 | * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. 21 | * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, 22 | * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT 23 | * WITH REGARD TO THE WORK. 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO 25 | * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE 26 | * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS 27 | * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, 28 | * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, 29 | * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT 30 | * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD 31 | * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. 32 | * 33 | * Contributors 34 | * - Christopher Chan-Nui 35 | */ 36 | 37 | #define BOOST_AUTO_TEST_MAIN 38 | #include 39 | #include 40 | 41 | --------------------------------------------------------------------------------