Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #ifndef lgrPduDatabaseEncoderFactory_H_
00010 #define lgrPduDatabaseEncoderFactory_H_
00011
00012 #if DtDIS
00013
00014 #include "lgrSqlExporter.h"
00015 #include <map>
00016 #include <vlutil/vlSmartPointers.h>
00017 #include <vlpi/disEnums.h>
00018
00019 namespace MAKLogger
00020 {
00021
00022 class DtLgrPduDatabaseEncoder;
00023
00024 class DT_DLL_SQLEXPORTER DtLgrPduDatabaseEncoderFactory
00025 {
00026 public:
00027
00029 static void registerEncoder(DtPduKind kind,DtLgrPduDatabaseEncoder* encoder);
00030
00034 static const DtLgrPduDatabaseEncoder* getEncoder(DtPduKind kind);
00035
00038 static void resetFactory();
00039
00040 protected:
00041
00042 static DtLgrPduDatabaseEncoderFactory glocalInstace;
00043 static DtLgrPduDatabaseEncoderFactory* instance();
00044
00045 DtLgrPduDatabaseEncoderFactory();
00046 ~DtLgrPduDatabaseEncoderFactory();
00047
00048 void addEncoder(DtPduKind kind,DtLgrPduDatabaseEncoder* encoder);
00049 const DtLgrPduDatabaseEncoder* lookupEncoder(DtPduKind) const;
00050
00051 typedef DtBoost::shared_ptr<DtLgrPduDatabaseEncoder> DtLgrPduDatabaseEncoderSP;
00052 typedef std::map<DtPduKind,DtLgrPduDatabaseEncoderSP> EncoderMap;
00053 EncoderMap myEncoderMap;
00054 DtLgrPduDatabaseEncoder* myDefaultEncoder;
00055 };
00056
00057 }
00058
00059 #endif
00060 #endif