33template class ::IceInternal::Handle<::armarx::LiteralImpl>;
48 this->type = eLiteral;
49 impl->installed =
false;
57 const std::string& checkName,
58 const ParameterList& checkParameters) :
61 init(dataFieldIdentifierStr, checkName, checkParameters);
65 const std::string& checkName,
66 const ParameterList& checkParameters) :
73 const std::string& checkName,
74 const ParameterList& checkParameters) :
77 init(dataFieldIdentifier->getIdentifierStr(), checkName, checkParameters);
81 const std::string& checkName,
82 const ParameterList& checkParameters) :
85 DatafieldRefPtr ref = DatafieldRefPtr::dynamicCast(dataFieldIdentifier);
86 init(ref->getDataFieldIdentifier()->getIdentifierStr(), checkName, checkParameters);
111 const Ice::Current&
c)
123 literal->type = this->type;
124 literal->impl->installed = this->impl->installed;
125 literal->impl->checkIdentifier = this->impl->checkIdentifier;
126 literal->checkConfig = this->checkConfig;
127 literal->impl->myProxy = this->impl->myProxy;
136 DataFieldIdentifierPtr::dynamicCast(checkConfig.dataFieldIdentifier);
138 out << checkConfig.checkName <<
"(";
140 if (dataFieldIdentifier)
142 out << dataFieldIdentifier;
150 ParameterList::const_iterator iter = checkConfig.checkParameters.begin();
152 while (iter != checkConfig.checkParameters.end())
154 if (iter == checkConfig.checkParameters.begin())
159 VariantPtr var = VariantPtr::dynamicCast(*iter);
172 if (iter != checkConfig.checkParameters.end())
183 const std::string& checkName,
184 const ParameterList& checkParameters)
190 this->checkConfig.dataFieldIdentifier = dataFieldIdentifier;
191 this->checkConfig.checkName = checkName;
193 ParameterList::const_iterator iter = checkParameters.begin();
195 while (iter != checkParameters.end())
197 this->checkConfig.checkParameters.push_back(
205 const ObserverInterfacePrx& proxy)
207 std::unique_lock lock(impl->accessLock);
215 impl->myProxy = adapter->addWithUUID(
this);
216 checkConfig.listener = LiteralImplBasePrx::uncheckedCast(impl->myProxy);
219 impl->checkIdentifier = proxy->installCheck(checkConfig);
221 impl->installed =
true;
226 const ObserverInterfacePrx& proxy)
228 std::unique_lock lock(impl->accessLock);
230 if (!impl->installed)
236 proxy->removeCheck(impl->checkIdentifier);
239 adapter->remove(impl->myProxy->ice_getIdentity());
241 impl->installed =
false;
DataFieldIdentifier provide the basis to identify data field within a distributed ArmarX scenario.
std::string getIdentifierStr() const
Retrieve data field identifier string.
void output(std::ostream &out) const override
output to stream.
CheckConfiguration getCheckConfiguration(const Ice::Current &c=Ice::emptyCurrent) override
Retrieve check configuration.
LiteralImpl()
Creates an empty LiteralImpl.
Ice::ObjectPtr ice_clone() const override
Reimplementation of the ice_clone method.
void init(const std::string &dataFieldIdentifierStr, const std::string &checkName, const ParameterList &checkParameters)
void setValueAndData(bool value, const ::armarx::DataFieldIdentifierBasePtr &id, const ::armarx::VariantBasePtr &data, const Ice::Current &c=Ice::emptyCurrent) override
void setValue(bool value, const Ice::Current &c=Ice::emptyCurrent) override
Set value of LiteralImpl.
void update(const Ice::Current &c=Ice::emptyCurrent) override
Updates the parent in the expression tree.
void updateWithData(const Ice::Current &c=Ice::emptyCurrent) override
The Variant class is described here: Variants.
::IceInternal::Handle<::Ice::ObjectAdapter > ObjectAdapterPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::map< std::string, VariantBasePtr > StringVariantBaseMap
IceInternal::Handle< DataFieldIdentifierBase > DataFieldIdentifierBasePtr
IceInternal::Handle< Variant > VariantPtr
IceInternal::Handle< DatafieldRef > DatafieldRefPtr
::IceInternal::Handle<::armarx::VariantBase > VariantBasePtr
IceInternal::Handle< DataFieldIdentifier > DataFieldIdentifierPtr
Typedef of DataFieldIdentifierPtr as IceInternal::Handle<DataFieldIdentifier> for convenience.
IceInternal::Handle< LiteralImpl > LiteralImplPtr
Typedef of LiteralImplPtr as IceInternal::Handle<LiteralImpl> for convenience.
CheckIdentifier checkIdentifier