// // Http.h // Player Javascript // // Created by Anthony Liot on 23/11/12. // #ifndef __HTTP_H__ #define __HTTP_H__ #include #include /* */ class http { public: enum Status { ST_PENDING = 0, ST_FAILED, ST_OK }; enum RequestType { REQUEST_GET = 0, REQUEST_POST , }; enum AssyncMode { ASSYNC_THREAD }; // enregistrement sur unigine static void RegisterAsExtension(bool regis); // Callback static void onLoaded(void* parent, const char * file); static void onError(void* parent, int statuserror); static void onProgress(void* parent, int progress); // Constructeur http(const char* hostname, int requestType, const char* targetFileName = ""); //Destructeur virtual ~http(); /** * Effectue la requete */ void runRequest(const char* page, int assync); /** * Accede a la reponse */ const char* getContent(); /** * Accede a l'erreur */ const char* getError(); /** * Accede au status */ int getStatus(); /** * Accede a la progression */ float getProgress(); /** * Get Id of http Class */ int getId(); /** * */ void addValue(const char* key, const char* value); /** * Callback */ void onProgress(int progress); void onLoaded(const char* file); void onError(int error); // Static parameter static int uid; static std::string cross_domain ; private: // Id of request int _uid; // nom de l'hote std::string _hostname; // nom de la page std::string _page; // target filename std::string _targetFileName; // param std::string _param; // resultat std::string _content; // probleme std::string _error; // request type RequestType _request; // status int _status; // progress value int _progressValue; // mode assyncrone courant AssyncMode _assync; }; //this is safe and convenient but not exactly efficient inline std::string format(const char* fmt, ...){ int size = 512; char* buffer = 0; buffer = new char[size]; va_list vl; va_start(vl,fmt); int nsize = vsnprintf(buffer,size,fmt,vl); if(size<=nsize){//fail delete buffer and try again delete buffer; buffer = 0; buffer = new char[nsize+1];//+1 for /0 nsize = vsnprintf(buffer,size,fmt,vl); } std::string ret(buffer); va_end(vl); delete buffer; return ret; } #endif /* __HTTP_H__ */