netspeed.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * netspeed.cpp
  3. *
  4. * Created on: 2021年12月11日
  5. * Author: Admin
  6. */
  7. #include "netspeed.h"
  8. #include "utils/TimeHelper.h"
  9. #include "utils/Log.h"
  10. #include <system/Mutex.h>
  11. static Mutex sLock;
  12. netspeed::netspeed() {
  13. // TODO 自动生成的构造函数存根
  14. upSpeed = 0;
  15. downloadB = 0;
  16. uploadB = 0;
  17. loadSpeed = 0;
  18. lastTick =TimeHelper::getCurrentTime();
  19. }
  20. netspeed::~netspeed() {
  21. // TODO 自动生成的析构函数存根
  22. }
  23. void netspeed::getSpeed(int& up, int& down) {
  24. Mutex::Autolock l(sLock);
  25. long cur = TimeHelper::getCurrentTime();
  26. long dt = cur - lastTick;
  27. if((dt) >= 1000){
  28. //dt = dt;
  29. upSpeed = uploadB*1000/dt;
  30. loadSpeed = downloadB*1000/dt;
  31. uploadB =0;
  32. downloadB = 0;
  33. lastTick = cur;
  34. //LOGD("loadSpeed:%d downloadB:%d \n",upSpeed,loadSpeed);
  35. }
  36. up = upSpeed;
  37. down = loadSpeed;
  38. }
  39. void netspeed::add(int upload, int download) {
  40. Mutex::Autolock l(sLock);
  41. uploadB += upload;
  42. downloadB += download;
  43. }
  44. netspeed* netspeed::getInstance() {
  45. static netspeed* insta = 0;
  46. if(insta == 0){
  47. insta = new netspeed();
  48. }
  49. return insta;
  50. }