/* * 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, Larry Loen */ /****************************************************************************** * Description: Simple behaviorless structs representing a row in a table. * These are what is emitted by EGen to database loaders. ******************************************************************************/ #ifndef TABLE_ROWS_H #define TABLE_ROWS_H #include "utilities/EGenStandardTypes.h" #include "utilities/TableConsts.h" #include "utilities/DateTime.h" using namespace std; namespace TPCE { // ACCOUNT_PERMISSION table typedef struct ACCOUNT_PERMISSION_ROW { TIdent AP_CA_ID; char AP_ACL[cACL_len + 1]; // binary column in the table char AP_TAX_ID[cTAX_ID_len + 1]; char AP_L_NAME[cL_NAME_len + 1]; char AP_F_NAME[cF_NAME_len + 1]; } * PACCOUNT_PERMISSION_ROW; // ADDRESS table typedef struct ADDRESS_ROW { TIdent AD_ID; char AD_LINE1[cAD_LINE_len + 1]; char AD_LINE2[cAD_LINE_len + 1]; char AD_ZC_CODE[cAD_ZIP_len + 1]; char AD_CTRY[cAD_CTRY_len + 1]; } * PADDRESS_ROW; // BROKER table typedef struct BROKER_ROW { TIdent B_ID; char B_ST_ID[cST_ID_len + 1]; char B_NAME[cB_NAME_len + 1]; int B_NUM_TRADES; double B_COMM_TOTAL; } * PBROKER_ROW; // CASH_TRANSACTION table typedef struct CASH_TRANSACTION_ROW { TTrade CT_T_ID; CDateTime CT_DTS; double CT_AMT; char CT_NAME[cCT_NAME_len + 1]; } * PCASH_TRANSACTION_ROW; // CHARGE table typedef struct CHARGE_ROW { char CH_TT_ID[cTT_ID_len + 1]; int CH_C_TIER; double CH_CHRG; } * PCHARGE_ROW; // COMMISSION_RATE table typedef struct COMMISSION_RATE_ROW { int CR_C_TIER; char CR_TT_ID[cTT_ID_len + 1]; char CR_EX_ID[cEX_ID_len + 1]; int CR_FROM_QTY; int CR_TO_QTY; double CR_RATE; } * PCOMMISSION_RATE_ROW; // COMPANY table typedef struct COMPANY_ROW { TIdent CO_ID; char CO_ST_ID[cST_ID_len + 1]; char CO_NAME[cCO_NAME_len + 1]; char CO_IN_ID[cIN_ID_len + 1]; char CO_SP_RATE[cSP_RATE_len + 1]; char CO_CEO[cCEO_NAME_len + 1]; TIdent CO_AD_ID; char CO_DESC[cCO_DESC_len + 1]; CDateTime CO_OPEN_DATE; } * PCOMPANY_ROW; // COMPANY_COMPETITOR table typedef struct COMPANY_COMPETITOR_ROW { TIdent CP_CO_ID; TIdent CP_COMP_CO_ID; char CP_IN_ID[cIN_ID_len + 1]; } * PCOMPANY_COMPETITOR_ROW; // CUSTOMER table typedef struct CUSTOMER_ROW { TIdent C_ID; char C_TAX_ID[cTAX_ID_len + 1]; char C_ST_ID[cST_ID_len + 1]; char C_L_NAME[cL_NAME_len + 1]; char C_F_NAME[cF_NAME_len + 1]; char C_M_NAME[cM_NAME_len + 1]; char C_GNDR; char C_TIER; CDateTime C_DOB; TIdent C_AD_ID; char C_CTRY_1[cCTRY_len + 1]; char C_AREA_1[cAREA_len + 1]; char C_LOCAL_1[cLOCAL_len + 1]; char C_EXT_1[cEXT_len + 1]; char C_CTRY_2[cCTRY_len + 1]; char C_AREA_2[cAREA_len + 1]; char C_LOCAL_2[cLOCAL_len + 1]; char C_EXT_2[cEXT_len + 1]; char C_CTRY_3[cCTRY_len + 1]; char C_AREA_3[cAREA_len + 1]; char C_LOCAL_3[cLOCAL_len + 1]; char C_EXT_3[cEXT_len + 1]; char C_EMAIL_1[cEMAIL_len + 1]; char C_EMAIL_2[cEMAIL_len + 1]; CUSTOMER_ROW() : C_ID(0){}; } * PCUSTOMER_ROW; // CUSTOMER_ACCOUNT table typedef struct CUSTOMER_ACCOUNT_ROW { TIdent CA_ID; TIdent CA_B_ID; TIdent CA_C_ID; char CA_NAME[cCA_NAME_len + 1]; char CA_TAX_ST; double CA_BAL; } * PCUSTOMER_ACCOUNT_ROW; // CUSTOMER_TAXRATE table typedef struct CUSTOMER_TAXRATE_ROW { char CX_TX_ID[cTX_ID_len + 1]; TIdent CX_C_ID; } * PCUSTOMER_TAXRATE_ROW; // DAILY_MARKET table typedef struct DAILY_MARKET_ROW { CDateTime DM_DATE; char DM_S_SYMB[cSYMBOL_len + 1]; double DM_CLOSE; double DM_HIGH; double DM_LOW; INT64 DM_VOL; } * PDAILY_MARKET_ROW; // EXCHANGE table typedef struct EXCHANGE_ROW { char EX_ID[cEX_ID_len + 1]; char EX_NAME[cEX_NAME_len + 1]; int EX_NUM_SYMB; int EX_OPEN; int EX_CLOSE; char EX_DESC[cEX_DESC_len + 1]; TIdent EX_AD_ID; } * PEXCHANGE_ROW; // FINANCIAL table typedef struct FINANCIAL_ROW { TIdent FI_CO_ID; int FI_YEAR; int FI_QTR; CDateTime FI_QTR_START_DATE; double FI_REVENUE; double FI_NET_EARN; double FI_BASIC_EPS; double FI_DILUT_EPS; double FI_MARGIN; double FI_INVENTORY; double FI_ASSETS; double FI_LIABILITY; INT64 FI_OUT_BASIC; INT64 FI_OUT_DILUT; } * PFINANCIAL_ROW; // HOLDING table typedef struct HOLDING_ROW { TTrade H_T_ID; TIdent H_CA_ID; char H_S_SYMB[cSYMBOL_len + 1]; CDateTime H_DTS; double H_PRICE; int H_QTY; } * PHOLDING_ROW; // HOLDING_HISTORY table typedef struct HOLDING_HISTORY_ROW { TTrade HH_H_T_ID; TTrade HH_T_ID; int HH_BEFORE_QTY; int HH_AFTER_QTY; } * PHOLDING_HISTORY_ROW; // HOLDING_SUMMARY table typedef struct HOLDING_SUMMARY_ROW { TIdent HS_CA_ID; char HS_S_SYMB[cSYMBOL_len + 1]; int HS_QTY; } * PHOLDING_SUMMARY_ROW; // INDUSTRY table typedef struct INDUSTRY_ROW { char IN_ID[cIN_ID_len + 1]; char IN_NAME[cIN_NAME_len + 1]; char IN_SC_ID[cSC_ID_len + 1]; } * PINDUSTRY_ROW; // LAST_TRADE table typedef struct LAST_TRADE_ROW { char LT_S_SYMB[cSYMBOL_len + 1]; CDateTime LT_DTS; double LT_PRICE; double LT_OPEN_PRICE; INT64 LT_VOL; } * PLAST_TRADE_ROW; // NEWS_ITEM table typedef struct NEWS_ITEM_ROW { TIdent NI_ID; char NI_HEADLINE[cNI_HEADLINE_len + 1]; char NI_SUMMARY[cNI_SUMMARY_len + 1]; char NI_ITEM[cNI_ITEM_len + 1]; CDateTime NI_DTS; char NI_SOURCE[cNI_SOURCE_len + 1]; char NI_AUTHOR[cNI_AUTHOR_len + 1]; } * PNEWS_ITEM_ROW; // NEWS_XREF table typedef struct NEWS_XREF_ROW { TIdent NX_NI_ID; TIdent NX_CO_ID; } * PNEWS_XREF_ROW; // SECTOR table typedef struct SECTOR_ROW { char SC_ID[cSC_ID_len + 1]; char SC_NAME[cSC_NAME_len + 1]; } * PSECTOR_ROW; // SECURITY table typedef struct SECURITY_ROW { char S_SYMB[cSYMBOL_len + 1]; char S_ISSUE[cS_ISSUE_len + 1]; char S_ST_ID[cST_ID_len + 1]; char S_NAME[cS_NAME_len + 1]; char S_EX_ID[cEX_ID_len + 1]; TIdent S_CO_ID; INT64 S_NUM_OUT; CDateTime S_START_DATE; CDateTime S_EXCH_DATE; double S_PE; float S_52WK_HIGH; CDateTime S_52WK_HIGH_DATE; float S_52WK_LOW; CDateTime S_52WK_LOW_DATE; double S_DIVIDEND; double S_YIELD; } * PSECURITY_ROW; // SETTLEMENT table typedef struct SETTLEMENT_ROW { TTrade SE_T_ID; char SE_CASH_TYPE[cSE_CASH_TYPE_len + 1]; CDateTime SE_CASH_DUE_DATE; double SE_AMT; } * PSETTLEMENT_ROW; // STATUS_TYPE table typedef struct STATUS_TYPE_ROW { char ST_ID[cST_ID_len + 1]; char ST_NAME[cST_NAME_len + 1]; } * PSTATUS_TYPE_ROW; // TAXRATE table typedef struct TAX_RATE_ROW { char TX_ID[cTX_ID_len + 1]; char TX_NAME[cTX_NAME_len + 1]; double TX_RATE; } * PTAX_RATE_ROW; // TRADE table typedef struct TRADE_ROW { TTrade T_ID; CDateTime T_DTS; char T_ST_ID[cST_ID_len + 1]; char T_TT_ID[cTT_ID_len + 1]; bool T_IS_CASH; char T_S_SYMB[cSYMBOL_len + 1]; int T_QTY; double T_BID_PRICE; TIdent T_CA_ID; char T_EXEC_NAME[cEXEC_NAME_len + 1]; double T_TRADE_PRICE; double T_CHRG; double T_COMM; double T_TAX; bool T_LIFO; } * PTRADE_ROW; // TRADE_HISTORY table typedef struct TRADE_HISTORY_ROW { TTrade TH_T_ID; CDateTime TH_DTS; char TH_ST_ID[cST_ID_len + 1]; } * PTRADE_HISTORY_ROW; // TRADE_REQUEST table typedef struct TRADE_REQUEST_ROW { TTrade TR_T_ID; char TR_TT_ID[cTT_ID_len + 1]; char TR_S_SYMB[cSYMBOL_len + 1]; int TR_QTY; double TR_BID_PRICE; TIdent TR_B_ID; } * PTRADE_REQUEST_ROW; // TRADE_TYPE table typedef struct TRADE_TYPE_ROW { char TT_ID[cTT_ID_len + 1]; char TT_NAME[cTT_NAME_len + 1]; bool TT_IS_SELL; bool TT_IS_MRKT; } * PTRADE_TYPE_ROW; // WATCH_ITEM table typedef struct WATCH_ITEM_ROW { TIdent WI_WL_ID; char WI_S_SYMB[cSYMBOL_len + 1]; } * PWATCH_ITEM_ROW; // WATCH_LIST table typedef struct WATCH_LIST_ROW { TIdent WL_ID; TIdent WL_C_ID; } * PWATCH_LIST_ROW; // ZIP_CODE table typedef struct ZIP_CODE_ROW { char ZC_CODE[cZC_CODE_len + 1]; char ZC_TOWN[cZC_TOWN_len + 1]; char ZC_DIV[cZC_DIV_len + 1]; } * PZIP_CODE_ROW; } // namespace TPCE #endif // #ifndef TABLE_ROWS_H