コード例 #1
0
 def finish(self):
     pyons.info(
         "===== client id={} finished:"
         "\n\t* requests sent     : {}/{}"
         "\n\t* responses received: {}"
         "".format(self.client_id, self.num_requests_sent,
                   self.max_requests, self.num_responses_received), self)
コード例 #2
0
def pong_handler(event, source=None):
    cmd = Message('PING', next(pyons.get_model().command_index))
    pyons.get_model().num_pings_generated += 1
    pyons.create_timeout(pyons.get_model().next_ping_timeout, cmd)
    pyons.info("received {}, sending {} in {} sec.".format(
        event, cmd, pyons.get_model().next_ping_timeout),
        sender="pong_handler")
コード例 #3
0
 def finish(self):
     pyons.info(
         "===== server finished:"
         "\n\t* requests received: {}"
         "\n\t* responses sent   : {}"
         "".format(self.num_requests_received, self.num_responses_sent),
         "Server")
コード例 #4
0
 def handle_response(self, event, source):
     if not isinstance(source, Server):
         raise RuntimeError("expected events from server only")
     self.num_responses_received += 1
     pyons.info("received {} from the server".format(event), self)
     self.next_request_timeout_id = pyons.create_timeout(
         self.request_interval, "timeout")
コード例 #5
0
 def generate(self, event, source):
     assert source is self and event == "timeout"
     client_id = self.next_client_id
     pyons.info("building a new client #{}".format(client_id), self)
     client = Client(client_id, self.server, self.max_requests,
                     self.request_interval)
     pyons.add_entity(client)
     self.next_timeout_id = pyons.create_timeout(self.timeout, "timeout")
     self.next_client_id += 1
コード例 #6
0
def finalize():
    m = pyons.get_model()
    pyons.info("PingPong is finished:", sender="finalize")
    print("\t+ pings generated:  {}".format(m.num_pings_generated))
    print("\t+ pongs generated:  {}".format(m.num_pongs_generated))
    print("\t+ events generated: {}".format(pyons.get_num_events_served()))

    events = ['{}@t={}'.format(envelope.event, envelope.time)
              for envelope in pyons.Dispatcher().events]
    print("\t+ resting events:   {}".format(events))
コード例 #7
0
 def _handle_slot_end(self):
     # STATISTICS ====>
     assert isinstance(self.tag_read_data, journal.TagReadRecord)
     assert isinstance(self.round_info, journal.InventoryRoundRecord)
     if self.tag_read_data.epc is not None:
         if self.tag_read_data.tid is not None:
             self.round_info.n_tid_reads += 1
         else:
             self.round_info.n_epc_only_reads += 1
         journal.Journal().write_tag_read(self.tag_read_data)
         pyons.info("** received tag: EPC={}, TID={}".format(
             self.tag_read_data.epc, self.tag_read_data.tid))
     self._slot_durations.append(pyons.time() - self._slot_started_at)
     self.tag_read_data = None
     # <===== END OF STATISTICS
     self._slot += 1
     if self._slot < 2**self.q:
         self._handle_slot_start()
     else:
         self._handle_round_end()
コード例 #8
0
def ping_handler(event, source=None):
    reply = Message('PONG', event.index)
    pyons.get_model().num_pongs_generated += 1
    pyons.create_timeout(pyons.get_model().reply_timeout, reply)
    pyons.info("received {}, sending {} in {} sec.".format(
        event, reply, pyons.get_model().reply_timeout), sender="ping_handler")
コード例 #9
0
def initialize():
    pyons.info("PingPong is initializing", sender="initialize")
    cmd = Message('PING', next(pyons.get_model().command_index))
    pyons.get_model().num_pings_generated += 1
    pyons.create_timeout(0, cmd)
コード例 #10
0
 def handle_event(self, event, source):
     self.num_requests_received += 1
     self.num_responses_sent += 1
     msg = ("pong", event[1], event[2])
     pyons.info("received {}, sending {}".format(event, msg), "Server")
     pyons.send_event(msg, source)
コード例 #11
0
 def send_next_ping(self):
     index = next(self.ping_index)
     pyons.info("sending ping #{} to the server".format(index), self)
     pyons.send_event(("ping", self.client_id, index), self.server)
     self.num_requests_sent += 1
     return index
コード例 #12
0
 def finish(self):
     pyons.info("===== generator finished:"
                "\n\t* clients generated: {}".format(self.next_client_id))