33 template class ::IceInternal::Handle<::armarx::LiteralImpl>;
46 LiteralImpl::LiteralImpl() : impl(new
Impl)
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;