def handlePBBankTransaction(self, request, context):
        """in java, these are overloaded with different class types.
        GRPC doesn't allow same names so we name them as so
        handle<messagetype>()
        """

        publish_pb_message(request, loop)
        return ptac_pb2.Empty()
    def test_publish_pb_message(self):
        message = PBOrder()
        done_event = asyncio.Event()

        def listen(sender, signal, msg: PBOrder):
            assert msg == message
            done_event.set()

        dispatcher.connect(listen, signal="PBOrder")

        publish_pb_message(message)
        done_event.wait()
        # cleanup
        dispatcher.disconnect(listen, signal="PBOrder")
 def handlePBSimEnd(self, request, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBTimeslotUpdate(self, request, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBBalancingControlEvent(self, request, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBTariffRevoke(self, request, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBTariffTransaction(self, request, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBCustomerBootstrapData(self, request, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBBalanceReport(self, request, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBWeatherReport(self, request: ptac_pb2.PBWeatherReport,
                           context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBOrderbook(self, request: ptac_pb2.PBOrderbook, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBMarketTransaction(self, request: ptac_pb2.PBMarketTransaction,
                               context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBClearedTrade(self, request: ptac_pb2.PBClearedTrade, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBCompetition(self, request, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBProperties(self, request, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()
 def handlePBDistributionReport(self, request, context):
     publish_pb_message(request, loop)
     return ptac_pb2.Empty()