28 #include <boost/container/vector.hpp>
68 virtual bool IsNull()
const {
return false;}
91 size_t size()
const {
return m_values.size();}
97 bool empty()
const {
return m_values.empty();}
103 const ContainedType&
front()
const {
return m_values.front();}
109 const ContainedType&
back()
const {
return m_values.back();}
115 const_iterator
begin()
const {
return m_values.begin();}
121 const_iterator
end()
const {
return m_values.end();}
140 return m_values[index];
151 m_values.push_back(val);
159 void SetVal(
size_t index,
const ContainedType& val)
170 const ContainedType&
GetVal(
size_t index)
const
172 return m_values[index];
180 void InsertAt(
size_t index,
const ContainedType& value)
182 m_values.insert(m_values.begin()+index, value);
192 m_values.erase(m_values.begin()+index);
204 if (
typeid(*
this) !=
typeid(that))
213 m_values.reserve(other.m_values.size());
214 for (
typename StorageType::const_iterator it=other.m_values.begin(); it!=other.m_values.end(); ++it)
216 m_values.push_back(SequenceCopyHelper<ContainedType>::Copy(*it));
222 template <
class U>
struct SequenceCopyHelper
224 static U
Copy(
const U& val) {
return val;}
227 template <
class U>
struct SequenceCopyHelper< boost::shared_ptr<U> >
229 static boost::shared_ptr<U>
Copy(
const boost::shared_ptr<U> & val) {
return boost::static_pointer_cast<U>(val->Clone());}
232 StorageType m_values;
virtual void SetNull()
Set the container to null.
Definition: SequenceContainer.h:70
SequenceContainer< Joule > JouleSequenceContainer
A container containing 32 bit Joule values.
Definition: SequenceContainer.h:297
SequenceContainer()
Default Constructor.
Definition: SequenceContainer.h:62
SequenceContainer< Float32 > Float32SequenceContainer
A container containing 32 bit floating point values.
Definition: SequenceContainer.h:254
SequenceContainer< Meter > MeterSequenceContainer
A container containing 64 bit Meter values.
Definition: SequenceContainer.h:369
SequenceContainer< Pascal > PascalSequenceContainer
A container containing 32 bit Pascal values.
Definition: SequenceContainer.h:318
SequenceContainer< Ampere > AmpereSequenceContainer
A container containing 64 bit Ampere values.
Definition: SequenceContainer.h:351
Meant to be used when something goes very wrong.
Definition: Exceptions.h:360
void SetVal(size_t index, const ContainedType &val)
SetVal - Update a specific value.
Definition: SequenceContainer.h:159
void EraseAt(size_t index)
EraseAt - Erase a value at specified index.
Definition: SequenceContainer.h:189
#define __WFILE__
Definition: Exceptions.h:31
bool m_bIsChanged
The variable containing the change flag.
Definition: ContainerBase.h:122
This namespace contains all the functionality and definitions of the SAFIR SDK.
Definition: Backdoor.h:30
void InsertAt(size_t index, const ContainedType &value)
InsertAt - Insert a new value at specified index.
Definition: SequenceContainer.h:180
SequenceContainer< Watt > WattSequenceContainer
A container containing 32 bit Watt values.
Definition: SequenceContainer.h:342
SequenceContainer< HandlerId > HandlerIdSequenceContainer
A container containing HandlerId values.
Definition: SequenceContainer.h:272
const ContainedType & back() const
back - Get a const reference to the last value in the sequence.
Definition: SequenceContainer.h:109
virtual void SetChanged(const bool changed)
SetChanged - Set the change state of the sequence.
Definition: SequenceContainer.h:85
SequenceContainer< Hertz > HertzSequenceContainer
A container containing 32 bit Hertz values.
Definition: SequenceContainer.h:294
SequenceContainer< EntityId > EntityIdSequenceContainer
A container containing EntityId values.
Definition: SequenceContainer.h:266
SequenceContainer< Float64 > Float64SequenceContainer
A container containing 64 bit floating point values.
Definition: SequenceContainer.h:257
void push_back(const ContainedType &val)
push_back - Insert a new value last in the sequence.
Definition: SequenceContainer.h:148
virtual void Copy(const ContainerBase &that)
Copy - Copy all the members from "that" into "this".
Definition: SequenceContainer.h:200
Container class for sequences of values.
Definition: SequenceContainer.h:49
SequenceContainer< Volt > VoltSequenceContainer
A container containing 64 bit Volt values.
Definition: SequenceContainer.h:402
SequenceContainer< InstanceId > InstanceIdSequenceContainer
A container containing InstanceId values.
Definition: SequenceContainer.h:263
const_iterator begin() const
begin - Get const_iterator pointing to the first element in the sequence.
Definition: SequenceContainer.h:115
const_iterator end() const
end - Get const_iterator pointing past the last element in the sequence.
Definition: SequenceContainer.h:121
SequenceContainer< Pascal > PascalSequenceContainer
A container containing 64 bit Pascal values.
Definition: SequenceContainer.h:381
SequenceContainer< SquareMeter > SquareMeterSequenceContainer
A container containing 64 bit SquareMeter values.
Definition: SequenceContainer.h:396
size_t size() const
size - Get the size of the sequence, i.e number of contained values.
Definition: SequenceContainer.h:91
SequenceContainer< Ampere > AmpereSequenceContainer
A container containing 32 bit Ampere values.
Definition: SequenceContainer.h:288
bool empty() const
empty - Check if sequence is empty.
Definition: SequenceContainer.h:97
SequenceContainer< CubicMeter > CubicMeterSequenceContainer
A container containing 32 bit CubicMeter values.
Definition: SequenceContainer.h:291
SequenceContainer< Kelvin > KelvinSequenceContainer
A container containing 64 bit Kelvin values.
Definition: SequenceContainer.h:363
SequenceContainer< RadianPerSecondSquared > RadianPerSecondSquaredSequenceContainer
A container containing 32 bit RadianPerSecondSquared values.
Definition: SequenceContainer.h:327
SequenceContainer< Radian > RadianSequenceContainer
A container containing 64 bit Radian values.
Definition: SequenceContainer.h:384
Base class for all Containers.
Definition: ContainerBase.h:43
SequenceContainer< Steradian > SteradianSequenceContainer
A container containing 64 bit Steradian values.
Definition: SequenceContainer.h:399
SequenceContainer< Binary > BinarySequenceContainer
A container containing Binary values.
Definition: SequenceContainer.h:275
const ContainedType & GetVal(size_t index) const
GetVal - Get const reference to the value with specified index.
Definition: SequenceContainer.h:170
SequenceContainer< Steradian > SteradianSequenceContainer
A container containing 32 bit Steradian values.
Definition: SequenceContainer.h:336
SequenceContainer< RadianPerSecond > RadianPerSecondSequenceContainer
A container containing 64 bit RadianPerSecond values.
Definition: SequenceContainer.h:387
const ContainedType & operator[](size_t index) const
operator [] - Get const reference to the value with specified index.
Definition: SequenceContainer.h:138
SequenceContainer< RadianPerSecond > RadianPerSecondSequenceContainer
A container containing 32 bit RadianPerSecond values.
Definition: SequenceContainer.h:324
SequenceContainer< Newton > NewtonSequenceContainer
A container containing 32 bit Newton values.
Definition: SequenceContainer.h:315
SequenceContainer< MeterPerSecond > MeterPerSecondSequenceContainer
A container containing 32 bit MeterPerSecond values.
Definition: SequenceContainer.h:309
SequenceContainer< SquareMeter > SquareMeterSequenceContainer
A container containing 32 bit SquareMeter values.
Definition: SequenceContainer.h:333
virtual bool IsNull() const
Is the container set to null?
Definition: SequenceContainer.h:68
SequenceContainer< bool > BooleanSequenceContainer
A container containing boolean values.
Definition: SequenceContainer.h:245
SequenceContainer< Kilogram > KilogramSequenceContainer
A container containing 64 bit Kilogram values.
Definition: SequenceContainer.h:366
SequenceContainer< Newton > NewtonSequenceContainer
A container containing 64 bit Newton values.
Definition: SequenceContainer.h:378
SequenceContainer< Joule > JouleSequenceContainer
A container containing 64 bit Joule values.
Definition: SequenceContainer.h:360
SequenceContainer< Second > SecondSequenceContainer
A container containing 32 bit Second values.
Definition: SequenceContainer.h:330
SequenceContainer< MeterPerSecond > MeterPerSecondSequenceContainer
A container containing 64 bit MeterPerSecond values.
Definition: SequenceContainer.h:372
void clear()
clear - Clear the sequence, i.e remove all values.
Definition: SequenceContainer.h:127
SequenceContainer< Kilogram > KilogramSequenceContainer
A container containing 32 bit Kilogram values.
Definition: SequenceContainer.h:303
SequenceContainer< Int64 > Int64SequenceContainer
A container containing 64 bit integer values.
Definition: SequenceContainer.h:251
SequenceContainer< CubicMeter > CubicMeterSequenceContainer
A container containing 64 bit CubicMeter values.
Definition: SequenceContainer.h:354
SequenceContainer< MeterPerSecondSquared > MeterPerSecondSquaredSequenceContainer
A container containing 32 bit MeterPerSecondSquared values.
Definition: SequenceContainer.h:312
StorageType::const_iterator const_iterator
Definition: SequenceContainer.h:55
SequenceContainer< Watt > WattSequenceContainer
A container containing 64 bit Watt values.
Definition: SequenceContainer.h:405
virtual bool IsChanged() const
IsChanged - Check if the sequence has changed.
Definition: SequenceContainer.h:79
SequenceContainer< Second > SecondSequenceContainer
A container containing 64 bit Second values.
Definition: SequenceContainer.h:393
SequenceContainer< Kelvin > KelvinSequenceContainer
A container containing 32 bit Kelvin values.
Definition: SequenceContainer.h:300
SequenceContainer< ChannelId > ChannelIdSequenceContainer
A container containing ChannelId values.
Definition: SequenceContainer.h:269
T ContainedType
Definition: SequenceContainer.h:53
SequenceContainer< TypeId > TypeIdSequenceContainer
A container containing TypeId values.
Definition: SequenceContainer.h:260
boost::container::vector< T > StorageType
Definition: SequenceContainer.h:54
SequenceContainer< Volt > VoltSequenceContainer
A container containing 32 bit Volt values.
Definition: SequenceContainer.h:339
SequenceContainer< RadianPerSecondSquared > RadianPerSecondSquaredSequenceContainer
A container containing 64 bit RadianPerSecondSquared values.
Definition: SequenceContainer.h:390
SequenceContainer< Radian > RadianSequenceContainer
A container containing 32 bit Radian values.
Definition: SequenceContainer.h:321
const ContainedType & front() const
front - Get a const reference to the first value in the sequence.
Definition: SequenceContainer.h:103
SequenceContainer< Hertz > HertzSequenceContainer
A container containing 64 bit Hertz values.
Definition: SequenceContainer.h:357
SequenceContainer< std::wstring > StringSequenceContainer
A container containing string values.
Definition: SequenceContainer.h:242
SequenceContainer< MeterPerSecondSquared > MeterPerSecondSquaredSequenceContainer
A container containing 64 bit MeterPerSecondSquared values.
Definition: SequenceContainer.h:375
SequenceContainer< ObjectPtr > ObjectSequenceContainer
A container containing Object values.
Definition: SequenceContainer.h:278
SequenceContainer< Int32 > Int32SequenceContainer
A container containing 32 bit integer values.
Definition: SequenceContainer.h:248
SequenceContainer< Meter > MeterSequenceContainer
A container containing 32 bit Meter values.
Definition: SequenceContainer.h:306