/* * Legal Notice * * This document and associated source code (the "Work") is a part of a * benchmark specification maintained by the TPC. * * The TPC reserves all right, title, and interest to the Work as provided * under U.S. and international laws, including without limitation all patent * and trademark rights therein. * * No Warranty * * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION * CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE * AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER * WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, * INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, * DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR * PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF * WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. * ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, * QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT * WITH REGARD TO THE WORK. * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO * ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE * COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS * OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, * INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, * OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT * RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD * ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. * * Contributors * - Sergey Vasilevskiy * - Doug Johnson */ /* * Flat file loader class factory. * This class instantiates particular table loader classes. */ #ifndef FLAT_LOADER_FACTORY_H #define FLAT_LOADER_FACTORY_H #include #include "FlatFileLoad_stdafx.h" namespace TPCE { class CFlatLoaderFactory : public CBaseLoaderFactory { char m_szOutDir[iMaxPath]; char m_szFullFileName[iMaxPath]; FlatFileOutputModes m_eOutputMode; // overwrite/append void SetFileName(const char *szFileName) { snprintf(m_szFullFileName, sizeof(m_szFullFileName), "%s%s", m_szOutDir, szFileName); } public: // Constructor CFlatLoaderFactory(char *szOutDir, FlatFileOutputModes eOutputMode) : m_eOutputMode(eOutputMode) { assert(szOutDir); strncpy(m_szOutDir, szOutDir, sizeof(m_szOutDir)); }; // Functions to create loader classes for individual tables. virtual CBaseLoader *CreateAccountPermissionLoader() { SetFileName("AccountPermission.txt"); return new CFlatAccountPermissionLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateAddressLoader() { SetFileName("Address.txt"); return new CFlatAddressLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateBrokerLoader() { SetFileName("Broker.txt"); return new CFlatBrokerLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateCashTransactionLoader() { SetFileName("CashTransaction.txt"); return new CFlatCashTransactionLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateChargeLoader() { SetFileName("Charge.txt"); return new CFlatChargeLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateCommissionRateLoader() { SetFileName("CommissionRate.txt"); return new CFlatCommissionRateLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateCompanyCompetitorLoader() { SetFileName("CompanyCompetitor.txt"); return new CFlatCompanyCompetitorLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateCompanyLoader() { SetFileName("Company.txt"); return new CFlatCompanyLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateCustomerAccountLoader() { SetFileName("CustomerAccount.txt"); return new CFlatCustomerAccountLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateCustomerLoader() { SetFileName("Customer.txt"); return new CFlatCustomerLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateCustomerTaxrateLoader() { SetFileName("CustomerTaxrate.txt"); return new CFlatCustomerTaxrateLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateDailyMarketLoader() { SetFileName("DailyMarket.txt"); return new CFlatDailyMarketLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateExchangeLoader() { SetFileName("Exchange.txt"); return new CFlatExchangeLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateFinancialLoader() { SetFileName("Financial.txt"); return new CFlatFinancialLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateHoldingLoader() { SetFileName("Holding.txt"); return new CFlatHoldingLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateHoldingHistoryLoader() { SetFileName("HoldingHistory.txt"); return new CFlatHoldingHistoryLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateHoldingSummaryLoader() { SetFileName("HoldingSummary.txt"); return new CFlatHoldingSummaryLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateIndustryLoader() { SetFileName("Industry.txt"); return new CFlatIndustryLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateLastTradeLoader() { SetFileName("LastTrade.txt"); return new CFlatLastTradeLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateNewsItemLoader() { SetFileName("NewsItem.txt"); return new CFlatNewsItemLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateNewsXRefLoader() { SetFileName("NewsXRef.txt"); return new CFlatNewsXRefLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateSectorLoader() { SetFileName("Sector.txt"); return new CFlatSectorLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateSecurityLoader() { SetFileName("Security.txt"); return new CFlatSecurityLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateSettlementLoader() { SetFileName("Settlement.txt"); return new CFlatSettlementLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateStatusTypeLoader() { SetFileName("StatusType.txt"); return new CFlatStatusTypeLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateTaxRateLoader() { SetFileName("TaxRate.txt"); return new CFlatTaxRateLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateTradeHistoryLoader() { SetFileName("TradeHistory.txt"); return new CFlatTradeHistoryLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateTradeLoader() { SetFileName("Trade.txt"); return new CFlatTradeLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateTradeRequestLoader() { SetFileName("TradeRequest.txt"); return new CFlatTradeRequestLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateTradeTypeLoader() { SetFileName("TradeType.txt"); return new CFlatTradeTypeLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateWatchItemLoader() { SetFileName("WatchItem.txt"); return new CFlatWatchItemLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateWatchListLoader() { SetFileName("WatchList.txt"); return new CFlatWatchListLoad(m_szFullFileName, m_eOutputMode); }; virtual CBaseLoader *CreateZipCodeLoader() { SetFileName("ZipCode.txt"); return new CFlatZipCodeLoad(m_szFullFileName, m_eOutputMode); }; }; } // namespace TPCE #endif // FLAT_LOADER_FACTORY_H