00001 /****************************************************************************** 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00008 00009 #if DtDIS 00010 #ifndef lgrAggregatePduEncoder_H_ 00011 #define lgrAggregatePduEncoder_H_ 00012 00013 #include "lgrPduDatabaseEncoder.h" 00014 00015 namespace MAKLogger 00016 { 00017 00019 class DT_DLL_SQLEXPORTER DtLgrAggregatePduEncoder : public DtLgrPduDatabaseEncoder 00020 { 00021 public: 00023 DtLgrAggregatePduEncoder(); 00024 00026 virtual ~DtLgrAggregatePduEncoder(); 00027 00029 static DtPduKind pduKind(); 00030 00032 virtual const DtString& pduName() const; 00033 00034 protected: 00037 virtual void encodePdu(const DtPdu& pdu,std::vector<DtDatabaseTableSP>& tables) const; 00038 00039 public: 00042 virtual std::vector<DtDatabaseTableSP> getTableDefinitions() const; 00043 00044 protected: 00045 DtString myTableName; 00046 00047 DtDatabaseColumn* myAggregateIdColumn; 00048 DtDatabaseColumn* myAggregateIdSiteColumn; 00049 DtDatabaseColumn* myAggregateIdAppColumn; 00050 DtDatabaseColumn* myAggregateIdEntityColumn; 00051 00052 DtDatabaseColumn* myForceIdColumn; 00053 DtDatabaseColumn* myAggregateStateColumn; 00054 00055 DtDatabaseColumn* myAggregateTypeColumn; 00056 DtDatabaseColumn* myAggregateTypeEntityKindColumn; 00057 DtDatabaseColumn* myAggregateTypeDomainColumn; 00058 DtDatabaseColumn* myAggregateTypeCountryColumn; 00059 DtDatabaseColumn* myAggregateTypeCategoryColumn; 00060 DtDatabaseColumn* myAggregateTypeSubcategoryColumn; 00061 DtDatabaseColumn* myAggregateTypeSpecificColumn; 00062 DtDatabaseColumn* myAggregateTypeExtraColumn; 00063 00064 DtDatabaseColumn* myFormationColumn; 00065 00066 DtDatabaseColumn* myAggregateMarkingCharacterSetColumn; 00067 DtDatabaseColumn* myAggregateMarkingCharacterTextColumn; 00068 00069 DtDatabaseColumn* myDimensionsXColumn; 00070 DtDatabaseColumn* myDimensionsYColumn; 00071 DtDatabaseColumn* myDimensionsZColumn; 00072 00073 DtDatabaseColumn* myOrientationPsiColumn; 00074 DtDatabaseColumn* myOrientationThetaColumn; 00075 DtDatabaseColumn* myOrientationPhiColumn; 00076 00077 DtDatabaseColumn* myCenterOfMassXColumn; 00078 DtDatabaseColumn* myCenterOfMassYColumn; 00079 DtDatabaseColumn* myCenterOfMassZColumn; 00080 00081 DtDatabaseColumn* myVelocityXColumn; 00082 DtDatabaseColumn* myVelocityYColumn; 00083 DtDatabaseColumn* myVelocityZColumn; 00084 00085 DtDatabaseColumn* myNumberOfAggregatesColumn; 00086 DtDatabaseColumn* myNumberOfEntitiesColumn; 00087 DtDatabaseColumn* myNumberOfSilentAggregateTypesColumn; 00088 DtDatabaseColumn* myNumberOfSilentEntityTypesColumn; 00089 DtDatabaseColumn* myNumberOfVariableDatumRecordsColumn; 00090 00091 // SubTable 1 00092 DtString myAggregateIdTableName; 00093 mutable size_t myAggregateIDListTableIndex; 00094 //Reuse aggregate ID columns 00095 00096 // Subtable 2 00097 DtString myEntityIdTableName; 00098 mutable size_t myEntityIDListTableIndex; 00099 DtDatabaseColumn* myEntityIdColumn; 00100 DtDatabaseColumn* myEntityIdSiteColumn; 00101 DtDatabaseColumn* myEntityIdAppColumn; 00102 DtDatabaseColumn* myEntityIdEntityColumn; 00103 00104 // Subtable 3 00105 DtString mySilentAggregateTableName; 00106 mutable size_t mySilentAggregateTableIndex; 00107 DtDatabaseColumn* mySilentAggregateCountColumn; 00108 //Reuse aggregate type columns 00109 00110 // Subtable 4 00111 DtString mySilentEntityTableName; 00112 mutable size_t mySilentEntityTableIndex; 00113 DtDatabaseColumn* mySilentEntityCountColumn; 00114 DtDatabaseColumn* mySilentEntityAppearanceCountColumn; 00115 DtDatabaseColumn* mySilentEntityTypeColumn; 00116 DtDatabaseColumn* mySilentEntityTypeEntityKindColumn; 00117 DtDatabaseColumn* mySilentEntityTypeDomainColumn; 00118 DtDatabaseColumn* mySilentEntityTypeCountryColumn; 00119 DtDatabaseColumn* mySilentEntityTypeCategoryColumn; 00120 DtDatabaseColumn* mySilentEntityTypeSubcategoryColumn; 00121 DtDatabaseColumn* mySilentEntityTypeSpecificColumn; 00122 DtDatabaseColumn* mySilentEntityTypeExtraColumn; 00123 00124 // SubTable 5 00125 DtString mySilentEntityAppearanceTableName; 00126 mutable size_t mySilentEntityAppearanceTableIndex; 00127 //Reuse silent entity type. 00128 DtDatabaseColumn* myAppearanceColumn; 00129 00130 // Subtable 6 00131 DtString myVariableDatumTableName; 00132 mutable size_t myVarDatumTableIndex; 00133 DtDatabaseColumn* myVariableDatumIdColumn; 00134 DtDatabaseColumn* myVariableDatumLengthColumn; 00135 DtDatabaseColumn* myVariableDatumValueColumn; 00136 00137 }; 00138 00139 } 00140 00141 #endif 00142 #endif