VR-Forces 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 #include <vlutil/vlPrint.h>
18 
19 class DtUUID;
20 class DtSimObject;
21 class DtObjectConsole;
23 class DtFilename;
24 
32 {
33 public:
34 
36  virtual ~DtObjectConsoleManager();
37 
40  virtual bool init();
41 
43  virtual void setNotifyLevel( const DtUUID&, DtNotifyLevelType level );
44  virtual void setNotifyLevel( const DtUUID&, const DtString& channel, DtNotifyLevelType level );
46  virtual DtNotifyLevelType notifyLevel( const DtUUID& ) const;
47 
52  virtual void printToFile( const DtUUID&, const DtFilename& filename ) const;
53 
55  virtual void stopPrintingToFile( const DtUUID& ) const;
56 
59  virtual DtOutputStream& debugStream( const DtUUID&, const DtString& channel = "" ) const;
60  virtual DtOutputStream& verboseStream( const DtUUID&, const DtString& channel = "" ) const;
61  virtual DtOutputStream& infoStream( const DtUUID&, const DtString& channel = "" ) const;
62  virtual DtOutputStream& warnStream( const DtUUID&, const DtString& channel = "" ) const;
63  virtual DtOutputStream& errorStream( const DtUUID&, const DtString& channel = "" ) const;
65 
68  virtual void addConsolePrinter( const DtUUID&, DtPrinter* printer );
69 
76  virtual void addAndManageConsolePrinter( const DtUUID&, DtPrinter* printer );
77 
80  virtual void removeConsolePrinter( const DtUUID&, DtPrinter* printer );
81 
83  virtual const DtObjectConsole* objectConsole( const DtUUID& ) const;
84  virtual DtObjectConsole* objectConsole( const DtUUID& );
85 
87  static void setDefaultNotifyLevel( int level );
89  static int defaultNotifyLevel();
90 
91 protected:
92 
93  virtual void simObjectDeleted( const DtSimObject* );
94  virtual DtObjectConsole* getOrCreateObjectConsole( const DtUUID& );
95 
96 private:
97 
100 
103  DtObjectConsoleManager& operator = ( const DtObjectConsole& orig );
104 
106 
107 protected:
108 
110  {
111  virtual ~ObjectConsole()
112  {
113  simObjectDeletedConnection.disconnect();
114  }
115 
116  boost::signals2::scoped_connection simObjectDeletedConnection;
119  };
120 
121 protected:
122 
124  mutable tbb::spin_rw_mutex myMutex;
125 
126  typedef std::unordered_map<DtUUID,ObjectConsole> ObjectConsoles;
128 
130 
131 };
UUID is a unique ID wrapper class.
Definition: uuid.h:59
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:31
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:123
Definition: objectConsoleManager.h:109
tbb::spin_rw_mutex myMutex
Definition: objectConsoleManager.h:124
virtual ~ObjectConsole()
Definition: objectConsoleManager.h:111
std::unordered_map< DtUUID, ObjectConsole > ObjectConsoles
Definition: objectConsoleManager.h:126
ObjectConsoles myObjectConsoles
Definition: objectConsoleManager.h:127
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
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:88
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
static int theDefaultNotifyLevel
Definition: objectConsoleManager.h:129
Contains the DtSimObjectReference class declaration.
DtSimObjectReference simObject
Definition: objectConsoleManager.h:117
boost::signals2::scoped_connection simObjectDeletedConnection
Definition: objectConsoleManager.h:116
DtObjectConsole * objectConsole
Definition: objectConsoleManager.h:118

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)