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

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)