home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / mx / messaging / messages / MessagePerformanceUtils.as < prev   
Encoding:
Text File  |  2010-06-23  |  7.2 KB  |  254 lines

  1. package mx.messaging.messages
  2. {
  3.    public class MessagePerformanceUtils
  4.    {
  5.       public static const MPI_HEADER_IN:String = "DSMPII";
  6.       
  7.       public static const MPI_HEADER_OUT:String = "DSMPIO";
  8.       
  9.       public static const MPI_HEADER_PUSH:String = "DSMPIP";
  10.       
  11.       public var mpii:MessagePerformanceInfo;
  12.       
  13.       public var mpio:MessagePerformanceInfo;
  14.       
  15.       public var mpip:MessagePerformanceInfo;
  16.       
  17.       public function MessagePerformanceUtils(param1:Object)
  18.       {
  19.          super();
  20.          this.mpii = param1.headers[MPI_HEADER_IN] as MessagePerformanceInfo;
  21.          this.mpio = param1.headers[MPI_HEADER_OUT] as MessagePerformanceInfo;
  22.          if(mpio == null || mpii == null && param1.headers[MPI_HEADER_PUSH] == null)
  23.          {
  24.             throw new Error("Message is missing MPI headers.  Verify that all participants have it enabled.");
  25.          }
  26.          if(pushedMessageFlag)
  27.          {
  28.             this.mpip = param1.headers[MPI_HEADER_PUSH] as MessagePerformanceInfo;
  29.          }
  30.       }
  31.       
  32.       public function get serverPollDelay() : Number
  33.       {
  34.          if(mpip == null)
  35.          {
  36.             return 0;
  37.          }
  38.          if(mpip.serverPrePushTime == 0 || mpio.sendTime == 0)
  39.          {
  40.             return 0;
  41.          }
  42.          return mpio.sendTime - mpip.serverPrePushTime;
  43.       }
  44.       
  45.       public function get clientReceiveTime() : Number
  46.       {
  47.          return mpio.receiveTime;
  48.       }
  49.       
  50.       public function get serverPrePushTime() : Number
  51.       {
  52.          if(mpii == null)
  53.          {
  54.             return 0;
  55.          }
  56.          if(mpii.serverPrePushTime == 0)
  57.          {
  58.             return serverProcessingTime;
  59.          }
  60.          return mpii.serverPrePushTime - mpii.receiveTime;
  61.       }
  62.       
  63.       public function get pushOneWayTime() : Number
  64.       {
  65.          return clientReceiveTime - serverSendTime;
  66.       }
  67.       
  68.       public function prettyPrint() : String
  69.       {
  70.          var _loc1_:* = new String("");
  71.          if(messageSize != 0)
  72.          {
  73.             _loc1_ += "Original message size(B): " + messageSize + "\n";
  74.          }
  75.          if(responseMessageSize != 0)
  76.          {
  77.             _loc1_ += "Response message size(B): " + responseMessageSize + "\n";
  78.          }
  79.          if(totalTime != 0)
  80.          {
  81.             _loc1_ += "Total time (s): " + totalTime / 1000 + "\n";
  82.          }
  83.          if(networkRTT != 0)
  84.          {
  85.             _loc1_ += "Network Roundtrip time (s): " + networkRTT / 1000 + "\n";
  86.          }
  87.          if(serverProcessingTime != 0)
  88.          {
  89.             _loc1_ += "Server processing time (s): " + serverProcessingTime / 1000 + "\n";
  90.          }
  91.          if(serverAdapterTime != 0)
  92.          {
  93.             _loc1_ += "Server adapter time (s): " + serverAdapterTime / 1000 + "\n";
  94.          }
  95.          if(serverNonAdapterTime != 0)
  96.          {
  97.             _loc1_ += "Server non-adapter time (s): " + serverNonAdapterTime / 1000 + "\n";
  98.          }
  99.          if(serverAdapterExternalTime != 0)
  100.          {
  101.             _loc1_ += "Server adapter external time (s): " + serverAdapterExternalTime / 1000 + "\n";
  102.          }
  103.          if(pushedMessageFlag)
  104.          {
  105.             _loc1_ += "PUSHED MESSAGE INFORMATION:\n";
  106.             if(totalPushTime != 0)
  107.             {
  108.                _loc1_ += "Total push time (s): " + totalPushTime / 1000 + "\n";
  109.             }
  110.             if(pushOneWayTime != 0)
  111.             {
  112.                _loc1_ += "Push one way time (s): " + pushOneWayTime / 1000 + "\n";
  113.             }
  114.             if(originatingMessageSize != 0)
  115.             {
  116.                _loc1_ += "Originating Message size (B): " + originatingMessageSize + "\n";
  117.             }
  118.             if(serverPollDelay != 0)
  119.             {
  120.                _loc1_ += "Server poll delay (s): " + serverPollDelay / 1000 + "\n";
  121.             }
  122.          }
  123.          return _loc1_;
  124.       }
  125.       
  126.       public function get serverSendTime() : Number
  127.       {
  128.          return mpio.sendTime;
  129.       }
  130.       
  131.       public function get serverNonAdapterTime() : Number
  132.       {
  133.          return serverProcessingTime - serverAdapterTime;
  134.       }
  135.       
  136.       public function get pushedMessageFlag() : Boolean
  137.       {
  138.          return mpio.pushedFlag;
  139.       }
  140.       
  141.       public function get originatingMessageSentTime() : Number
  142.       {
  143.          return mpip.sendTime;
  144.       }
  145.       
  146.       public function get serverProcessingTime() : Number
  147.       {
  148.          if(pushedMessageFlag)
  149.          {
  150.             return mpip.serverPrePushTime - mpip.receiveTime;
  151.          }
  152.          return mpio.sendTime - mpii.receiveTime;
  153.       }
  154.       
  155.       public function get serverAdapterExternalTime() : Number
  156.       {
  157.          if(pushedMessageFlag)
  158.          {
  159.             if(mpip == null)
  160.             {
  161.                return 0;
  162.             }
  163.             if(mpip.serverPreAdapterExternalTime == 0 || mpip.serverPostAdapterExternalTime == 0)
  164.             {
  165.                return 0;
  166.             }
  167.             return mpip.serverPostAdapterExternalTime - mpip.serverPreAdapterExternalTime;
  168.          }
  169.          if(mpii == null)
  170.          {
  171.             return 0;
  172.          }
  173.          if(mpii.serverPreAdapterExternalTime == 0 || mpii.serverPostAdapterExternalTime == 0)
  174.          {
  175.             return 0;
  176.          }
  177.          return mpii.serverPostAdapterExternalTime - mpii.serverPreAdapterExternalTime;
  178.       }
  179.       
  180.       public function get responseMessageSize() : int
  181.       {
  182.          return mpio.messageSize;
  183.       }
  184.       
  185.       public function get messageSize() : int
  186.       {
  187.          if(mpii == null)
  188.          {
  189.             return 0;
  190.          }
  191.          return mpii.messageSize;
  192.       }
  193.       
  194.       public function get networkRTT() : Number
  195.       {
  196.          if(!pushedMessageFlag)
  197.          {
  198.             return totalTime - serverProcessingTime;
  199.          }
  200.          return 0;
  201.       }
  202.       
  203.       public function get totalTime() : Number
  204.       {
  205.          if(mpii == null)
  206.          {
  207.             return 0;
  208.          }
  209.          return mpio.receiveTime - mpii.sendTime;
  210.       }
  211.       
  212.       public function get totalPushTime() : Number
  213.       {
  214.          return clientReceiveTime - originatingMessageSentTime - pushedOverheadTime;
  215.       }
  216.       
  217.       public function get serverAdapterTime() : Number
  218.       {
  219.          if(pushedMessageFlag)
  220.          {
  221.             if(mpip == null)
  222.             {
  223.                return 0;
  224.             }
  225.             if(mpip.serverPreAdapterTime == 0 || mpip.serverPostAdapterTime == 0)
  226.             {
  227.                return 0;
  228.             }
  229.             return mpip.serverPostAdapterTime - mpip.serverPreAdapterTime;
  230.          }
  231.          if(mpii == null)
  232.          {
  233.             return 0;
  234.          }
  235.          if(mpii.serverPreAdapterTime == 0 || mpii.serverPostAdapterTime == 0)
  236.          {
  237.             return 0;
  238.          }
  239.          return mpii.serverPostAdapterTime - mpii.serverPreAdapterTime;
  240.       }
  241.       
  242.       private function get pushedOverheadTime() : Number
  243.       {
  244.          return mpip.overheadTime;
  245.       }
  246.       
  247.       public function get originatingMessageSize() : Number
  248.       {
  249.          return mpip.messageSize;
  250.       }
  251.    }
  252. }
  253.  
  254.