lgrDisObjectTableFactory.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
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

Document ID: Generated on Tue Oct 11 19:41:03 EDT 2011 from SVN revision 107422
Copyright © 2005-2011 VT MÄK Inc. All Rights Reserved (www.mak.com)