StatisticWorker.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. require_once WORKERMAN_ROOT_DIR . 'man/Core/SocketWorker.php';
  3. /**
  4. *
  5. * @author walkor <worker-man@qq.com>
  6. */
  7. class StatisticWorker extends Man\Core\SocketWorker
  8. {
  9. public function dealInput($recv_str)
  10. {
  11. }
  12. public function dealProcess($recv_str)
  13. {
  14. }
  15. }
  16. /**
  17. *
  18. * struct statisticPortocol
  19. * {
  20. * unsigned char module_name_len;
  21. * unsigned char interface_name_len;
  22. * float cost_time_ms;
  23. * unsigned char $success;
  24. * int code;
  25. * unsigned short msg_len;
  26. * unsigned int time;
  27. * unsigned int ip;
  28. * char[module_name_len] module_name;
  29. * char[interface_name_len] interface_name;
  30. * char[msg_len] msg;
  31. * }
  32. *
  33. * @author valkor
  34. */
  35. class statisticProtocol
  36. {
  37. public static function encode($module, $interface , $cost_time_ms, $success, $code = 0,$msg = '')
  38. {
  39. $module_len = strlen($module);
  40. $interface_len = strlen($interface);
  41. $bin_data = pack("CC", $module_len, $interface_len);
  42. $bin_data .= self::FToN($cost_time_ms);
  43. $bin_data .= pack("C", $success);
  44. }
  45. public static function decode($bin_data)
  46. {
  47. }
  48. public static function IToN($val)
  49. {
  50. }
  51. public static function NToI($val)
  52. {
  53. $foo = unpack("N", $val);
  54. if($foo[1] > 0x7fffffff)
  55. {
  56. $foo[1] = 0 - (($foo[1] - 1) ^ 0xffffffff);
  57. }
  58. return $foo[1];
  59. }
  60. /* Convert float from HostOrder to Network Order */
  61. public static function FToN( $val )
  62. {
  63. $a = unpack("I",pack( "f",$val ));
  64. return pack("N",$a[1] );
  65. }
  66. /* Convert float from Network Order to HostOrder */
  67. public static function NToF($val )
  68. {
  69. $a = unpack("N",$val);
  70. $b = unpack("f",pack( "I",$a[1]));
  71. return $b[1];
  72. }
  73. }