/*
File Name: ResourceManager.h
Created By: Andy Odle
Date: Oct 14, 2009

Description: 
    
    
*/

#ifndef ResourceManager_h
#define ResourceManager_h

#include <list>
using namespace std;

#include "./source/MVC/Model.h"
#include "./source/PlatformSpecific/inc/ErrorReport.h"

class Thing;

class ResourceManager : public Model
{
    public:
    
        ResourceManager();
        ~ResourceManager();
        
        void AddThing(Thing *something_p);
        void RemoveThing(Thing *something_p);
        
        // Input:
        //         -Takes a pointer to the thing to find.
        // 
        // Output:
        //         -Returns the thing if found.
        //         -Returns null if not found.
        Thing *Find(Thing *something_p);
        
        //-Iterator Functionality.-//

        // Output:
        //         -Returns the first thing if the list is not empty.
        //         -Returns null if there is no first thing or the list is empty.
        Thing *GetFristThing();
        
        // Output:
        //         -Returns the next thing in the list.
        //         -Returns null if there is no next thing or your at the end of the list.
        Thing *GetNextThing();            
        //-------------------------//
};

#endif
