HttpRequestTask.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #include "HttpRequestTask.h"
  2. #include "core/file.h"
  3. #include "core/oxygine.h"
  4. namespace oxygine
  5. {
  6. #if OX_NO_HTTP
  7. spHttpRequestTask HttpRequestTask::create()
  8. {
  9. return 0;
  10. }
  11. void HttpRequestTask::init(){}
  12. void HttpRequestTask::release(){}
  13. #endif
  14. HttpRequestTask::HttpRequestTask() :_loaded(0)
  15. {
  16. }
  17. HttpRequestTask::~HttpRequestTask()
  18. {
  19. log::messageln("~HttpRequestTask");
  20. }
  21. void HttpRequestTask::setPostData(const std::vector<unsigned char> &data)
  22. {
  23. _postData = data;
  24. _setPostData(data);
  25. }
  26. void HttpRequestTask::setUrl(const std::string &url)
  27. {
  28. _url = url;
  29. _setUrl(url);
  30. }
  31. void HttpRequestTask::setFileName(const std::string &name)
  32. {
  33. _fname = name;
  34. _setFileName(name);
  35. }
  36. const std::vector<unsigned char> &HttpRequestTask::getResponse() const
  37. {
  38. return _response;
  39. }
  40. void HttpRequestTask::getResponseSwap(std::vector<unsigned char> &r)
  41. {
  42. std::swap(r, _response);
  43. }
  44. const std::string& HttpRequestTask::getFileName() const
  45. {
  46. return _fname;
  47. }
  48. void HttpRequestTask::_prerun()
  49. {
  50. _loaded = 0;
  51. _response.clear();
  52. if (!_fname.empty())
  53. {
  54. file::deleteFile(_fname.c_str(), ep_ignore_error);
  55. }
  56. }
  57. void HttpRequestTask::dispatchProgress(int loaded, int total)
  58. {
  59. int delta = loaded - _loaded;
  60. _loaded = loaded;
  61. ProgressEvent event(delta, loaded, total);
  62. dispatchEvent(&event);
  63. }
  64. void HttpRequestTask::_onCustom(const ThreadMessages::message &msg)
  65. {
  66. dispatchProgress((size_t)msg.arg1, (size_t)msg.arg2);
  67. }
  68. void HttpRequestTask::progress(int loaded, int total)
  69. {
  70. if (!syncEvent(customID, (void*)loaded, (void*)total))
  71. {
  72. dispatchProgress(loaded, total);
  73. }
  74. }
  75. }