MAK Data Logger API Documentation for DIS
lgrRuntimeCommandFactory.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include "lgrCmds.h"
13 #include "lgrCommand.h"
14 
15 #include "collectors.h"
16 
17 #include <map>
18 #include <list>
19 
20 class DtString;
21 
22 namespace MAKLogger
23 {
24 
26  typedef std::pair<DtString,DtString> DtNamedTypedParameter;
27 
29  typedef std::list<DtNamedTypedParameter> DtParameterList;
30 
31  //Define a command Unique Id as its type and id
32  typedef std::pair<DtLgrCommandType,DtLgrCommandId> DtLgrCommandUniqueId;
33 
35  typedef std::pair<DtString,DtParameterList> DtCommandAttributes;
36  typedef std::pair<DtLgrCommandUniqueId,DtCommandAttributes> DtCommandDefinitionPair;
37 
41  {
42  public:
44  bool commandLine = true);
45 
46  DtLgrCommandType type() const;
47  DtLgrCommandId id() const;
48 
49  void setUniqueId(DtLgrCommandType,DtLgrCommandId);
50  DtLgrCommandUniqueId uniqueId() const;
51 
52  void setName(const DtString&);
53  DtString name() const;
54 
55  DtParameterList& parameters();
56  const DtParameterList& parameters() const;
57 
58  bool accessViaCommandLine() const;
59 
60  protected:
63  };
64 
68  {
69  public:
73 
75  virtual ~DtRuntimeCommandFactory();
76 
78  virtual void commandNames(DtCollector<DtString> names);
79 
81  virtual void commandParams(DtLgrCommandType,DtLgrCommandId,
82  DtParameterList& outParams);
83 
85  virtual DtString* commandName(DtLgrCommandType,DtLgrCommandId);
86 
88  DtLgrCommandType commandType(const DtString& name);
89 
91  virtual DtLgrCommandId commandId(const DtString&);
92 
102  virtual DtCommand generateCommand(DtLgrCommandType type,
103  DtLgrCommandId id,const DtParameterList& nameValuePairs);
104 
105  DtAnyValue* deserializeParameter(const DtString& type,const DtString& value) const;
106 
107  DtAnyValue* deserializeParameterList(const DtString& type,const std::vector<DtString>& values) const;
108 
110  void registerCommand(const DtCommandDefinition&);
111 
113  void unregisterCommand(const DtCommandDefinition&);
114 
116  static bool isListType(const DtString&);
117 
119  static DtString listItemType(const DtString listType);
120 
124  static DtString baseType(const DtString typeAlias);
125 
126  static DtString stringType();
127  static DtString intType();
128  static DtString int64Type();
129  static DtString floatType();
130  static DtString doubleType();
131  static DtString boolType();
132  static DtString timeType();
133  static DtString stringListType();
134  static DtString voidPtrType();
135  static DtString base64Type();
136 
137  protected:
138 
139  virtual bool isStringType(const DtString& type) const;
140  virtual bool isIntType(const DtString& type) const;
141  virtual bool isInt64Type(const DtString& type) const;
142  virtual bool isFloatType(const DtString& type) const;
143  virtual bool isDoubleType(const DtString& type) const;
144  virtual bool isBoolType(const DtString& type) const;
145  virtual bool isTimeType(const DtString& type) const;
146  virtual bool isStringListType(const DtString& type) const;
147  virtual bool isVoidPtrType(const DtString& type) const;
148  virtual bool isBase64Type(const DtString& type) const;
149 
150  typedef std::map<DtLgrCommandUniqueId,DtParameterList> DtCommandParamMap;
151  typedef std::map<DtLgrCommandUniqueId,DtString> DtCommandIdMap;
152  typedef std::map<DtString,DtLgrCommandUniqueId> DtCommandNameMap;
153 
156 
159 
162 
163  };
164 
165 }

Document ID: Generated on Thu Apr 10 18:53:01 EDT 2014 from SVN revision 138105
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)