Esempio n. 1
0
 def onRIODrop(self, payload):
     try:
         req = Serialization.decode(payload)
         self.send_queue.put(req)
         self.pump_send_queue()
     except Serialization.DecodingException as e:
         print "Failed to decode dropped RPC request"
Esempio n. 2
0
 def handle_reply(self, src_addr, msg):
     print 'handle_reply'
     try:
         req = Serialization.decode(msg)
         self.recv_queue.put(req)
         self.pump_recv_queue()
     except Serialization.DecodingException as e:
         print 'failed to decode RPC reply'
Esempio n. 3
0
 def handle_request(self, src_addr, msg):
     try:
         req = Serialization.decode(msg)
         print 'handle_request: %r' % (req,)
         req = self.on_request(req, src_addr)
         out = Serialization.encode(req)
         if len(out) != 0 and req is not None:
             print 'replying to %d: %r' % (src_addr, req)
             self.RIOSend(src_addr, Protocol.CHITTER_RPC_REPLY, out)
     except Serialization.DecodingException as e:
         print 'failed to decode RPC request'
     except Serialization.EncodingException as e:
         print 'failed to encode RPC request'
Esempio n. 4
0
    def onRIOReceive(self, src_addr, protocol, byte_msg):
        if protocol != Protocol.PAXOS:
            return

        try:
            msg = Serialization.decode(byte_msg)
        except Serialization.DecodingException as e:
            # TODO(sumanvyj): better logging
            print "Failed to decode RPC reply."
            return

        try:
            handler = getattr(self, msg.kind.lower())
            handler(src_addr, msg)
        except AttributeError:
            print "Invalid paxos message kind:", msg.kind
            return
Esempio n. 5
0
 def _content_to_chits(self, content):
     try:
         return [Serialization.decode(line) for line in lines(content)]
     except Serialization.DecodingException as e:
         e.printStackTrace()
         return None