2014-06-28 13:45:22 +02:00
|
|
|
from routeros_api.api_communicator import async_decorator
|
2024-05-28 15:35:00 +02:00
|
|
|
from routeros_api.api_communicator import base
|
2014-06-28 13:35:01 +02:00
|
|
|
from routeros_api.api_communicator import encoding_decorator
|
2024-05-28 15:35:00 +02:00
|
|
|
from routeros_api.api_communicator import exception_decorator
|
2014-07-03 10:28:45 +02:00
|
|
|
from routeros_api.api_communicator import key_cleaner_decorator
|
2014-06-28 11:21:26 +02:00
|
|
|
|
2014-07-03 09:48:43 +02:00
|
|
|
|
|
|
|
class ApiCommunicator(encoding_decorator.EncodingApiCommunicator):
|
|
|
|
def __init__(self, base_api):
|
|
|
|
communicator = base.ApiCommunicatorBase(base_api)
|
2014-07-03 10:28:45 +02:00
|
|
|
|
|
|
|
key_cleaner_communicator = (
|
|
|
|
key_cleaner_decorator.KeyCleanerApiCommunicator(communicator))
|
|
|
|
|
2014-07-03 09:48:43 +02:00
|
|
|
self.exception_aware_communicator = (
|
2014-07-03 10:28:45 +02:00
|
|
|
exception_decorator.ExceptionAwareApiCommunicator(
|
|
|
|
key_cleaner_communicator))
|
|
|
|
|
2014-07-03 09:48:43 +02:00
|
|
|
async_communicator = async_decorator.AsyncApiCommunicator(
|
|
|
|
self.exception_aware_communicator)
|
2014-07-03 10:28:45 +02:00
|
|
|
|
2014-07-03 09:48:43 +02:00
|
|
|
super(ApiCommunicator, self).__init__(async_communicator)
|
|
|
|
|
|
|
|
def add_exception_handler(self, exception_handler):
|
|
|
|
self.exception_aware_communicator.add_handler(exception_handler)
|