rec::robotino::api2 C++ interface
Factory4MapList.h
1 // Copyright (C) 2004-2015, Robotics Equipment Corporation GmbH
2 
3 //Copyright (c) ...
4 //
5 //REC Robotics Equipment Corporation GmbH, Planegg, Germany. All rights reserved.
6 //Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
7 //1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8 //2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 //
10 //THIS SOFTWARE IS PROVIDED BY REC ROBOTICS EQUIPMENT CORPORATION GMBH ?AS IS? AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
11 //THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL REC ROBOTICS EQUIPMENT CORPORATION GMBH
12 //BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
13 //GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
14 //LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15 //
16 //Copyright (c) ...
17 //
18 //REC Robotics Equipment Corporation GmbH, Planegg, Germany. Alle Rechte vorbehalten.
19 //Weiterverbreitung und Verwendung in nichtkompilierter oder kompilierter Form, mit oder ohne Ver?nderung, sind unter den folgenden Bedingungen zul?ssig:
20 //1) Weiterverbreitete nichtkompilierte Exemplare m?ssen das obige Copyright, diese Liste der Bedingungen und den folgenden Haftungsausschluss im Quelltext enthalten.
21 //2) Weiterverbreitete kompilierte Exemplare m?ssen das obige Copyright, diese Liste der Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und/oder anderen Materialien, die mit dem Exemplar verbreitet werden, enthalten.
22 //
23 //DIESE SOFTWARE WIRD VON REC ROBOTICS EQUIPMENT CORPORATION GMBH OHNE JEGLICHE SPEZIELLE ODER IMPLIZIERTE GARANTIEN ZUR VERF?GUNG GESTELLT, DIE UNTER
24 //ANDEREM EINSCHLIESSEN: DIE IMPLIZIERTE GARANTIE DER VERWENDBARKEIT DER SOFTWARE F?R EINEN BESTIMMTEN ZWECK. AUF KEINEN FALL IST REC ROBOTICS EQUIPMENT CORPORATION GMBH
25 //F?R IRGENDWELCHE DIREKTEN, INDIREKTEN, ZUF?LLIGEN, SPEZIELLEN, BEISPIELHAFTEN ODER FOLGESCH?DEN (UNTER ANDEREM VERSCHAFFEN VON ERSATZG?TERN ODER -DIENSTLEISTUNGEN;
26 //EINSCHR?NKUNG DER NUTZUNGSF?HIGKEIT; VERLUST VON NUTZUNGSF?HIGKEIT; DATEN; PROFIT ODER GESCH?FTSUNTERBRECHUNG), WIE AUCH IMMER VERURSACHT UND UNTER WELCHER VERPFLICHTUNG
27 //AUCH IMMER, OB IN VERTRAG, STRIKTER VERPFLICHTUNG ODER UNERLAUBTER HANDLUNG (INKLUSIVE FAHRL?SSIGKEIT) VERANTWORTLICH, AUF WELCHEM WEG SIE AUCH IMMER DURCH DIE BENUTZUNG
28 //DIESER SOFTWARE ENTSTANDEN SIND, SOGAR, WENN SIE AUF DIE M?GLICHKEIT EINES SOLCHEN SCHADENS HINGEWIESEN WORDEN SIND.
29 
30 #ifndef Factory4MapList_H
31 #define Factory4MapList_H
32 
33 #include <string.h>
34 
35 namespace rec
36 {
37  namespace robotino
38  {
39  namespace api2
40  {
42  {
43  public:
44  static const int maxNameLength = 255;
45 
46  Factory4MapList(const unsigned int size)
47  : _size(size)
48  , _data(0)
49  {
50  if (_size > 0)
51  {
52  _data = new char*[_size];
53  for (size_t i = 0; i < _size; i++)
54  {
55  _data[i] = new char[maxNameLength];
56  }
57  }
58  }
59 
60  Factory4MapList(const Factory4MapList& other)
61  : _size(other._size)
62  , _data(0)
63  {
64  if (_size > 0)
65  {
66  _data = new char*[_size];
67  for (int i = 0; i < _size; ++i)
68  {
69  _data[i] = new char[maxNameLength];
70  strncpy(_data[i], other._data[i], maxNameLength);
71  }
72  }
73  }
74 
76  {
77  clear();
78  }
79 
80  void clear()
81  {
82  for (size_t i = 0; i < _size; i++)
83  {
84  delete [] _data[i];
85  }
86  delete[] _data;
87  _data = NULL;
88  _size = 0;
89  }
90 
91  const unsigned int size() const
92  {
93  return _size;
94  }
95 
97  const char* operator[](int index) const
98  {
99  return _data[index];
100  }
101 
102  char* operator[](int index)
103  {
104  return _data[index];
105  }
106 
107  Factory4MapList& operator=(const Factory4MapList& other)
108  {
109  clear();
110  if (other._size > 0)
111  {
112  _size = other._size;
113  _data = new char*[_size];
114  for (int i = 0; i < _size; ++i)
115  {
116  _data[i] = new char[maxNameLength];
117  strncpy(_data[i], other._data[i], maxNameLength);
118  }
119  }
120  return *this;
121  }
122 
123  private:
124  unsigned int _size;
125  char** _data;
126  };
127  }
128  }
129 }
130 
131 #endif // Factory4MapList_H
Definition: Factory4MapList.h:41
const char * operator[](int index) const
Enables access via index.
Definition: Factory4MapList.h:97
Definition: AnalogInput.h:36