19 #include <vl/globalObjectDesignator.h>
20 #include <vlpi/entityIdentifier.h>
21 #include <boost/smart_ptr/shared_ptr.hpp>
56 virtual bool isValid()
const;
61 virtual bool hasBeenDeleted()
const;
63 virtual const DtString& waitingForName()
const;
65 virtual void registerRemovedCallback();
67 virtual DtUUID uuid()
const;
77 static void objectAddedCallback(
const DtVrfObject*,
void*);
78 virtual void processObjectAdded(
const DtVrfObject*);
80 static void objectAboutToBeRemovedCallback(
const DtVrfObject*,
void*);
81 virtual void processObjectAboutToBeRemoved(
const DtVrfObject*);
111 boost::shared_ptr<DtVrfObjectReference>::operator=(rhs);
121 if (
get()) {
get()->addObjectDiscoveredCallback(fcn, usr); };
127 if (
get()) {
get()->removeObjectDiscoveredCallback(fcn, usr); };
133 if (
get()) {
get()->addObjectAboutToBeRemovedCallback(fcn, usr); };
139 if (
get()) {
get()->removeObjectAboutToBeRemovedCallback(fcn, usr); };
147 return get()->hasBeenDeleted();
158 return get()->isValid();
169 return get()->waitingForName();
180 return get()->uuid();
184 return DtUUID(waitingForName());
193 operator const DtVrfObject* ()
const {
if (
get() &&
get()->isValid())
return get()->object();
else return 0; };
195 const DtVrfObject*
operator*()
const {
if (
get() &&
get()->isValid())
return get()->
object();
else return 0; };
196 bool operator!() {
if (
get()) {
return !
get()->isValid(); }
return true; };
211 parentRegistry = NULL);
214 parentRegistry = NULL);
239 virtual bool hasBeenDeleted()
const;
258 virtual void clearObjectReference();
265 virtual DtEntityIdentifier entityIdentifier()
const;
275 virtual void getSelf(DtlObjPtr args,
280 virtual void putSelf(std::string& fp,
int indentLevel = 0,
281 bool writeUnspecified =
false,
const DtFilename& path =
282 DtFilename::nullFilename());
285 static void objectDiscoveredCallback(
void* usr);
286 virtual void processObjectDiscovered();
288 static void objectAboutToBeRemovedCallback(
void* usr);
289 virtual void processObjectAboutToBeRemoved();
330 virtual void addUUID(
const DtUUID&);
333 virtual bool removeUUID(
const DtUUID&);
336 virtual bool hasUUID(
const DtUUID&)
const;
339 virtual std::vector<DtRwUUID> uuidsAsVector()
const;
342 virtual std::list<DtRwUUID> uuidsAsList()
const;
345 static void objectAboutToBeRemoved(
const DtVrfObject*,
void*);
346 virtual void processObjectAboutToBeRemoved(
const DtVrfObject*);
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
virtual void addObjectDiscoveredCallback(DtNoArgumentCallbackList::DtCallbackFunctionType fcn, void *usr)
Once this object is discovered (if it is not discovered) then call this callback. ...
Definition: vrfObjectReference.h:119
DtSharedVrfObjectReference & operator=(const DtSharedVrfObjectReference &rhs)
Definition: vrfObjectReference.h:109
bool operator!()
Definition: vrfObjectReference.h:196
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
virtual void removeObjectDiscoveredCallback(DtNoArgumentCallbackList::DtCallbackFunctionType fcn, void *usr)
Remove discovery callback.
Definition: vrfObjectReference.h:125
Definition: symbolString.h:20
DtSharedVrfObjectReference(const DtSharedVrfObjectReference &ref)
Definition: vrfObjectReference.h:107
const DtVrfObject * operator*() const
Definition: vrfObjectReference.h:195
virtual ~DtSharedVrfObjectReference()
Definition: vrfObjectReference.h:116
bool hasBeenDeleted() const
Return true if this object was once valid and has since been deleted.
Definition: vrfObjectReference.h:143
DtNoArgumentCallbackList myObjectAboutToBeRemovedCallbacks
Definition: vrfObjectReference.h:93
void(* DtCallbackFunctionType)(void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:156
virtual void addObjectAboutToBeRemovedCallback(DtNoArgumentCallbackList::DtCallbackFunctionType fcn, void *usr)
This about is about to be removed.
Definition: vrfObjectReference.h:131
virtual void getSelf(DtlObjPtr args, const SearchPaths &searchPaths=DtReaderWriter::SearchPaths(), const DtVariableBindingsList &variableBindings=DtVariableBindingsList())
Top level to read itself from an input stream.
Definition: readerWriterRegistry.h:39
virtual void uuidChanged()
No-op at this level.
DtSharedVrfObjectReference class will allocate an empty DtVrfObjectReference if one is not assigned s...
Definition: vrfObjectReference.h:102
virtual void removeObjectAboutToBeRemovedCallback(DtNoArgumentCallbackList::DtCallbackFunctionType fcn, void *usr)
Remove about to be removed callback.
Definition: vrfObjectReference.h:137
Description: Readable, Writable uuid string.
Definition: rwUUID.h:419
virtual bool isValid() const
bool myAddedDiscoveredCallback
Definition: vrfObjectReference.h:297
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
virtual void putSelf(std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
Top level call to write itself to file.
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
This class works just as DtCalllbackTable, but manages callbacks that have no arguments, and therefore don't fit in the template defined by DtCallbackList.
Definition: noArgumentCallbackList.h:152
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtString waitingForName() const
If this object is not yet discovered what object is waiting to be discovered (by marking text) ...
Definition: vrfObjectReference.h:165
bool isValid() const
Return true if there is an object that is referenced by this container.
Definition: vrfObjectReference.h:154
DtSharedVrfObjectReference(DtVrfObjectReference *ref)
Definition: vrfObjectReference.h:106
DtRwUUID & operator=(const DtRwUUID &orig)
static DtVrfObjectManager * theVrfObjectManager
Definition: vrfObjectReference.h:96
boost::shared_ptr< DtVrfObjectDeletionTracker > DtVrfObjectDeletionHandle
Definition: vrfObject.h:146
static const DtVariableBindingsList & nullVariableReference()
class DtVrfObjectManager:
Definition: vrfObjectManager.h:201
bool myRemoveRegistered
Definition: vrfObjectReference.h:94
Class used as the reader/writer implementation of the DtVrfObjectReference.
Definition: vrfObjectReference.h:204
const DtUUID & uuid() const
Definition: rwUUID.h:468
DtString myWaitingForName
Definition: vrfObjectReference.h:90
const DtVrfObject * myObject
Definition: vrfObjectReference.h:89
A version of DtRwList that contains a homogeneous list of a templated RW type.
Definition: rwTemplatedList.h:26
DtVrfObjectDeletionHandle myObjectDeletionHandle
Definition: vrfObjectReference.h:91
bool myAddedRemovedCallback
Definition: vrfObjectReference.h:296
DtSharedVrfObjectReference myObject
Definition: vrfObjectReference.h:295
const DtVrfObject * operator->() const
Returns the object this represents.
Definition: vrfObjectReference.h:191
If you use a list of object names to archive which objects are part of a controller (or any object) u...
Definition: vrfObjectReference.h:305
Class used to track an object, or, to supply information (UUID, entity identifier, etc) about an object, and, if this object does not exist, will add a callback with the object manager for when that particular object is discovered.
Definition: vrfObjectReference.h:36
DtSharedVrfObjectReference()
Definition: vrfObjectReference.h:105
virtual void setUUID(const DtRwUUID &u)
Used to know whether the DtVrfObject you're tracking has been deleted.
Definition: vrfObject.h:127
DtNoArgumentCallbackList myObjectDiscoveredCallbacks
Definition: vrfObjectReference.h:92
DtUUID uuid() const
The unique identifier of this object.
Definition: vrfObjectReference.h:176