00001 #ifndef STUDIO_IG_FILE_FETCHER_H 00002 # define STUDIO_IG_FILE_FETCHER_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "Iguana/Studio/interface/config.h" 00007 # include "Iguana/Framework/interface/IgStateElement.h" 00008 # include <string> 00009 # include <map> 00010 00011 //<<<<<< PUBLIC DEFINES >>>>>> 00012 //<<<<<< PUBLIC CONSTANTS >>>>>> 00013 //<<<<<< PUBLIC TYPES >>>>>> 00014 00015 class IgFileProxy; 00016 00017 //<<<<<< PUBLIC VARIABLES >>>>>> 00018 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00019 //<<<<<< CLASS DECLARATIONS >>>>>> 00020 00021 class IGUANA_STUDIO_API IgFileFetcher: public IgStateElement 00022 { 00023 IG_DECLARE_STATE_ELEMENT (IgFileFetcher); 00024 public: 00025 IgFileFetcher (IgState *state); 00026 // implicit copy constructor 00027 // implicit assignment operator 00028 // implicit destructor 00029 ~IgFileFetcher (void); 00030 00031 std::string fetch (const std::string &file); 00032 00033 private: 00034 typedef std::map<std::string, IgFileProxy *> ProxyTable; 00035 IgFileProxy * getProxy (const std::string& protocol); 00036 00037 IgState *m_state; 00038 ProxyTable m_proxies; 00039 }; 00040 00041 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00042 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00043 00044 #endif // STUDIO_IG_FILE_FETCHER_H