I have this class, the object manager, it looks like this:
My question is, what should I return if the object doesn't exist in the manager, what can my utility class use to determine a different course of action in case this happens?Code:class Object_Manager { public: Object_Manager(){} ~Object_Manager(){} typedef boost::shared_ptr<Object> Raw_Object; typedef std::map<std::string, Raw_Object> Objects; typedef boost::weak_ptr<Object> Data_Observer; Data_Observer Access_Object(std::string Filename) { Objects::iterator it = Managed_Objects.find(Filename); // check if the manager exists in the map if (it == Managed_Objects.end()) { // if not throw an error std::cout << "Object does not exist!" << std::endl; } else { // if so return a pointer to the manager return Data_Observer(it->second); } } int Add_Object(std::string Filename, Object * Obj) { Objects::iterator it = Managed_Objects.find(Filename); if(it == Managed_Objects.end()) { Managed_Objects.insert(std::make_pair(Filename, Obj)); } else { std::cout << "Object already exists" << std::endl; } } void Remove_Object(std::string Filename) { Objects::iterator it = Managed_Objects.find(Filename); if(it == Managed_Objects.end()) { std::cout << "Object does not exist, can't remove!" << std::endl; } else { Managed_Objects.erase(it); } } private: friend class boost::serialization::access; template<class Archive> void serialize(Archive & ar, const unsigned int version) { // serialize base class information ar & Managed_Objects; } Objects Managed_Objects; };



LinkBack URL
About LinkBacks



