Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #if DtDIS
00010
00011 #ifndef lgrDisObjectTableFactory_H_
00012 #define lgrDisObjectTableFactory_H_
00013
00014 #include "lgrSqlExporter.h"
00015 #include <databaseTable.h>
00016
00017 #include <vlutil/vlString.h>
00018 #include <vector>
00019
00020 class DtDatabaseColumn;
00021 class DtDatabaseInterface;
00022
00023 namespace MAKLogger
00024 {
00025 class DtAbsoluteTime;
00026 class DtConstLgrDisMessage;
00027
00030 class DT_DLL_SQLEXPORTER DtLgrDisObjectTableFactory
00031 {
00032 public:
00033
00035 DtLgrDisObjectTableFactory();
00036
00038 virtual ~DtLgrDisObjectTableFactory();
00039
00040 private:
00042 DtLgrDisObjectTableFactory(const DtLgrDisObjectTableFactory&);
00043 DtLgrDisObjectTableFactory& operator=(const DtLgrDisObjectTableFactory&);
00045 public:
00046
00048 DtDatabaseTable& createObjectInstanceTable();
00049
00050
00052 DtDatabaseTable& addObjectInstance(const MAKLogger::DtAbsoluteTime& time,
00053 const MAKLogger::DtConstLgrDisMessage& message);
00054
00056 DtDatabaseTable& removeObjectInstance(
00057 const DtString& id,
00058 const DtString& type,
00059 const MAKLogger::DtAbsoluteTime& time,
00060 bool isFinalPduBitSet,
00061 const std::vector<DtString>*& removalColumns,
00062 DtDatabaseInterface& db,
00063 const DtString*& removalCondition );
00064
00065
00067 bool isInstance(const MAKLogger::DtConstLgrDisMessage& message) const;
00068
00070 DtString instanceId(const MAKLogger::DtConstLgrDisMessage& message) const;
00071
00073 DtString instanceType(const MAKLogger::DtConstLgrDisMessage& message) const;
00074
00075 protected:
00076
00078 DtDatabaseTable& addEntityStateInstance(const MAKLogger::DtAbsoluteTime& time,
00079 const MAKLogger::DtConstLgrDisMessage& msg);
00080
00081 DtString myTableBuffer;
00082
00083 DtDatabaseTableSP myObjectInstanceTable;
00084
00085 DtDatabaseColumn* myEntityIdColumn;
00086 DtDatabaseColumn* myEntityIdSiteColumn;
00087 DtDatabaseColumn* myEntityIdAppColumn;
00088 DtDatabaseColumn* myEntityIdEntityColumn;
00089
00090 DtDatabaseColumn* myEntityTypeColumn;
00091 DtDatabaseColumn* myEntityTypeEntityKindColumn;
00092 DtDatabaseColumn* myEntityTypeDomainColumn;
00093 DtDatabaseColumn* myEntityTypeCountryColumn;
00094 DtDatabaseColumn* myEntityTypeCategoryColumn;
00095 DtDatabaseColumn* myEntityTypeSubcategoryColumn;
00096 DtDatabaseColumn* myEntityTypeSpecificColumn;
00097 DtDatabaseColumn* myEntityTypeExtraColumn;
00098
00099 DtDatabaseColumn* myFirstPacketTimeColumn;
00100 DtDatabaseColumn* myLastPacketTimeColumn;
00101 DtDatabaseColumn* myFinalPduBitSetColumn;
00102
00103 std::vector<DtString> myRemovalColumns;
00104 DtString myRemovalCondition;
00105
00106 };
00107
00108 }
00109
00110 #endif
00111 #endif