'The *context* argument specifies the ssl.SSLContext to use.
The *server_side* argument indicates whether this is a server side or
client side transport.
The optional *server_hostname* argument can be used to specify the
hostname you are connecting to. You may only specify this parameter if
the _ssl module supports Server Name Indication (SNI).'

def __init__(self, context, server_side, server_hostname=None):

    self._context = context
    self._server_side = server_side
    self._server_hostname = server_hostname
    self._state = _UNWRAPPED
    self._incoming = ssl.MemoryBIO()
    self._outgoing = ssl.MemoryBIO()
    self._sslobj = None
    self._need_ssldata = False
    self._handshake_cb = None
    self._shutdown_cb = None
