Source code for bspump.abc.connection
import abc
from bspump.asab import Configurable
[docs]
class Connection(abc.ABC, Configurable):
"""
Connection class is responsible for creating a connection between items or services within the infrastructure of BSPump.
Their main use is to create connection with the main components of BSPump: source, :meth:`processor <bspump.Processor()>` and sink.
|
"""
[docs]
def __init__(self, app, id=None, config=None):
"""
Description:
**Parameters**
app : Application
Specification of an `Application <https://asab.readthedocs.io/en/latest/asab/application.html#>`_.
id : default None
config : JSON or other compatible format, default None
It contains important information and data responsible for creating a connection.
"""
_id = id if id is not None else self.__class__.__name__
super().__init__("connection:{}".format(_id), config=config)
self.App = app
self.Loop = app.Loop
self.Id = _id
[docs]
def time(self):
"""
Returns accurate time of the asynchronous process.
:hint: More information in the ASAB documentation in `UTC Time <https://asab.readthedocs.io/en/latest/asab/application.html#utc-time>`_.
|
"""
return self.App.time()
[docs]
@classmethod
def construct(cls, app, definition: dict):
"""
Creates a connection based on a specific definition. For example, a JSON file.
**Parameters**
app : Application
ID of the `Application <https://asab.readthedocs.io/en/latest/asab/application.html#>_`.
definition : definition format
Defines instructions for the method that can be used to create a connection.
:return: cls(app, newid, config)
|
"""
newid = definition.get("id")
config = definition.get("config")
return cls(app, newid, config)