VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
consoleCommandManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include "vrfutil/vrfutilDefines.h"
14 #include "vrfutil/vrfPrint.h"
15 #include <vlutil/vlString.h>
16 #include <vlutil/vlPrint.h>
17 
19 #include <map>
20 #include <list>
21 #include <iostream>
22 #include <stdlib.h>
23 
24 #include <boost/signals2.hpp>
25 #include <tbb/spin_rw_mutex.h>
26 
29 {
30 public:
31  virtual ~DtConsoleCommand() {};
32 
35  virtual bool execute(const DtString& parameters) = 0;
37  virtual DtString help(const DtString& parameters) {return parameters;};
40  virtual bool showInHelp() const { return false; };
41 };
42 
57 {
58 private:
60 
62  DtConsoleCommandManager& operator=(const DtConsoleCommandManager& orig);
64 
65 public:
67  virtual ~DtConsoleCommandManager();
68 
69  boost::signals2::signal<void ()> signal_deleted;
70 
75  virtual void addCommand(DtString commandString, DtConsoleCommand* command);
76 
79 
80  virtual void addAlias(DtString aliasString, DtConsoleCommand* command);
81  virtual void addAlias(DtString aliasString, DtString commandString);
83 
86  virtual void removeCommand(DtString commandString);
88  virtual void removeCommand(DtConsoleCommand* command);
89 
93  virtual bool runCommand(DtString consoleString);
95  virtual DtString helpText(const DtString& parameters) const;
96 
98  static void Cleanup();
99 
101  static DtConsoleCommandManager* globalConsoleCommandManager();
102 
103 protected:
104  typedef std::map<DtString, DtConsoleCommand* > DtConsoleCommandMap;
105 
107  {
108  public:
110  virtual bool execute(const DtString& parameters);
111  virtual DtString help(const DtString& parameters);
112  virtual bool showInHelp() const { return true; };
113  protected:
114  DtConsoleCommandManager* myCommandManager;
115  };
116 
118  virtual void removeReferencesFromMap(DtConsoleCommandMap& commandMap, DtConsoleCommand* command);
119 protected:
120 
123  tbb::spin_rw_mutex myMutex;
124 
126 
128 };
129 
136 {
137 public:
140  DtSubCommandManager(const DtString& commandName,
141  DtConsoleCommandManager* parentManager);
142  virtual ~DtSubCommandManager();
143 
144 protected:
145  virtual void parentCommandManagerDeleted();
146 
150  {
151  public:
152  DtRunSubCommand(DtSubCommandManager* commandManager);
153  virtual bool execute(const DtString& parameters);
154  virtual DtString help(const DtString& parameters);
155  virtual bool showInHelp() const { return true; };
156  protected:
157  DtSubCommandManager* myCommandManager;
158  };
159 
162 };
163 
169 {
170 public:
172  virtual ~DtConsoleCommandOwner();
173 
174 private:
176 
179  DtConsoleCommandOwner& operator=(const DtConsoleCommandOwner& orig);
181 
182 public:
185  virtual void addCommand(const DtString& commandString, DtConsoleCommand* command);
186 
187 protected:
189 };
virtual ~DtConsoleCommand()
Definition: consoleCommandManager.h:31
static DtConsoleCommandManager * theConsoleCommandManager
Definition: consoleCommandManager.h:127
DtHelpConsoleCommand * myHelpCommand
Definition: consoleCommandManager.h:125
DtConsoleCommandMap myCommandMap
Definition: consoleCommandManager.h:121
Command which is registered on the parent manager, and invokes this command manager.
Definition: consoleCommandManager.h:149
DtConsoleCommandManager * myParentManager
Definition: consoleCommandManager.h:160
boost::signals2::signal< void()> signal_deleted
Definition: consoleCommandManager.h:69
This is a class which maintains a list of string command names and the callback functions that are to...
Definition: consoleCommandManager.h:56
tbb::spin_rw_mutex myMutex
Definition: consoleCommandManager.h:123
virtual DtString help(const DtString &parameters)
Definition: consoleCommandManager.h:37
DtRunSubCommand * myCommand
Definition: consoleCommandManager.h:161
Definition: consoleCommandManager.h:106
A utility class for use with DtConsoleCommandManager. This class takes ownership of an arbitrary numb...
Definition: consoleCommandManager.h:168
system includes
Definition: consoleCommandManager.h:28
virtual bool showInHelp() const
Definition: consoleCommandManager.h:155
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
A specialized version of DtConsoleCommandManager which handles a set of sub commands from another con...
Definition: consoleCommandManager.h:135
virtual bool showInHelp() const
Definition: consoleCommandManager.h:40
DtConsoleCommandMap myAliasMap
Definition: consoleCommandManager.h:122
std::map< DtString, DtConsoleCommand * > DtConsoleCommandMap
Definition: consoleCommandManager.h:104
DtConsoleCommandManager * myCommandManager
Definition: consoleCommandManager.h:188
virtual bool showInHelp() const
Definition: consoleCommandManager.h:112

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)