Source code for vmware.vapi.protocol.server.transport.async_server_adapter_factory

#!/usr/bin/env python

"""
Async server adapter factory
"""

__author__ = 'VMware, Inc.'
__copyright__ = 'Copyright 2011-2012 VMware, Inc.  All rights reserved. -- VMware Confidential'

import logging
from vmware.vapi.lib.load import dynamic_import

logger = logging.getLogger(__name__)


[docs]class AsyncServerAdapterFactory(object): """ async server adapter factory """ def __init__(self): """ async server adapter factory init """ self.adapters = { # adapter name : constructor / constructor name 'http': 'vmware.vapi.protocol.server.transport.msg_handler.MsgBasedProtocolHandler', 'https': 'vmware.vapi.protocol.server.transport.msg_handler.MsgBasedProtocolHandler', }
[docs] def get_adapter(self, server_adapter_name, *args, **kwargs): """ get async server adapter :type server_adapter_name: :class:`str` :param server_adapter_name: server adapter name :type args: :class:`tuple` :param args: position parameters to server adapter :type kwargs: :class:`dict` :param kwargs: key parameters to server adapter :rtype: :class:`vmware.vapi.protocol.server.transport.async_protocol_handler.AsyncProtocolHandler` :return: Async server adapter """ constructor = self.adapters.get(server_adapter_name) if constructor is not None: constructor = dynamic_import(constructor) if constructor: return constructor(*args, **kwargs)