00001 00002 00003 00004 00005 #ifndef LOADER_W 00006 #define LOADER_W 00007 00008 #include "eleve/config.hpp" 00009 00010 #include <stdexcept> 00011 #include <string> 00012 #include <fstream> 00013 #include <utility> 00014 00015 namespace eepgwde { 00016 00021 namespace detail { 00022 00026 00033 struct loader { 00034 00035 struct Impl; 00036 friend struct Impl; 00037 00039 loader(const std::string & n) throw(std::exception); 00040 00042 char * get() throw(std::exception); 00043 00045 char * get0() throw(std::exception); 00046 00050 int line() const; 00051 00052 ~loader(); 00053 00054 protected: 00055 std::auto_ptr<Impl> impl; 00056 00057 }; 00058 00060 00061 }} 00062 00063 #endif