Hello everyone, I was wondering about the usefulness of a manager class when all it really is is a wrapper to a map. Right now I'm using boost serialization to serialize the entire manager class because I find it easier to do that. But I'm wondering if I really need a manager class at all as opposed to just a simple container.. Can anyone shed some light on this issue?
Code:
class Object_Manager
{
public:
Object_Manager() {};
~Object_Manager() {};
typedef boost::shared_ptr<Object> Object_Ptr;
typedef boost::weak_ptr<Object> Object_Observer;
typedef std::map< std::string, Object_Ptr > Object_Map;
void Add_Object(const std::string & name, Object * pObject)
{
Object_Ptr Raw_Object(pObject);
mObjects.insert(std::make_pair(name, Raw_Object));
}
Object_Observer Request_Object(const std::string & name)
{
Object_Map::iterator it = mObjects.find(name);
if (it == mObjects.end())
{
std::cout << "Internal program error, " << name << " does not exist!" << std::endl;
}
else
{
return Object_Observer(it->second);
}
}
void Request_Object_Removal(const std::string & name)
{
Object_Map::iterator it = mObjects.find(name);
if (it != mObjects.end())
{
mObjects.erase(it);
}
}
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & mObjects;
}
Object_Map mObjects;
};
Do I really need this big ol class just to wrap a map? Or can I get away with just having maps and still be able to serialize them?