00001 #ifndef SCTARCHIVING_GETCOMMAND_H 00002 #define SCTARCHIVING_GETCOMMAND_H 00003 #include "Sct/Serializable.h" 00004 #include "ArchivingCommand.h" 00005 #include "Sct/IOName.h" 00006 00007 namespace SctArchiving{ 00012 class GetCommand : public ArchivingCommand { 00013 public: 00015 GetCommand(boost::shared_ptr<Sct::IOName> name); 00017 ~GetCommand() {} 00019 virtual shared_ptr<Sct::Serializable> getObject() const; 00021 const Sct::IOName& getIOName() const; 00023 ArchivingCommand& operator=(const ArchivingCommand& copyme); 00025 virtual void setName(boost::shared_ptr<Sct::IOName> name); 00026 protected: 00027 boost::shared_ptr<Sct::IOName> m_name; 00028 boost::shared_ptr<Sct::Serializable> m_ob; 00029 GetCommand(){} 00030 }; 00031 00032 inline GetCommand::GetCommand(boost::shared_ptr<Sct::IOName> name) 00033 : m_name(name) 00034 {} 00035 00036 inline boost::shared_ptr<Sct::Serializable> GetCommand::getObject() const { 00037 return m_ob; 00038 } 00039 00040 inline const Sct::IOName& GetCommand::getIOName() const { 00041 if (!m_name.get()) throw Sct::IllegalStateError("NoName!", __FILE__, __LINE__); 00042 return *m_name; 00043 } 00044 00045 inline void GetCommand::setName(boost::shared_ptr<Sct::IOName> name){ 00046 m_name=name; 00047 } 00048 } 00049 00050 #endif