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 | * - Doug Johnson |
36 | */ |
37 | |
38 | /* |
39 | * Null loader class factory. |
40 | * This class instantiates particular table loader classes. |
41 | */ |
42 | #ifndef NULL_LOADER_FACTORY_H |
43 | #define NULL_LOADER_FACTORY_H |
44 | |
45 | #include "BaseLoader.h" |
46 | #include "BaseLoaderFactory.h" |
47 | #include "NullLoader.h" |
48 | #include "TableRows.h" |
49 | |
50 | namespace TPCE { |
51 | |
52 | class CNullLoaderFactory : public CBaseLoaderFactory { |
53 | |
54 | public: |
55 | // Functions to create loader classes for individual tables. |
56 | |
57 | virtual CBaseLoader<ACCOUNT_PERMISSION_ROW> *CreateAccountPermissionLoader() { |
58 | return new CNullLoader<ACCOUNT_PERMISSION_ROW>(); |
59 | }; |
60 | |
61 | virtual CBaseLoader<ADDRESS_ROW> *CreateAddressLoader() { |
62 | return new CNullLoader<ADDRESS_ROW>(); |
63 | }; |
64 | |
65 | virtual CBaseLoader<BROKER_ROW> *CreateBrokerLoader() { |
66 | return new CNullLoader<BROKER_ROW>(); |
67 | }; |
68 | |
69 | virtual CBaseLoader<CASH_TRANSACTION_ROW> *CreateCashTransactionLoader() { |
70 | return new CNullLoader<CASH_TRANSACTION_ROW>(); |
71 | }; |
72 | |
73 | virtual CBaseLoader<CHARGE_ROW> *CreateChargeLoader() { |
74 | return new CNullLoader<CHARGE_ROW>(); |
75 | }; |
76 | |
77 | virtual CBaseLoader<COMMISSION_RATE_ROW> *CreateCommissionRateLoader() { |
78 | return new CNullLoader<COMMISSION_RATE_ROW>(); |
79 | }; |
80 | |
81 | virtual CBaseLoader<COMPANY_COMPETITOR_ROW> *CreateCompanyCompetitorLoader() { |
82 | return new CNullLoader<COMPANY_COMPETITOR_ROW>(); |
83 | }; |
84 | |
85 | virtual CBaseLoader<COMPANY_ROW> *CreateCompanyLoader() { |
86 | return new CNullLoader<COMPANY_ROW>(); |
87 | }; |
88 | |
89 | virtual CBaseLoader<CUSTOMER_ACCOUNT_ROW> *CreateCustomerAccountLoader() { |
90 | return new CNullLoader<CUSTOMER_ACCOUNT_ROW>(); |
91 | }; |
92 | |
93 | virtual CBaseLoader<CUSTOMER_ROW> *CreateCustomerLoader() { |
94 | return new CNullLoader<CUSTOMER_ROW>(); |
95 | }; |
96 | virtual CBaseLoader<CUSTOMER_TAXRATE_ROW> *CreateCustomerTaxrateLoader() { |
97 | return new CNullLoader<CUSTOMER_TAXRATE_ROW>(); |
98 | }; |
99 | virtual CBaseLoader<DAILY_MARKET_ROW> *CreateDailyMarketLoader() { |
100 | return new CNullLoader<DAILY_MARKET_ROW>(); |
101 | }; |
102 | virtual CBaseLoader<EXCHANGE_ROW> *CreateExchangeLoader() { |
103 | return new CNullLoader<EXCHANGE_ROW>(); |
104 | }; |
105 | virtual CBaseLoader<FINANCIAL_ROW> *CreateFinancialLoader() { |
106 | return new CNullLoader<FINANCIAL_ROW>(); |
107 | }; |
108 | virtual CBaseLoader<HOLDING_ROW> *CreateHoldingLoader() { |
109 | return new CNullLoader<HOLDING_ROW>(); |
110 | }; |
111 | virtual CBaseLoader<HOLDING_HISTORY_ROW> *CreateHoldingHistoryLoader() { |
112 | return new CNullLoader<HOLDING_HISTORY_ROW>(); |
113 | }; |
114 | virtual CBaseLoader<HOLDING_SUMMARY_ROW> *CreateHoldingSummaryLoader() { |
115 | return new CNullLoader<HOLDING_SUMMARY_ROW>(); |
116 | }; |
117 | virtual CBaseLoader<INDUSTRY_ROW> *CreateIndustryLoader() { |
118 | return new CNullLoader<INDUSTRY_ROW>(); |
119 | }; |
120 | virtual CBaseLoader<LAST_TRADE_ROW> *CreateLastTradeLoader() { |
121 | return new CNullLoader<LAST_TRADE_ROW>(); |
122 | }; |
123 | virtual CBaseLoader<NEWS_ITEM_ROW> *CreateNewsItemLoader() { |
124 | return new CNullLoader<NEWS_ITEM_ROW>(); |
125 | }; |
126 | virtual CBaseLoader<NEWS_XREF_ROW> *CreateNewsXRefLoader() { |
127 | return new CNullLoader<NEWS_XREF_ROW>(); |
128 | }; |
129 | virtual CBaseLoader<SECTOR_ROW> *CreateSectorLoader() { |
130 | return new CNullLoader<SECTOR_ROW>(); |
131 | }; |
132 | virtual CBaseLoader<SECURITY_ROW> *CreateSecurityLoader() { |
133 | return new CNullLoader<SECURITY_ROW>(); |
134 | }; |
135 | virtual CBaseLoader<SETTLEMENT_ROW> *CreateSettlementLoader() { |
136 | return new CNullLoader<SETTLEMENT_ROW>(); |
137 | }; |
138 | virtual CBaseLoader<STATUS_TYPE_ROW> *CreateStatusTypeLoader() { |
139 | return new CNullLoader<STATUS_TYPE_ROW>(); |
140 | }; |
141 | virtual CBaseLoader<TAX_RATE_ROW> *CreateTaxRateLoader() { |
142 | return new CNullLoader<TAX_RATE_ROW>(); |
143 | }; |
144 | virtual CBaseLoader<TRADE_HISTORY_ROW> *CreateTradeHistoryLoader() { |
145 | return new CNullLoader<TRADE_HISTORY_ROW>(); |
146 | }; |
147 | virtual CBaseLoader<TRADE_ROW> *CreateTradeLoader() { |
148 | return new CNullLoader<TRADE_ROW>(); |
149 | }; |
150 | virtual CBaseLoader<TRADE_REQUEST_ROW> *CreateTradeRequestLoader() { |
151 | return new CNullLoader<TRADE_REQUEST_ROW>(); |
152 | }; |
153 | virtual CBaseLoader<TRADE_TYPE_ROW> *CreateTradeTypeLoader() { |
154 | return new CNullLoader<TRADE_TYPE_ROW>(); |
155 | }; |
156 | virtual CBaseLoader<WATCH_ITEM_ROW> *CreateWatchItemLoader() { |
157 | return new CNullLoader<WATCH_ITEM_ROW>(); |
158 | }; |
159 | |
160 | virtual CBaseLoader<WATCH_LIST_ROW> *CreateWatchListLoader() { |
161 | return new CNullLoader<WATCH_LIST_ROW>(); |
162 | }; |
163 | |
164 | virtual CBaseLoader<ZIP_CODE_ROW> *CreateZipCodeLoader() { |
165 | return new CNullLoader<ZIP_CODE_ROW>(); |
166 | }; |
167 | }; |
168 | |
169 | } // namespace TPCE |
170 | |
171 | #endif // NULL_LOADER_FACTORY_H |
172 | |