VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
objectConsoleManager.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
14 #include <tbb/spin_rw_mutex.h>
15 #include <boost/signals2.hpp>
16 #include <unordered_map>
17 
18 class DtUUID;
19 class DtSimObject;
20 class DtObjectConsole;
22 
30 {
31 public:
32 
34  virtual ~DtObjectConsoleManager();
35 
38  virtual bool init();
39 
41  virtual void setNotifyLevel( const DtUUID&, DtNotifyLevelType level );
42  virtual void setNotifyLevel( const DtUUID&, const DtString& channel, DtNotifyLevelType level );
44  virtual DtNotifyLevelType notifyLevel( const DtUUID& ) const;
45 
50  virtual void printToFile( const DtUUID&, const DtFilename& filename ) const;
51 
53  virtual void stopPrintingToFile( const DtUUID& ) const;
54 
57  virtual DtOutputStream& debugStream( const DtUUID&, const DtString& channel = "" ) const;
58  virtual DtOutputStream& verboseStream( const DtUUID&, const DtString& channel = "" ) const;
59  virtual DtOutputStream& infoStream( const DtUUID&, const DtString& channel = "" ) const;
60  virtual DtOutputStream& warnStream( const DtUUID&, const DtString& channel = "" ) const;
61  virtual DtOutputStream& errorStream( const DtUUID&, const DtString& channel = "" ) const;
63 
66  virtual void addConsolePrinter( const DtUUID&, DtPrinter* printer );
67 
74  virtual void addAndManageConsolePrinter( const DtUUID&, DtPrinter* printer );
75 
78  virtual void removeConsolePrinter( const DtUUID&, DtPrinter* printer );
79 
81  virtual const DtObjectConsole* objectConsole( const DtUUID& ) const;
82  virtual DtObjectConsole* objectConsole( const DtUUID& );
83 
85  static void setDefaultNotifyLevel( int level );
87  static int defaultNotifyLevel();
88 
89 protected:
90 
91  virtual void simObjectDeleted( const DtSimObject* );
92  virtual DtObjectConsole* getOrCreateObjectConsole( const DtUUID& );
93 
94 private:
95 
98 
101  DtObjectConsoleManager& operator = ( const DtObjectConsole& orig );
102 
104 
105 protected:
106 
108  {
109  virtual ~ObjectConsole()
110  {
111  simObjectDeletedConnection.disconnect();
112  }
113 
114  boost::signals2::scoped_connection simObjectDeletedConnection;
117  };
118 
119 protected:
120 
122  mutable tbb::spin_rw_mutex myMutex;
123 
124  typedef std::unordered_map<DtUUID,ObjectConsole> ObjectConsoles;
126 
128 
129 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
This class represents a collection of object consoles that will be used to manage streams for individ...
Definition: objectConsoleManager.h:29
This class represents the console for an individual object. It owns a set of streams for various noti...
Definition: objectConsole.h:49
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtSimulationServices * mySimulationServices
Definition: objectConsoleManager.h:121
Definition: objectConsoleManager.h:107
tbb::spin_rw_mutex myMutex
Definition: objectConsoleManager.h:122
virtual ~ObjectConsole()
Definition: objectConsoleManager.h:109
std::unordered_map< DtUUID, ObjectConsole > ObjectConsoles
Definition: objectConsoleManager.h:124
ObjectConsoles myObjectConsoles
Definition: objectConsoleManager.h:125
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:79
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
static int theDefaultNotifyLevel
Definition: objectConsoleManager.h:127
Contains the DtSimObjectReference class declaration.
DtSimObjectReference simObject
Definition: objectConsoleManager.h:115
boost::signals2::scoped_connection simObjectDeletedConnection
Definition: objectConsoleManager.h:114
DtObjectConsole * objectConsole
Definition: objectConsoleManager.h:116

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)