31#include <IceUtil/Handle.h>
34#include <ArmarXCore/interface/observers/VariantBase.h>
35#include <ArmarXCore/interface/observers/VariantContainers.h>
87 ContainerTypePtr
getContainerType(
const Ice::Current&
c = Ice::emptyCurrent)
const override;
89 const Ice::Current&
c = Ice::emptyCurrent)
override;
93 VariantDataClassPtr
clone(
const Ice::Current&
c = Ice::emptyCurrent)
const override;
94 std::string
output(
const Ice::Current&
c = Ice::emptyCurrent)
const override;
95 Ice::Int
getType(
const Ice::Current&
c = Ice::emptyCurrent)
const override;
96 bool validate(
const Ice::Current&
c = Ice::emptyCurrent)
override;
109 virtual public SingleVariantBase
118 VariantContainerBasePtr
119 cloneContainer(const ::Ice::Current& = Ice::emptyCurrent)
const override;
120 Ice::ObjectPtr
ice_clone()
const override;
125 int getSize(const ::Ice::Current& = Ice::emptyCurrent)
const override;
126 ContainerTypePtr
getContainerType(
const Ice::Current&
c = Ice::emptyCurrent)
const override;
128 const Ice::Current&
c = Ice::emptyCurrent)
override;
133 clear(const ::Ice::Current& = Ice::emptyCurrent)
override
137 bool validateElements(const ::Ice::Current& = Ice::emptyCurrent)
override;
140 void serialize(
const ObjectSerializerBasePtr& serializer,
141 const ::Ice::Current& = Ice::emptyCurrent)
const override;
142 void deserialize(
const ObjectSerializerBasePtr& serializer,
143 const ::Ice::Current& = Ice::emptyCurrent)
override;
149 std::istringstream stream(s);
155 static std::string getTypePrefix();
159 std::string toString(
const Ice::Current&
c)
const override;
167 VariantContainerBasePtr
168 cloneContainer(
const Ice::Current& = Ice::emptyCurrent)
const override;
169 Ice::ObjectPtr
ice_clone()
const override;
170 ContainerTypePtr
getContainerType(
const Ice::Current& = Ice::emptyCurrent)
const override;
172 const Ice::Current& = Ice::emptyCurrent)
override;
175 clear(
const Ice::Current& = Ice::emptyCurrent)
override
179 int getSize(
const Ice::Current& = Ice::emptyCurrent)
const override;
185 const ::Ice::Current& = Ice::emptyCurrent)
const override
191 const ::Ice::Current& = Ice::emptyCurrent)
override
197 std::string
toString(
const Ice::Current&
c)
const override;
208 ContainerTypePtr
clone(
const Ice::Current& = Ice::emptyCurrent)
const override;
219 static bool compare(
const ContainerTypePtr& type1,
const ContainerTypePtr& secondType);
221 static ContainerTypePtr
FromString(
const std::string& typeStr);
222 static std::string
GetInnerType(
const std::string& typeStr);
226 std::string containerType;
227 ContainerTypePtr thisType;
237extern template class ::IceInternal::Handle<::armarx::SingleVariant>;
238extern template class ::IceInternal::Handle<::armarx::ContainerTypeI>;
#define ARMARXCORE_IMPORT_EXPORT
void setContainerType(const ContainerTypePtr &containerType, const Ice::Current &=Ice::emptyCurrent) override
VariantContainerBasePtr cloneContainer(const Ice::Current &=Ice::emptyCurrent) const override
int getSize(const Ice::Current &=Ice::emptyCurrent) const override
void deserialize(const ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
Ice::ObjectPtr ice_clone() const override
void serialize(const ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
void clear(const Ice::Current &=Ice::emptyCurrent) override
std::string toString(const Ice::Current &c) const override
ContainerTypePtr getContainerType(const Ice::Current &=Ice::emptyCurrent) const override
bool validateElements(const Ice::Current &=Ice::emptyCurrent) override
ContainerTypePtr clone(const Ice::Current &=Ice::emptyCurrent) const override
The SingleVariant class is required to store single Variant instances in VariantContainer subclasses.
void setContainerType(const ContainerTypePtr &containerType, const Ice::Current &c=Ice::emptyCurrent) override
void clear(const ::Ice::Current &=Ice::emptyCurrent) override
VariantContainerBasePtr cloneContainer(const ::Ice::Current &=Ice::emptyCurrent) const override
VariantBasePtr getElementBase(const Ice::Current &=Ice::emptyCurrent) const override
static VariantTypeId getStaticType(const Ice::Current &c=Ice::emptyCurrent)
SingleVariant & operator=(const SingleVariant &source)
int getSize(const ::Ice::Current &=Ice::emptyCurrent) const override
void setVariant(const VariantPtr &variant)
Ice::ObjectPtr ice_clone() const override
ContainerTypePtr getContainerType(const Ice::Current &c=Ice::emptyCurrent) const override
static std::string getTypePrefix()
static T fromString(const std::string &s)
VariantContainerType(std::string containerType)
static std::string allTypesToString(const ContainerTypePtr &type)
const ContainerTypeI operator()(VariantTypeId typeId) const
static bool compare(const ContainerTypePtr &type1, const ContainerTypePtr &secondType)
static ContainerTypePtr FromString(const std::string &typeStr)
static std::string GetInnerType(const std::string &typeStr)
VariantContainer is the base class of all other Variant container classes.
void setContainerType(const ContainerTypePtr &containerType, const Ice::Current &c=Ice::emptyCurrent) override
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
Ice::Int getType(const Ice::Current &c=Ice::emptyCurrent) const override
ContainerTypePtr getContainerType(const Ice::Current &c=Ice::emptyCurrent) const override
The Variant class is described here: Variants.
static VariantTypeId addTypeName(const std::string &typeName)
Register a new type for the use in a Variant.
const VariantTypeId VariantContainer
const VariantContainerType SingleVariantContainer
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< SingleVariant > SingleVariantPtr
IceInternal::Handle< Variant > VariantPtr
IceInternal::Handle< VariantContainer > VariantContainerPtr
::IceInternal::Handle<::armarx::VariantBase > VariantBasePtr
IceInternal::Handle< ContainerTypeI > ContainerTypeIPtr