VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rwVariableBindings.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include "vrfutil/readerWriter.h"
14 #include "vrfutil/vrfutilDefines.h"
15 #include <list>
16 #include <vlutil/vlSmartPointers.h>
17 
28 {
29 private:
32 
33 public:
34  DtRwVariableBindings(const DtString& name, DtReaderWriterRegistry* parentRegistry = 0);
35  DtRwVariableBindings(const DtString& name, const DtRwVariableBindings& orig,
36  DtReaderWriterRegistry* parentRegistry = 0, bool copyVariables = true);
38  DtReaderWriterRegistry* parentRegistry = 0, bool copyVariables = true);
40  virtual ~DtRwVariableBindings();
41 
43  virtual void getSelf(DtlObjPtr args, const std::vector<DtFilename>& searchPaths = std::vector<DtFilename>(),
44  const DtVariableBindingsList& variableBindings = nullVariableReference());
45 
47  virtual void writeSelf(std::string& fp, int indentLevel = 0,
48  bool writeUnspecified = false,
49  const DtFilename& path = DtFilename::nullFilename());
50 
53 
54  virtual const DtReaderWriter* findVariableBinding(const DtString& rwTypeString,
55  const DtString& variableName) const;
56  virtual DtReaderWriter* findVariableBinding(const DtString& rwTypeString,
57  const DtString& variableName);
59 
61 
62  virtual const DtReaderWriter* findVariableBinding(const DtString& variableName) const;
63  virtual DtReaderWriter* findVariableBinding(const DtString& variableName);
65 
66  template <typename RW_Type>
67  const RW_Type* findAndCastVariableBinding(const DtString& variableName) const
68  {
69  const DtReaderWriter* rw = findVariableBinding(variableName);
70  if (rw)
71  {
72  return dynamic_cast<const RW_Type*>(rw);
73  }
74  return 0;
75  }
76 
80  static DtRwVariableBindings* createBinding(const std::list<DtReaderWriter::DtVariableNameType> &);
81 
86  virtual DtReaderWriter* addVariableBinding(const DtSymbolString& name, const char* type);
87 
90  virtual void addVariable(DtReaderWriter*);
91 
92  virtual void removeVariable(DtReaderWriter*);
93 
94  virtual void removeVariable(const DtReaderWriter*);
95 
97  virtual void clearVariables();
98 
102  virtual const char* readerWriterType() const;
103 
105  virtual int getSize() const;
106 
108  virtual char* encode(char*) const;
109 
111  virtual const char* decode(const char*);
112 
113  bool operator==(const DtRwVariableBindings&) const;
114  bool operator!=(const DtRwVariableBindings&) const;
115 
116  virtual DtString prettyPrint() const;
117 
118 protected:
121  virtual void copyVariables(const DtRwVariableBindings& other);
122 };
123 
124 typedef DtBoost::shared_ptr<DtRwVariableBindings> DtVariableBindingsSharedPtr;
125 
132  const std::list<const DtRwVariableBindings*>&);

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)