VR-Forces 4.0.4 Class Documentation
include/vrfutil/remoteConfigurationMapper.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2008 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: remoteConfigurationMapper.h,v $ $Revision: 1.2 $ $State: Exp $
00007 *********************************************************************/
00008 
00009 #ifndef DtRemoteConfigurationMapper_H_
00010 #define DtRemoteConfigurationMapper_H_
00011 
00014 
00016 #include "vrfutil/rdrWritr.h"
00017 
00018 #include <list>
00019 #include <map>
00020 #include <string>
00021 
00022 class DT_DLL_vrfutil DtRemoteConfigurationMapEntry;
00023 class DtObjectType;
00024 class DtEntityIdentifier;
00025 
00028 #include "vrfutil/vrfutilDefines.h"
00029 class DT_DLL_vrfutil DtRemoteConfigurationMapper : public DtReaderWriter
00030 {
00031 public:
00032 
00035    typedef std::list< std::pair<DtObjectType,DtRemoteConfigurationMapEntry*> > ObjTypeList;
00036    typedef ObjTypeList::iterator ObjTypeIterator;
00037    typedef ObjTypeList::const_iterator const_ObjTypeIterator;
00039 
00042    typedef std::map<DtEntityIdentifier,DtRemoteConfigurationMapEntry*> EntIdMap;
00043    typedef EntIdMap::iterator EntIdIterator;
00044    typedef EntIdMap::const_iterator const_EntIdIterator;
00046 
00049    typedef std::map<std::string,DtRemoteConfigurationMapEntry*> MarkingTextMap;
00050    typedef MarkingTextMap::iterator MarkingTextIterator;
00051    typedef MarkingTextMap::const_iterator const_MarkingTextIterator;
00053 
00055    typedef DtRemoteConfigurationMapEntry* (*CreatorFcn)();
00056 
00057 public:
00059    DtRemoteConfigurationMapper();
00060 
00062    DtRemoteConfigurationMapper(const DtString& name, 
00063       DtReaderWriterRegistry* parentRegistry = NULL, 
00064       bool readonly = false);
00065 
00067    DtRemoteConfigurationMapper(const DtSymbolString& name, 
00068       DtReaderWriterRegistry* parentRegistry = NULL, 
00069       bool readonly = false);
00070 
00072    DtRemoteConfigurationMapper(const DtString& name, 
00073       const DtRemoteConfigurationMapper& orig,
00074       DtReaderWriterRegistry* parentRegistry = NULL);
00075 
00077    DtRemoteConfigurationMapper(const DtSymbolString& name, 
00078       const DtRemoteConfigurationMapper& orig,
00079       DtReaderWriterRegistry* parentRegistry = NULL);
00080 
00082    DtRemoteConfigurationMapper& operator=(const DtRemoteConfigurationMapper& orig);
00083 
00085    virtual ~DtRemoteConfigurationMapper();
00086 
00087 public:
00088 
00097    virtual bool add(DtRemoteConfigurationMapEntry* pEntry);
00098 
00100    virtual void clear();
00101    
00103    virtual unsigned count() const;
00104 
00106    virtual void copyLists(const DtRemoteConfigurationMapper& orig);
00107 
00109    DtRemoteConfigurationMapper::EntIdMap& entityIdentifierMap();
00110    const DtRemoteConfigurationMapper::EntIdMap& entityIdentifierMap() const;
00111 
00113    virtual DtRemoteConfigurationMapEntry* find(const DtEntityIdentifier& id);
00114    virtual const DtRemoteConfigurationMapEntry* find(const DtEntityIdentifier& id) const;
00115 
00117    virtual DtRemoteConfigurationMapEntry* find(const DtObjectType& objType); 
00118    virtual const DtRemoteConfigurationMapEntry* find(const DtObjectType& objType) const; 
00119 
00121    virtual DtRemoteConfigurationMapEntry* find(const char* pMarkingText);
00122    virtual const DtRemoteConfigurationMapEntry* find(const char* pMarkingText) const;
00123 
00125    DtRemoteConfigurationMapper::ObjTypeList& objectTypeList();
00126    const DtRemoteConfigurationMapper::ObjTypeList& objectTypeList() const;
00127    
00129    DtRemoteConfigurationMapper::MarkingTextMap& markingTextMap();
00130    const DtRemoteConfigurationMapper::MarkingTextMap& markingTextMap() const;
00131 
00133    virtual bool readFile(const DtFilename& fname, const DtFilename& searchPath,
00134       const DtVariableBindingsList& variableBindings);
00135 
00141    virtual void remove(DtRemoteConfigurationMapEntry* pEntry,
00142       bool bDelete=true);
00143 
00146    DtRemoteConfigurationMapper::CreatorFcn creatorFcn() const;
00147    void setCreatorFcn(DtRemoteConfigurationMapper::CreatorFcn fcn);
00149 
00150 protected:
00152    virtual bool addByEntityId(DtRemoteConfigurationMapEntry* pEntry);
00153 
00155    virtual bool addByObjectType(DtRemoteConfigurationMapEntry* pEntry);
00156 
00158    virtual bool addByMarkingText(DtRemoteConfigurationMapEntry* pEntry);
00159 
00164    virtual bool addByOther(DtRemoteConfigurationMapEntry* pEntry);
00165 
00166    virtual const DtRemoteConfigurationMapEntry* findBestMatch(const DtObjectType& objtype) const;
00167 
00169    virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
00170       const DtVariableBindingsList& variableBindings);
00171 
00173    virtual void putData(FILE *fp, int indentLevel = 0);
00174 
00176    virtual void removeByEntityId(DtRemoteConfigurationMapEntry* pEntry,
00177       bool bDelete=true);
00178 
00180    virtual void removeByObjectType(DtRemoteConfigurationMapEntry* pEntry,
00181       bool bDelete=true);
00182 
00184    virtual void removeByMarkingText(DtRemoteConfigurationMapEntry* pEntry,
00185       bool bDelete=true);
00186 
00191    virtual void removeByOther(DtRemoteConfigurationMapEntry* pEntry,
00192       bool bDelete=true);
00193 
00194 protected:
00195    EntIdMap    myEntityIdMap;
00196 
00197    CreatorFcn  myEntryCreatorFcn;
00198 
00199    ObjTypeList myObjTypeList;
00200 
00201    MarkingTextMap myMarkingTextMap;
00202 };
00203 
00204 inline DtRemoteConfigurationMapper::CreatorFcn DtRemoteConfigurationMapper::creatorFcn() const{return (myEntryCreatorFcn);}
00205 inline void DtRemoteConfigurationMapper::setCreatorFcn(DtRemoteConfigurationMapper::CreatorFcn fcn){myEntryCreatorFcn = fcn;}
00206 
00207 inline DtRemoteConfigurationMapper::EntIdMap& DtRemoteConfigurationMapper::entityIdentifierMap()
00208 {
00209    return (myEntityIdMap);
00210 }
00211 
00212 inline const DtRemoteConfigurationMapper::EntIdMap& DtRemoteConfigurationMapper::entityIdentifierMap() const
00213 {
00214    return (myEntityIdMap);
00215 }
00216 
00217 inline DtRemoteConfigurationMapper::ObjTypeList& DtRemoteConfigurationMapper::objectTypeList()
00218 {
00219    return (myObjTypeList);
00220 }
00221 
00222 inline const DtRemoteConfigurationMapper::ObjTypeList& DtRemoteConfigurationMapper::objectTypeList() const
00223 {
00224    return (myObjTypeList);
00225 }
00226 
00227 inline DtRemoteConfigurationMapper::MarkingTextMap& DtRemoteConfigurationMapper::markingTextMap()
00228 {
00229    return (myMarkingTextMap);
00230 }
00231 
00232 inline const DtRemoteConfigurationMapper::MarkingTextMap& DtRemoteConfigurationMapper::markingTextMap() const
00233 {
00234    return (myMarkingTextMap);
00235 }
00236 
00237 #endif /* DtRemoteConfigurationMapper_H_ */

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)