VR-Forces 4.0.4 Class Documentation
include/vrfGuiCore/DtVrfSimMessager.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtVrfSimMessager.h,v $ $Revision: 1.8 $ $State: Exp $
00007 ******************************************************************************/
00008 
00011 
00013 
00014 #pragma once
00015 
00016 #include <vrfGuiCore/vrfGuiCore.h>
00017 #include <vrfGuiCore/DtQueuedManager.h>
00018 #include <vrfGuiCore/DtVrfObjectModification.h>
00019 #include <vrfGuiCore/DtEnvironmentalCreationData.h>
00020 #include <vrfGuiCore/DtEntityCreationData.h>
00021 
00022 #include <vrvUtil/DtVirtualBaseClass.h>
00023 #include <vrvCore/DtSelectionManager.h>
00024 #include <vrvCore/DtEntityState.h>
00025 #include <vrvUtil/signalslib.h>
00026 #include <vrvCore/DtDe.h>
00027 
00028 #include <vlpi/entityType.h>
00029 #include <matrix/vlVector.h>
00030 
00031 #include <vrfmsgs/msgExec.h>
00032 #include <vrfmsgs/vrfObjectMessageExecutive.h>
00033 #include <vrfplan/plan.h>
00034 #include <vrfutil/scenario.h>
00035 #include <vrftasks/setReqFact.h>
00036 #include <vrftasks/taskFactory.h>
00037 #include <vrfutil/ceFactory.h>
00038 #include <vrfplan/simCommandFactory.h>
00039 #include <vrftasks/adminContentFactory.h>
00040 #include <vrfExtProtocol/ifContFactory.h>
00041 #include <vrfmsgs/vrfObjectMessageFactory.h>
00042 #include <vrftasks/reportFactory.h>
00043 
00044 class DtScenarioLoadInformation;
00045 class DtSetDataRequest;
00046 class DtSimTask;
00047 class DtAdminMessage;
00048 class DtSimInterfaceContent;
00049 
00050 typedef void (*DtVrfObjectConsoleMessageCallbackFcn)
00051    (const DtEntityIdentifier& id, int notifyLevel, const DtString& message, void* usr);
00052 
00053 namespace makVrf
00054 {
00056    class DT_DLL_VRFGUICORE DtVrfSimMessager : public DtQueuedManager
00057    {
00058    public:
00059 
00060       DtVrfSimMessager(makVrv::DtDe&);
00061       virtual ~DtVrfSimMessager();
00062 
00064       static DtVrfSimMessager& instance(makVrv::DtDe& de);
00065 
00066    public:
00068       boost::signal<void ()> signal_scenarioModified;
00069 
00071       virtual void newScenario(const DtScenario*);
00072       boost::signal<void (const DtScenario*)> signal_newScenario;
00073 
00075       virtual void loadScenario(const DtScenarioLoadInformation&);
00076       boost::signal<void (const DtScenarioLoadInformation&)> signal_loadScenario;
00077 
00079       virtual void createEntity(DtSimulationAddress addr, DtEntityCreationData);
00080       boost::signal<void (DtSimulationAddress, DtEntityCreationData)> signal_createEntity;
00081 
00083       virtual void setTimeoutInterval(int);
00084       boost::signal<void (int)> signal_setTimeoutInterval;
00085 
00087       virtual void createEnvironmentalObject(DtSimulationAddress addr, DtEntityType, int force, const std::vector<DtVector>&,
00088          const DtEnvironmentalCreationData& data = DtEnvironmentalCreationData());
00089       boost::signal<void (DtSimulationAddress, DtEntityType, int, std::vector<DtVector>,
00090          DtEnvironmentalCreationData data)> signal_createEnvironmentalObject;
00091 
00093       virtual void closeScenario();
00094       boost::signal<void ()> signal_closeScenario;
00095 
00097       virtual void requestTasksAndSetsFor(std::vector<DtString> name);
00098       boost::signal<void (std::vector<DtString>)> signal_requestTasksAndSetsFor;
00099 
00101       virtual void requestDIGuyAppearancesAndAnimations(std::vector<DtString> name);
00102       boost::signal<void (std::vector<DtString>)> signal_requestDIGuyAppearancesAndAnimations;
00103 
00106       virtual void sendSetRequest(const DtSetDataRequest& s, const std::vector<std::string>& names);
00107       virtual void sendSetRequest(const DtSetDataRequest& s, const std::string& name);
00108       boost::signal<void (const DtSetDataRequest&, const std::vector<std::string>&)> signal_sendSetRequest;
00109 
00112       virtual void sendTaskRequest(const DtSimTask& s, const std::vector<std::string>& names);
00113       virtual void sendTaskRequest(const DtSimTask& s, const std::string& name);
00114       boost::signal<void (const DtSimTask&, const std::vector<std::string>&)> signal_sendTaskRequest;
00115    
00117       virtual void subscribePlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00118       boost::signal<void (std::string, DtSimulationAddress)> signal_subscribePlan;
00119    
00121       virtual void requestPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00122       boost::signal<void (std::string, DtSimulationAddress)> signal_requestPlan;
00123    
00125       virtual void requestGlobalPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00126       boost::signal<void (std::string, DtSimulationAddress)> signal_requestGlobalPlan;
00127    
00129       virtual void requestMultiplePlans(std::vector<std::string> names, DtSimulationAddress addr = DtSimSendToAll);
00130       boost::signal<void (std::vector<std::string> names, DtSimulationAddress)> signal_requestMultiplePlans;
00131 
00133       virtual void assignPlanByName(std::string name, const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
00134       boost::signal<void (std::string, const DtPlan*, DtSimulationAddress)> signal_assignPlanByName;
00135 
00137       virtual void assignGlobalPlanByName(std::string name, const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
00138       boost::signal<void (std::string, const DtPlan*, DtSimulationAddress)> signal_assignGlobalPlanByName;
00139    
00141       virtual void assignMultiplePlanByName(std::vector<std::string> names, const DtPlan*, DtSimulationAddress addr = DtSimSendToAll);
00142       boost::signal<void (std::vector<std::string> names, const DtPlan*, DtSimulationAddress)> signal_assignMultiplePlanByName;
00143 
00145       virtual void skipTask(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00146       boost::signal<void (std::string, DtSimulationAddress)> signal_skipTask;
00147 
00149       virtual void abandonPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00150       boost::signal<void (std::string, DtSimulationAddress)> signal_abandonPlan;
00151 
00153       virtual void aggregateAs(const std::vector<makVrv::DtVrlinkSimulatedEntityState>& names, const DtEntityType& type,
00154          int force, DtAggregateState initialAggregateState, DtSimulationAddress addr);
00155       boost::signal<void (const std::vector<makVrv::DtVrlinkSimulatedEntityState>& names, const DtEntityType& type, int force,
00156          DtAggregateState initialAggregateState, DtSimulationAddress addr)> signal_aggregateAs;
00157 
00159       virtual void aggregate(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00160       boost::signal<void (std::string, DtSimulationAddress)> signal_aggregate;
00161 
00163       virtual void disaggregate(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00164       boost::signal<void (std::string, DtSimulationAddress)> signal_disaggregate;
00165 
00167       virtual void restartPlan(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00168       boost::signal<void (std::string, DtSimulationAddress)> signal_restartPlan;
00169 
00171       virtual void setJoystickEnabled(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00172 
00174       virtual void setJoystickDisabled(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00175 
00177       virtual void requestResourcesFor(std::vector<std::string> names, DtSimulationAddress addr = DtSimSendToAll);
00178       boost::signal<void (std::vector<std::string> names, DtSimulationAddress)> signal_requestResourcesFor;
00179 
00181       virtual void runScenario(DtSimulationAddress addr = DtSimSendToAll);
00182       boost::signal<void (DtSimulationAddress)> signal_runScenario;
00183 
00185       virtual void pauseScenario(DtSimulationAddress addr = DtSimSendToAll);
00186       boost::signal<void (DtSimulationAddress)> signal_pauseScenario;
00187 
00189       virtual void rewindScenario(DtSimulationAddress addr = DtSimSendToAll);
00190       boost::signal<void (DtSimulationAddress)> signal_rewindScenario;
00191 
00193       virtual void deleteObject(std::string name, DtSimulationAddress addr = DtSimSendToAll);
00194       boost::signal<void (std::string, DtSimulationAddress)> signal_deleteObject;
00195       
00198       boost::signal<void (std::string, bool& shouldDelete)> signal_shouldDeleteObject;
00199 
00201       virtual void saveScenario(const DtScenario*, DtPreserveMappingsFcn fcn = 0, void* userData = 0);
00202       boost::signal<void (const DtScenario*, DtPreserveMappingsFcn fcn, void* userData)> signal_saveScenario;
00203       
00205       virtual void requestGlobalPlans(DtSimulationAddress addr = DtSimSendToAll);
00206       boost::signal<void (DtSimulationAddress addr)> signal_requestGlobalPlans;
00207       
00209       virtual void deleteGlobalPlan(std::string, DtSimulationAddress addr = DtSimSendToAll);
00210       boost::signal<void (std::string, DtSimulationAddress addr)> signal_deleteGlobalPlan;
00211       
00213       virtual void sendMessageToObject(const DtVrfObjectMessage&, DtSimulationAddress addr = DtSimSendToAll);
00214       boost::signal<void (const DtVrfObjectMessage&, DtSimulationAddress addr)> signal_sendMessageToObject;
00215 
00216       virtual int generateRequestId();
00217 
00218    public:
00220       virtual void registerSimMessageCallbackFor(int, DtMessageCallbackFcn, void*);
00221 
00223       virtual void unregisterSimMessageCallbackFor(int, DtMessageCallbackFcn, void*);
00224 
00226       virtual void registerRadioMessageCallbackFor(int, DtVrfObjectMessageCallbackFcn, void*);
00227 
00229       virtual void unregisterRadioMessageCallbackFor(int, DtVrfObjectMessageCallbackFcn, void*);
00230 
00232       boost::signal<void (int, DtMessageCallbackFcn, void*, bool)> signal_registerSimMessageCallbackFor;
00233 
00235       boost::signal<void (int, DtVrfObjectMessageCallbackFcn, void*, bool)> signal_registerRadioMessageCallbackFor;
00236 
00238       virtual void addSetCreatorFcn(std::string, int, DtSetDataRequestCreatorFcn);
00239       boost::signal<void (std::string, int, DtSetDataRequestCreatorFcn)> signal_addSetCreatorFcn;
00240 
00242       virtual void addTaskCreatorFcn(std::string, int, DtSimTaskCreatorFcn);
00243       boost::signal<void (std::string, int, DtSimTaskCreatorFcn)> signal_addTaskCreatorFcn;
00244 
00246       virtual void addInterfaceContentCreatorFcn(int t, DtInterfaceContentCreatorFcn);
00247       boost::signal<void (int, DtInterfaceContentCreatorFcn)> signal_addInterfaceContentCreatorFcn;
00248 
00250       virtual void addAdminContentCreatorFcn(std::string, int, DtAdminContentCreatorFcn);
00251       boost::signal<void (std::string, int, DtAdminContentCreatorFcn)> signal_addAdminContentCreatorFcn;
00252 
00254       virtual void addConditionCreatorFcn(std::string, int, DtCondExprCreatorFcn);
00255       boost::signal<void (std::string, int, DtCondExprCreatorFcn)> signal_addConditionCreatorFcn;
00256 
00258       virtual void addReportCreatorFcn(std::string, int, DtSimReportCreatorFcn);
00259       boost::signal<void (std::string, int, DtSimReportCreatorFcn)> signal_addReportCreatorFcn;
00260 
00262       virtual void addObjectMessageCreatorFcn(int, DtVrfObjectMessageCreatorFcn);
00263       boost::signal<void (int, DtVrfObjectMessageCreatorFcn)> signal_addObjectMessageCreatorFcn;
00264 
00266       virtual void addSimulationCommandCreatorFcn(std::string, int, DtSimCommandCreatorFcn);
00267       boost::signal<void (std::string, int, DtSimCommandCreatorFcn)> signal_addSimulationCommandCreatorFcn;
00268 
00270       virtual void sendMessage(const DtSimInterfaceContent& message, DtSimulationAddress addr = DtSimSendToAll);
00271       virtual void sendMessageAndDeleteContent(DtSimInterfaceContent* message, DtSimulationAddress addr = DtSimSendToAll);
00272       boost::signal<void (const DtSimInterfaceContent&, DtSimulationAddress)> signal_sendMessage;
00273 
00275       virtual void addToForceLevelOrganization(const std::string& entityId, DtSimulationAddress addr = DtSimSendToAll);
00276       boost::signal<void (const std::string& entityId, DtSimulationAddress)> signal_addToForceLevelOrganization;
00277 
00279       virtual void addToOrganization(const std::string& childId, const std::string& superiorId,
00280          DtSimulationAddress addr = DtSimSendToAll);
00281       boost::signal<void (const std::string& childId, const std::string& superiorId,
00282          DtSimulationAddress)> signal_addToOrganization;
00283 
00285       virtual void embarkOn(const std::vector<std::string>& children, const std::string& parentName, 
00286          bool useSlot = true, const DtVector& overridePosition = DtVector::zero(), DtSimulationAddress addr = DtSimSendToAll);
00287       boost::signal<void (std::vector<std::string> children, std::string parentName, bool, DtVector,
00288          DtSimulationAddress)> signal_embarkOn;
00289 
00291       virtual void disembark(const std::vector<std::string>& children, DtSimulationAddress addr = DtSimSendToAll); 
00292       boost::signal<void (std::vector<std::string>, DtSimulationAddress)> signal_disembark;
00293 
00295       virtual void disembarkAll(const std::vector<std::string>& parents, DtSimulationAddress addr = DtSimSendToAll); 
00296       boost::signal<void (std::vector<std::string>, DtSimulationAddress)> signal_disembarkAll;
00297 
00299       virtual void attachTo(const std::vector<std::string>& ids, const std::string& parentName);
00300 
00302       virtual void detachAll(const std::vector<std::string>& ids);
00303 
00305       void registerForCommentInteractions(DtVrfObjectConsoleMessageCallbackFcn, void*);
00306       void unregisterForCommentInteractions(DtVrfObjectConsoleMessageCallbackFcn, void*);
00307       boost::signal<void (DtVrfObjectConsoleMessageCallbackFcn, void*, bool)> signal_registerCommentInteraction;
00308 
00311       virtual void logObjectConsoleToFile(const std::string& name, const std::string& filename);
00312       boost::signal<void (std::string, std::string)> signal_logObjectConsoleToFile;
00313 
00315       virtual void setObjectNotifyLevel(const std::string& name, int);
00316       boost::signal<void (std::string, int)> signal_setObjectNotifyLevel;
00317 
00319       virtual void sendVrfObjectModifyMsg(
00320          const DtSimulationAddress& addr,
00321          const std::string& entityId,
00322          const std::string* name = 0,
00323          const std::vector<DtVector>& = std::vector<DtVector>(),
00324          int* force = 0,
00325          double* heading = 0,
00326          const std::string* label = 0,
00327          DtAppearance* appearance = 0,
00328          const std::string* overlayParent = 0,
00329          const std::string* userData = 0) const;
00330       boost::signal<void (DtSimulationAddress, std::string, DtVrfObjectModification)> signal_sendVrfObjectModifyMessage;
00331 
00335       virtual void sendVrfOverlayObjectModifyMsg(
00336          const DtSimulationAddress& addr,
00337          const std::string& id,
00338          int* color = 0,
00339          const std::string* parentName = 0,
00340          const std::string* attachTo = 0,
00341          const std::string* userData = 0) const;
00342       boost::signal<void (DtSimulationAddress, std::string, DtVrfObjectModification)> signal_sendVrfOverlayObjectModifyMessage;
00343 
00345       virtual void subscribeForTaskInformation(const std::string&);
00346 
00348       virtual void unsubscribeForTaskInformation(const std::string&);
00349 
00351       virtual void requestCurrentTasks(const std::string&);
00352 
00354       virtual void setAggregateOnCreate(bool);
00355       bool aggregateOnCreate() const;
00356 
00357    public:
00359       virtual void sendLoggerSetFilename(std::string filename);
00360       boost::signal<void (std::string)> signal_sendLoggerSetFilename;
00361 
00362       virtual void sendLoggerRecordMessage();
00363       boost::signal<void ()> signal_sendLoggerRecordMessage;
00364 
00365       virtual void sendLoggerStopMessage();
00366       boost::signal<void ()> signal_sendLoggerStopMessage;
00367 
00368    public:
00370       boost::signal<void (const DtScenario*)> signal_loadedScenario;
00371 
00372    protected:
00374       virtual void slot_deActivated(makVrv::DtDe* de);
00375 
00376    protected:
00377       bool myActivated;
00378       bool myAggregateOnCreate;
00379    };
00380 }

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)