VR-Forces 4.0.4 Class Documentation
include/vrfutil/objectNameDeconflictionTable.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2000 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: objectNameDeconflictionTable.h,v $ $Revision: 1.3 $ $State: Exp $
00007 *******************************************************************************/
00008 #ifndef DtObjectNameDeconflictionTable_H_
00009 #define DtObjectNameDeconflictionTable_H_
00010 
00013 
00014 #include "vrfutil/vrfutilDefines.h"
00015 
00017 #include <deque>
00018 #include <map>
00019 
00021 #include <vlutil/vlString.h>
00022 
00023 class DtObjectNameDeconflictionEntry;
00024 class DtSubordinateOrderEntry;
00025 
00032 class DT_DLL_vrfutil DtObjectNameDeconflictionTable
00033 {
00034 public:
00035    
00042    typedef std::map<DtString, DtString > NameXrefIndex;
00043    typedef NameXrefIndex::iterator NameXrefIndexIterator;
00044    typedef NameXrefIndex::const_iterator const_NameXrefIndexIterator;
00045 
00051    typedef std::map<DtString,DtObjectNameDeconflictionEntry*> AliasMap;
00052    typedef AliasMap::iterator AliasMapIterator;
00053    typedef AliasMap::const_iterator const_AliasMapIterator;
00054 
00060    typedef std::map<DtString, DtSubordinateOrderEntry*> SubordinateOrderMap;
00061    typedef SubordinateOrderMap::iterator SubordinateMapIterator;
00062    typedef SubordinateOrderMap::const_iterator const_SubordinateMapIterator;
00063 
00064 public:
00065 
00067    DtObjectNameDeconflictionTable();
00068 
00070    virtual ~DtObjectNameDeconflictionTable();
00071 
00073    DtObjectNameDeconflictionTable(
00074       const DtObjectNameDeconflictionTable& orig);
00075 
00077    DtObjectNameDeconflictionTable& operator=(
00078       const DtObjectNameDeconflictionTable& orig);
00079 
00080 
00081 public:
00082 
00087    virtual const DtString& addAndDeconflict(
00088       const DtString& sScenarioName,
00089       const DtString& sOriginalObjectName,
00090       const DtString& sParentName,
00091       unsigned nOriginalDesignator);
00092 
00093    virtual void clear();
00094 
00095    virtual DtObjectNameDeconflictionEntry* find(
00096       const DtString& sScenarioName,
00097       const DtString& sOriginalObjectName);
00098 
00099    virtual const DtObjectNameDeconflictionEntry* find(
00100       const DtString& sScenarioName,
00101       const DtString& sOriginalObjectName) const;
00102 
00103    virtual DtObjectNameDeconflictionEntry* find(
00104       const DtString& objectNameAlias);
00105 
00106    virtual const DtObjectNameDeconflictionEntry* find(
00107       const DtString& objectNameAlias) const;
00108 
00109    virtual DtSubordinateOrderEntry* findSubordinateEntry(
00110       const DtString& parentName);
00111 
00112    virtual const DtSubordinateOrderEntry* findSubordinateEntry(
00113       const DtString& parentName) const;
00114 
00115    virtual unsigned originalDesignator(
00116       const DtString& sScenarioName,
00117       const DtString& sOriginalObjectName) const;
00118 
00123    virtual void remove(
00124       const DtString& sScenarioName,
00125       const DtString& sOriginalObjectName);
00126 
00129    virtual void remove(const DtString& sScenarioName);
00130 
00131    virtual const DtString& safeName(const DtString& sScenarioName,
00132       const DtString& sOriginalObjectName) const;
00133 
00134    virtual std::pair<DtObjectNameDeconflictionTable::const_NameXrefIndexIterator,
00135       DtObjectNameDeconflictionTable::const_NameXrefIndexIterator> searchXrefRange(
00136       const DtString& sScenarioName) const;
00137 
00138 protected:
00139 
00140    virtual DtString deconflictName(const DtString& sObjectName) const;
00141    
00142    virtual DtString generateRandomSequence(unsigned nLimit) const;
00143 
00144 protected:
00145 
00146 
00147 protected:
00148    
00149    NameXrefIndex myNameXrefIndex;
00150    AliasMap myAliasMap;
00151    SubordinateOrderMap mySubordinateMap;
00152 
00153 };
00154 
00155 #endif
00156 

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)