示例#1
0
文件: Gen.py 项目: broly/HaloNet
 async def update_class_properties(self, class_name, properties_info):
     new_properties = dict()
     for prop in properties_info:
         if prop['Persistent']:
             new_properties[prop['Name']] = prop['Type']
     INFO_MSG("Updating properties for class %s" % class_name)
     await self.db.CreateClassTable(class_name, new_properties)
示例#2
0
    async def __ainit__(self, endpoint, client_handler_class):
        self.server = None  # encapsulates the server sockets
        self.endpoint = endpoint
        self.client_handler_class = client_handler_class

        self.clients = dict()  # task -> (reader, writer)

        await self.start()
        INFO_MSG("%s spawned" % self)
示例#3
0
    def accept_new_client(self, client_reader, client_writer):
        INFO_MSG("Server accepted client", client_writer)

        async def Task():
            peername = client_writer.transport._extra['peername']
            client = await TCPClient(peername, self.client_handler_class,
                                     False)
            self.clients[peername] = client
            client.accept(client_reader, client_writer)

        asyncio.Task(Task())
示例#4
0
    async def __ainit__(self,
                        endpoint,
                        client_handler_class=None,
                        do_open_connection=True):
        INFO_MSG("Created tcp client")
        self.endpoint = endpoint
        self.reader = None
        self.writer = None
        self.client_handler = client_handler_class(
            self) if client_handler_class else None

        self.clients.add(self)

        if do_open_connection:
            try:
                reader, writer = await asyncio.streams.open_connection(
                    self.endpoint[0], self.endpoint[1])
                self.accept(reader, writer)
            except ConnectionRefusedError:
                WARN_MSG("Connection refused: %s" % self)
示例#5
0
文件: AsyncObj.py 项目: broly/HaloNet
 def __del__(self):
     """ Calling __del__ calls async __adel__ later for async destruction actions """
     if self.async_initialized:
         INFO_MSG(f"Destroyed object {self}")
         asyncio.Task(self.__adel__())
示例#6
0
 async def start(self):
     INFO_MSG("Server start")
     await asyncio.streams.start_server(self.accept_new_client,
                                        self.endpoint[0],
                                        self.endpoint[1],
                                        loop=get_event_loop())
示例#7
0
 def accept(self, reader, writer):
     INFO_MSG("accepted", writer.transport._extra['peername'])
     self.reader = reader
     self.writer = writer
     asyncio.Task(self.client_loop())