VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/resourceMonitor.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00012 
00013 
00014 #pragma once
00015 
00016 #include "vrfobjcore/resourceMonitorInfo.h"
00017 #include <vlutil/vlMachineTypes.h>
00018 #include <vlutil/vlString.h>
00019 
00020 class DtSimManager;
00021 class DtSimMessage;
00022 class DtSimInterfaceMessage;
00023 class DtVrfObject;
00024 class DtIfResourceMonitorResponse;
00025 class DtSimResource;
00026 class DtIfResourceNamesResponse;
00027 class DtSimulationAddress;
00028 class DtSimCondExpr;
00029 
00030 #include <list>
00031 
00032 typedef std::list<DtResourceMonitorInfo> DtResourceMonitorList;
00033 
00053 
00054 #include "vrfobjcore/vrfobjcoreDefines.h"
00055 class DT_DLL_vrfobjcore DtResourceMonitor
00056 {
00057 public:
00061    DtResourceMonitor();
00062 
00064    virtual ~DtResourceMonitor();
00065 
00067    DtResourceMonitor(DtSimManager * simManager);
00068 
00070    DtResourceMonitor(const DtResourceMonitor & orig);
00071 
00073    const DtResourceMonitor & operator=(const DtResourceMonitor & orig);
00074 
00076    virtual bool init();
00077 
00080    void setSimManager(DtSimManager * simManager) { mySimManager = simManager; };
00081    DtSimManager* simManager() const { return mySimManager; };
00082 
00084    virtual bool registerInterfaceCallbacks();
00085 
00095    virtual void tick(double simTime);
00096 
00098    virtual void restart();
00099 
00102    virtual void setEnabled(bool b);
00103    bool enabled() const { return myEnabled; };
00104 
00105 public:
00107    static void resourceMonitorRequestCallback(DtSimMessage* msg, void* usr);
00108    virtual void processResourceMonitorRequest(DtSimInterfaceMessage* msg);
00109 
00114    static void currentResourceRequestCallback(DtSimMessage* msg, void* usr);
00115    virtual void processCurrentResourceRequest(DtSimInterfaceMessage* msg);
00117 
00120    static void resourceNamesRequestCallback(DtSimMessage* msg, void* usr);
00121    virtual void processResourceNamesRequestCallback(DtSimInterfaceMessage* msg);
00122 
00124    static void vrfObjectDeletedCallback(DtSimMessage * msg, void * usr);
00125    virtual void processVrfObjectDeletedCallback(DtSimInterfaceMessage* msg);
00126 
00130    void setUpdateOnTick(bool b) { myUpdateOnTick = b; };
00131    bool updateOnTick() const { return myUpdateOnTick; };
00132 
00136    virtual void resourcesChangedFor(const DtVrfObject*);
00137    const std::list<DtString>& resourcesChangedList() const;
00138 
00139 protected:
00142    virtual void publishResourcesFor(DtIfResourceMonitorResponse& response,
00143       DtVrfObject* obj, const std::list<DtString>& resources);
00144 
00146    virtual void publishResourceNamesFor(DtIfResourceNamesResponse& response,
00147       DtVrfObject* obj);
00148 
00153    virtual void addMonitorResource(const DtEntityIdentifier& id,
00154       const DtString& resourceName, const DtSimulationAddress& sender,
00155       int iMonitorBy, const DtFloat64& iMonitorPeriod, bool stopMonitoring);
00156 
00159    virtual DtResourceMonitorList::iterator resourceMonitorInfo(const DtEntityIdentifier& id);
00160 
00165    virtual void removeMonitorReference(const DtEntityIdentifier& id, const DtString& resourceName,
00166       const DtSimulationAddress& sender);
00167 
00169    virtual void removeMonitorReference(const DtEntityIdentifier& id);
00170 
00172    virtual void removeAllMonitorReferencesTo(const DtSimulationAddress& addr);
00173 
00176    virtual bool shouldAddResource(const DtSimResource* resourceItem);
00177 
00178    virtual bool resourceChanged(const DtString&) const;
00179 
00180 protected:
00181    DtSimManager*  mySimManager;
00182    DtResourceMonitorList myMonitoringResources;
00183    bool      myEnabled;
00184    bool      myUpdateOnTick;
00185 
00186    std::list<DtString>  myResourcesChangedList;
00187 };
00188 
00189 inline const std::list<DtString>& DtResourceMonitor::resourcesChangedList() const
00190 {
00191    return myResourcesChangedList;
00192 }
00193 

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)