00001 #include "IsInfoWrapper.h" 00002 #include "Sct/LogicErrors.h" 00003 #include "Sct/IoExceptions.h" 00004 #include "Sct/SctNames.h" 00005 #include <is/info.h> 00006 #include <is/infodictionary.h> 00007 #include <is/infoiterator.h> 00008 #include <is/inforeceiver.h> 00009 #include <is/infoT.h> 00010 00011 namespace SctCalibrationController { 00012 IsInfoWrapper::IsInfoWrapper(boost::shared_ptr<ISInfo> info) : wrapped(info){ 00013 } 00014 00015 IsInfoWrapper::~IsInfoWrapper(){} 00016 00017 boost::shared_ptr<const ISInfo> IsInfoWrapper::getWrapped() const{ 00018 return wrapped; 00019 } 00020 00021 boost::shared_ptr<ISInfo> IsInfoWrapper::getWrapped(){ 00022 return wrapped; 00023 } 00024 00025 void IsInfoWrapper::publishWrappedObject(const string& serverName) const { 00026 ISInfoDictionary& is = Sct::SctNames::getISDictionary(); 00027 string name=serverName; 00028 name+="."; 00029 name+=getClassName(); 00030 name+="."; 00031 name+=getUniqueID(); 00032 ISInfo::Status s = is.insert(name, const_cast<ISInfo&>(*getWrapped())); 00033 if (s != ISInfo::Success) throw Sct::IsException(s, name + " publish failed", __FILE__, __LINE__); 00034 } 00035 }