VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Attributes
DtObjectIdentificationResolver Class Reference

This class will be used to manage UUID lookups. It will contain a list of sub-lists that can be used to push/pop the workings of how to map UUIDs to marking texts (and vice/versa). This is a globally created item that is referenced via the DtUUID class. This class is only used for mapping old style (marking text) to new style UUIDs All functions in this class are thread safe.

Classes

struct  MappingContext
 

Public Types

typedef boost::unordered_map
< DtUUID,
DtUUIDMarkingTextProvider * > 
UUIDToMarkingTextMap
 
typedef boost::unordered_map
< DtString, DtUUID
EntityIdentifierToUUIDMap
 
typedef boost::unordered_map
< DtUUID, DtString
UUIDToEntityIdentifierMap
 
typedef boost::unordered_map
< DtString, DtUUID
MarkingTextToUUIDMap
 
typedef boost::unordered_map
< DtUUID, DtUUID
UUIDToUUIDMap
 
typedef boost::unordered_map
< DtString, DtString
MarkingTextToMarkingTextMap
 
typedef boost::unordered_set
< DtUUID * > 
UUIDsForUpgrade
 

Public Member Functions

 DtObjectIdentificationResolver ()
 
virtual ~DtObjectIdentificationResolver ()
 
virtual void clear ()
 
virtual void setResolveMarkingTextToUUIDMapping (bool)
 
virtual bool resolveMarkingTextToUUIDMapping () const
 
virtual void setResolveUUIDToUUIDMapping (bool)
 
virtual bool resolveUUIDToUUIDMapping () const
 
virtual void resolveUUIDMapping (bool clearWhenDone=false)
 
virtual bool addUUIDForUpgrade (DtUUID *)
 
virtual void removeUUIDForUpgrade (DtUUID *)
 
virtual void objectUUIDChanged (const DtUUID &oldUUID, const DtUUID &newUUID)
 
virtual void objectNameChanged (const DtString &oldName, const DtString &newName, const DtUUID &newNameUUID)
 
virtual DtUUIDMarkingTextProvideraddMarkingTextToUUIDMapping (const DtUUIDMarkingTextProvider &, const DtUUID &)
 
virtual DtUUIDMarkingTextProvideruuidToMarkingTextProvider (const DtUUID &) const
 
virtual void removeUUIDToMarkingTextMapping (const DtUUID &)
 
virtual void addUUIDToUUIDMapping (const DtUUID &old, const DtUUID &newUUID)
 
virtual void addEntityIdentifierToUUIDMapping (const DtString &eid, const DtUUID &)
 
virtual void removeEntityIdentifierMapping (const DtString &eid)
 
virtual const DtUUIDentityIdentifierToUUIDMapping (const DtString &eid) const
 
virtual const DtStringuuidToEntityIdentifierMapping (const DtUUID &uuid) const
 
virtual bool hasUUID (const DtUUID &) const
 
virtual void addMarkingTextToMarkingTextMapping (const DtString &oldMarkingText, const DtString &newMarkingText)
 
virtual DtUUID mapMarkingTextToUUID (const DtString &) const
 
virtual bool hasMarkingText (const DtString &) const
 
virtual DtString mapUUIDToMarkingText (const DtUUID &) const
 
virtual void pushMappingContext ()
 
virtual void popMappingContext (bool merge=false)
 
virtual DtString markingText (const DtUUID &, bool *found=nullptr) const
 
MarkingTextToUUIDMapmarkingTextToUUIDMapForImport (int context=-1)
 
const MarkingTextToUUIDMapmarkingTextToUUIDMapForImport (int context=-1) const
 
MarkingTextToUUIDMapliveMarkingTextToUUIDMap (int context=-1)
 
const MarkingTextToUUIDMapliveMarkingTextToUUIDMap (int context=-1) const
 
virtual void markingTextUpdated (const DtString &oldText, const DtString &newText)
 
UUIDsForUpgradeuuidsForMarkingTextUpgrade (int context=-1)
 
const UUIDsForUpgradeuuidsForMarkingTextUpgrade (int context=-1) const
 
UUIDsForUpgradeuuidsForUUIDUpgrade (int context=-1)
 
const UUIDsForUpgradeuuidsForUUIDUpgrade (int context=-1) const
 
UUIDToMarkingTextMapuuidToMarkingTextMap (int context=-1)
 
const UUIDToMarkingTextMapuuidToMarkingTextMap (int context=-1) const
 
UUIDToUUIDMapuuidToUUIDMap (int context=-1)
 
const UUIDToUUIDMapuuidToUUIDMap (int context=-1) const
 
MarkingTextToMarkingTextMapmarkingTextToMarkingTextMap (int context=-1)
 
const MarkingTextToMarkingTextMapmarkingTextToMarkingTextMap (int context=-1) const
 
EntityIdentifierToUUIDMapentityIdentifierToUUIDMap (int context=-1)
 
const EntityIdentifierToUUIDMapentityIdentifierToUUIDMap (int context=-1) const
 
UUIDToEntityIdentifierMapuuidToEntityIdentifierMap (int context=-1)
 
const UUIDToEntityIdentifierMapuuidToEntityIdentifierMap (int context=-1) const
 
MarkingTextToUUIDMap markingTextToUUIDMap () const
 
virtual void resolveToMarkingTextMapping ()
 
virtual boost::unordered_map
< DtString, DtString
resolveToUUIDMapping (bool clearWhenDone=false)
 
virtual DtUUID upgradeUUID (const DtUUID &) const
 
virtual bool hasMarkingTextToUUIDMapForImport (const DtString &) const
 

Public Attributes

boost::signals2::signal< void(const
DtUUID &oldUUID, const DtUUID
&newUUID)> 
signal_uuidUpgradedTo
 

Protected Types

typedef std::vector
< MappingContext
MappingContexts
 

Protected Attributes

tbb::recursive_mutex myMutex
 
MappingContexts myMappingContexts
 
bool myDestructingFlag
 
bool myResolveMarkingTextToUUIDMapping
 
bool myResolveUUIDToUUIDMapping
 
bool myPushingContext
 
bool myPoppingContext
 

Member Typedef Documentation

Constructor & Destructor Documentation

DtObjectIdentificationResolver::DtObjectIdentificationResolver ( )
virtual DtObjectIdentificationResolver::~DtObjectIdentificationResolver ( )
virtual

Member Function Documentation

virtual void DtObjectIdentificationResolver::clear ( )
virtual

Clears out all maps.

virtual void DtObjectIdentificationResolver::setResolveMarkingTextToUUIDMapping ( bool  )
virtual

Set to true if want to add UUIDs to this manager to resolve by calling "resolveUUIDMapping" if the uuid constructed is not a VRF UUID.

virtual bool DtObjectIdentificationResolver::resolveMarkingTextToUUIDMapping ( ) const
virtual
virtual void DtObjectIdentificationResolver::setResolveUUIDToUUIDMapping ( bool  )
virtual
virtual bool DtObjectIdentificationResolver::resolveUUIDToUUIDMapping ( ) const
virtual
virtual void DtObjectIdentificationResolver::resolveUUIDMapping ( bool  clearWhenDone = false)
virtual

If clear when done is true, clears out uuids to be mapped.

virtual bool DtObjectIdentificationResolver::addUUIDForUpgrade ( DtUUID )
virtual

Adds the UUID pointer for potential marking text resolution if the resolveMarkingTextToUUIDMapping flag is true and this UUID is not already a VRF UUID.

virtual void DtObjectIdentificationResolver::removeUUIDForUpgrade ( DtUUID )
virtual
virtual void DtObjectIdentificationResolver::objectUUIDChanged ( const DtUUID oldUUID,
const DtUUID newUUID 
)
virtual

In order to be able to match UUID to marking texts this map must be filled in by the maintainer of that association (in this case the front-end or back-end)

virtual void DtObjectIdentificationResolver::objectNameChanged ( const DtString oldName,
const DtString newName,
const DtUUID newNameUUID 
)
virtual

If an objects name has changed, use this method so the name to uuid map gets updated as well. The UUID is needed in case there are two objects with the same name. If the oldName and uuid do not match, a new mapped entry will be created. If the newNameUUID is a nullUUID the old name will just be replaced.

virtual DtUUIDMarkingTextProvider* DtObjectIdentificationResolver::addMarkingTextToUUIDMapping ( const DtUUIDMarkingTextProvider ,
const DtUUID  
)
virtual

Adds/removed UUID to marking text mappings, always from context 0 (as that is where they are used)

virtual DtUUIDMarkingTextProvider* DtObjectIdentificationResolver::uuidToMarkingTextProvider ( const DtUUID ) const
virtual
virtual void DtObjectIdentificationResolver::removeUUIDToMarkingTextMapping ( const DtUUID )
virtual
virtual void DtObjectIdentificationResolver::addUUIDToUUIDMapping ( const DtUUID old,
const DtUUID newUUID 
)
virtual

Adds a UUID to UUID map in order to remap when resolved.

virtual void DtObjectIdentificationResolver::addEntityIdentifierToUUIDMapping ( const DtString eid,
const DtUUID  
)
virtual

Used for either non or VR-Forces published items. look up VRF UUID by entity identifier.

virtual void DtObjectIdentificationResolver::removeEntityIdentifierMapping ( const DtString eid)
virtual
virtual const DtUUID& DtObjectIdentificationResolver::entityIdentifierToUUIDMapping ( const DtString eid) const
virtual
virtual const DtString& DtObjectIdentificationResolver::uuidToEntityIdentifierMapping ( const DtUUID uuid) const
virtual
virtual bool DtObjectIdentificationResolver::hasUUID ( const DtUUID ) const
virtual
virtual void DtObjectIdentificationResolver::addMarkingTextToMarkingTextMapping ( const DtString oldMarkingText,
const DtString newMarkingText 
)
virtual

Used for marking text to marking text mapping when updating an older scenario.

virtual DtUUID DtObjectIdentificationResolver::mapMarkingTextToUUID ( const DtString ) const
virtual

Maps marking text to UUID. If marking text is not know an invalid UUID will be returned.

virtual bool DtObjectIdentificationResolver::hasMarkingText ( const DtString ) const
virtual

Returns true if the marking text exists.

virtual DtString DtObjectIdentificationResolver::mapUUIDToMarkingText ( const DtUUID ) const
virtual

Maps UUID to marking text. If UUID is not mapped empty marking text is returned.

virtual void DtObjectIdentificationResolver::pushMappingContext ( )
virtual

Creates a new UUID mapping context. This will supplant the existing context.

virtual void DtObjectIdentificationResolver::popMappingContext ( bool  merge = false)
virtual

This will pop the mapping context to the previous. Pass the "merge" flag to merge this popped content into the previous context.

virtual DtString DtObjectIdentificationResolver::markingText ( const DtUUID ,
bool found = nullptr 
) const
virtual

Returns the marking text that is associated with this UUID. If UUID is not mapped empty marking text is returned. If found is specified will be filled with true if there was a mapping found. If no mapping found will return the value of the uuids uuidString.

MarkingTextToUUIDMap& DtObjectIdentificationResolver::markingTextToUUIDMapForImport ( int  context = -1)
const MarkingTextToUUIDMap& DtObjectIdentificationResolver::markingTextToUUIDMapForImport ( int  context = -1) const
MarkingTextToUUIDMap& DtObjectIdentificationResolver::liveMarkingTextToUUIDMap ( int  context = -1)

It is up to the user to maintain this map. Entries will be added as marking text providers are added/removed, however if the text changes you need to call the markingTextToUUIDMapChange method.

const MarkingTextToUUIDMap& DtObjectIdentificationResolver::liveMarkingTextToUUIDMap ( int  context = -1) const
virtual void DtObjectIdentificationResolver::markingTextUpdated ( const DtString oldText,
const DtString newText 
)
virtual
UUIDsForUpgrade& DtObjectIdentificationResolver::uuidsForMarkingTextUpgrade ( int  context = -1)
const UUIDsForUpgrade& DtObjectIdentificationResolver::uuidsForMarkingTextUpgrade ( int  context = -1) const
UUIDsForUpgrade& DtObjectIdentificationResolver::uuidsForUUIDUpgrade ( int  context = -1)
const UUIDsForUpgrade& DtObjectIdentificationResolver::uuidsForUUIDUpgrade ( int  context = -1) const
UUIDToMarkingTextMap& DtObjectIdentificationResolver::uuidToMarkingTextMap ( int  context = -1)
const UUIDToMarkingTextMap& DtObjectIdentificationResolver::uuidToMarkingTextMap ( int  context = -1) const
UUIDToUUIDMap& DtObjectIdentificationResolver::uuidToUUIDMap ( int  context = -1)
const UUIDToUUIDMap& DtObjectIdentificationResolver::uuidToUUIDMap ( int  context = -1) const
MarkingTextToMarkingTextMap& DtObjectIdentificationResolver::markingTextToMarkingTextMap ( int  context = -1)
const MarkingTextToMarkingTextMap& DtObjectIdentificationResolver::markingTextToMarkingTextMap ( int  context = -1) const
EntityIdentifierToUUIDMap& DtObjectIdentificationResolver::entityIdentifierToUUIDMap ( int  context = -1)
const EntityIdentifierToUUIDMap& DtObjectIdentificationResolver::entityIdentifierToUUIDMap ( int  context = -1) const
UUIDToEntityIdentifierMap& DtObjectIdentificationResolver::uuidToEntityIdentifierMap ( int  context = -1)
const UUIDToEntityIdentifierMap& DtObjectIdentificationResolver::uuidToEntityIdentifierMap ( int  context = -1) const
MarkingTextToUUIDMap DtObjectIdentificationResolver::markingTextToUUIDMap ( ) const

Resolves and returns a marking text to uuid map.

virtual void DtObjectIdentificationResolver::resolveToMarkingTextMapping ( )
virtual
virtual boost::unordered_map<DtString, DtString> DtObjectIdentificationResolver::resolveToUUIDMapping ( bool  clearWhenDone = false)
virtual

If clear when done is true, clears out uuids to be mapped.

virtual DtUUID DtObjectIdentificationResolver::upgradeUUID ( const DtUUID ) const
virtual

If the UUID can be upgraded, return the upgraded UUID.

virtual bool DtObjectIdentificationResolver::hasMarkingTextToUUIDMapForImport ( const DtString ) const
virtual

Valid only during import (context count > 1). Sees if there is a marking text to UUID map for this item.

Member Data Documentation

boost::signals2::signal<void (const DtUUID& oldUUID, const DtUUID& newUUID)> DtObjectIdentificationResolver::signal_uuidUpgradedTo
tbb::recursive_mutex DtObjectIdentificationResolver::myMutex
mutableprotected
MappingContexts DtObjectIdentificationResolver::myMappingContexts
protected
bool DtObjectIdentificationResolver::myDestructingFlag
protected
bool DtObjectIdentificationResolver::myResolveMarkingTextToUUIDMapping
mutableprotected
bool DtObjectIdentificationResolver::myResolveUUIDToUUIDMapping
mutableprotected
bool DtObjectIdentificationResolver::myPushingContext
mutableprotected
bool DtObjectIdentificationResolver::myPoppingContext
mutableprotected

The documentation for this class was generated from the following file:

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)