VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtConfigurationCollection.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2007 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtConfigurationCollection_H_
11 #define DtConfigurationCollection_H_
12 
13 #include <vector>
14 #include <boost/serialization/split_member.hpp>
15 #include <boost/serialization/set.hpp>
16 
17 namespace makVrv
18 {
20  template <typename ConfigurationType>
22  {
23  public:
24  typedef std::vector<ConfigurationType*> Configurations;
25  //typedef ConfigurationType ConfigurationType;
26  typedef typename Configurations::iterator iterator;
27  typedef typename Configurations::const_iterator const_iterator;
28 
30  {
31  }
32 
35  {
37  }
38 
40  {
41  if(this == &copy) return *this;
42  destroyAll();
44  return *this;
45  }
46 
48  {
49  destroyAll();
50  }
51 
52 
53  friend class boost::serialization::access;
57 
58  template<class Archive>
59  void serialize(Archive & ar, const unsigned int version)
60  {
62  }
63 
64 
66  virtual ConfigurationType& add(const ConfigurationType& orig)
67  {
68  typename Configurations::iterator curIter = myConfigurations.begin();
69  typename Configurations::iterator endIter = myConfigurations.end();
70  for(;curIter != endIter;++curIter)
71  {
72  if((*curIter)->name() == orig.name())
73  {
74  DtTHROW_NEW(DtInvalidInput,"A configuration with that name"
75  "already exists in the collection.");
76  }
77  }
78 
79  ConfigurationType* newConfig = new ConfigurationType(orig);
80  myConfigurations.push_back( newConfig );
81  return *newConfig;
82  }
83 
97  virtual void destroyConfiguration(ConfigurationType* config)
98  {
99  typename Configurations::iterator iter = std::find(myConfigurations.begin(), myConfigurations.end(), config);
100  if(iter == myConfigurations.end())
101  {
102  return;
103  }
104 
105  myConfigurations.erase(iter);
106  delete config;
107  }
108 
109  size_t size() const { return myConfigurations.size(); }
110 
111  iterator begin() { return myConfigurations.begin(); }
112  const_iterator begin() const { return myConfigurations.begin(); }
113 
114  iterator end() { return myConfigurations.end(); }
115  const_iterator end() const { return myConfigurations.end(); }
116 
117 
120  {
121  return myConfigurations;
122  }
123 
125  void addConfigurations(const Configurations& configs)
126  {
127  typename Configurations::const_iterator curIter = configs.begin();
128  typename Configurations::const_iterator endIter = configs.end();
129  for(;curIter != endIter;++curIter)
130  {
131  add(**curIter);
132  }
133  }
134 
136  void destroyAll()
137  {
138  typename Configurations::iterator curIter = myConfigurations.begin();
139  typename Configurations::iterator endIter = myConfigurations.end();
140  for(;curIter != endIter;++curIter)
141  {
142  delete *curIter;
143  }
144  myConfigurations.clear();
145  }
146 
149  virtual ConfigurationType* findConfiguration(const std::string& name)
150  {
151  typename Configurations::iterator curIter = myConfigurations.begin();
152  typename Configurations::iterator endIter = myConfigurations.end();
153  for(;curIter != endIter;++curIter)
154  {
155  if((*curIter)->name() == name)
156  {
157  return (*curIter);
158  }
159  }
160  return 0;
161  }
162 
165  virtual const ConfigurationType* findConfiguration(const std::string& name) const
166  {
167  typename Configurations::const_iterator curIter = myConfigurations.begin();
168  typename Configurations::const_iterator endIter = myConfigurations.end();
169  for(;curIter != endIter;++curIter)
170  {
171  if((*curIter)->name() == name)
172  {
173  return (*curIter);
174  }
175  }
176  return 0;
177  }
178 
179  protected:
180 
182 
183  };
184 }
185 
186 #endif
187 
const_iterator begin() const
Definition: DtConfigurationCollection.h:112
virtual ~DtConfigurationCollection()
Definition: DtConfigurationCollection.h:47
Configurations::iterator iterator
Definition: DtConfigurationCollection.h:26
const Configurations & configurations() const
Get the channels for this window.
Definition: DtConfigurationCollection.h:119
std::vector< ConfigurationType * > Configurations
Definition: DtConfigurationCollection.h:24
DtConfigurationCollection()
Definition: DtConfigurationCollection.h:29
virtual const ConfigurationType * findConfiguration(const std::string &name) const
Return the configuration associated with name or null if one doesn&#39;t exist.
Definition: DtConfigurationCollection.h:165
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: DtConfigurationCollection.h:59
virtual void destroyConfiguration(ConfigurationType *config)
Destroys a Channel configuration. Now the pointer must be a member of the channel Configuration...
Definition: DtConfigurationCollection.h:97
DtConfigurationCollection & operator=(const DtConfigurationCollection &copy)
Definition: DtConfigurationCollection.h:39
void destroyAll()
Destroys all channel configurations.
Definition: DtConfigurationCollection.h:136
A collection of configurations.
Definition: DtConfigurationCollection.h:21
iterator begin()
Definition: DtConfigurationCollection.h:111
virtual ConfigurationType * findConfiguration(const std::string &name)
Return the configuration associated with name or null if one doesn&#39;t exist.
Definition: DtConfigurationCollection.h:149
iterator end()
Definition: DtConfigurationCollection.h:114
size_t size() const
Definition: DtConfigurationCollection.h:109
Configurations::const_iterator const_iterator
Definition: DtConfigurationCollection.h:27
void addConfigurations(const Configurations &configs)
Add several configurations.
Definition: DtConfigurationCollection.h:125
#define DT_SERIALIZE_MEMBER(NAME)
Serialize a Member whose name starts with &#39;my&#39; If your member does not have that name, use Dt_SERIALIZE.
Definition: DtSerialize.h:158
virtual ConfigurationType & add(const ConfigurationType &orig)
Add a Channel configuration.
Definition: DtConfigurationCollection.h:66
DtConfigurationCollection(const DtConfigurationCollection &copy)
Definition: DtConfigurationCollection.h:33
Configurations myConfigurations
Definition: DtConfigurationCollection.h:181
const_iterator end() const
Definition: DtConfigurationCollection.h:115

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)