# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _cproton
else:
    import _cproton

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)



def pn_message_encode(msg, BIN_OUT):
    return _cproton.pn_message_encode(msg, BIN_OUT)

def pn_message_decode(msg, BIN_IN):
    return _cproton.pn_message_decode(msg, BIN_IN)

def pn_link_send(transport, BIN_IN):
    return _cproton.pn_link_send(transport, BIN_IN)

def pn_link_recv(link, BIN_OUT):
    return _cproton.pn_link_recv(link, BIN_OUT)

def pn_transport_push(transport, BIN_IN):
    return _cproton.pn_transport_push(transport, BIN_IN)

def pn_transport_peek(transport, BIN_OUT):
    return _cproton.pn_transport_peek(transport, BIN_OUT)

def pn_delivery(link, STRING):
    return _cproton.pn_delivery(link, STRING)

def pn_delivery_tag(delivery):
    return _cproton.pn_delivery_tag(delivery)

def pn_data_decode(data, BIN_IN):
    return _cproton.pn_data_decode(data, BIN_IN)

def pn_data_encode(data, BIN_OUT):
    return _cproton.pn_data_encode(data, BIN_OUT)

def pn_data_format(data, VTEXT_OUT):
    return _cproton.pn_data_format(data, VTEXT_OUT)

def pn_ssl_get_cipher_name(ssl, OUTPUT):
    return _cproton.pn_ssl_get_cipher_name(ssl, OUTPUT)

def pn_ssl_get_protocol_name(ssl, OUTPUT):
    return _cproton.pn_ssl_get_protocol_name(ssl, OUTPUT)

def pn_ssl_get_remote_subject_subfield(ssl, field):
    return _cproton.pn_ssl_get_remote_subject_subfield(ssl, field)

def pn_ssl_get_cert_fingerprint(ssl, OUTPUT, hash_alg):
    return _cproton.pn_ssl_get_cert_fingerprint(ssl, OUTPUT, hash_alg)

def pn_ssl_get_peer_hostname(ssl, VTEXT_OUT):
    return _cproton.pn_ssl_get_peer_hostname(ssl, VTEXT_OUT)

def pn_pyref_incref(object):
    return _cproton.pn_pyref_incref(object)

def pn_pyref_decref(object):
    return _cproton.pn_pyref_decref(object)

def pn_pyref_refcount(object):
    return _cproton.pn_pyref_refcount(object)

def pn_pyref_reify(object):
    return _cproton.pn_pyref_reify(object)

def pn_py2void(object):
    return _cproton.pn_py2void(object)

def pn_void2py(object):
    return _cproton.pn_void2py(object)

def pn_cast_pn_void(object):
    return _cproton.pn_cast_pn_void(object)

def pn_pytracer(transport, message):
    return _cproton.pn_pytracer(transport, message)

def pn_transport_set_pytracer(transport, obj):
    return _cproton.pn_transport_set_pytracer(transport, obj)

def pn_transport_get_pytracer(transport):
    return _cproton.pn_transport_get_pytracer(transport)
PROTON_IMPORT_EXPORT_H = _cproton.PROTON_IMPORT_EXPORT_H
PN_VERSION_MAJOR = _cproton.PN_VERSION_MAJOR
PN_VERSION_MINOR = _cproton.PN_VERSION_MINOR
PN_VERSION_POINT = _cproton.PN_VERSION_POINT
PROTON_TYPES_H = _cproton.PROTON_TYPES_H
PN_MILLIS_MAX = _cproton.PN_MILLIS_MAX

def pn_bytes(size, start):
    return _cproton.pn_bytes(size, start)

def pn_rwbytes(size, start):
    return _cproton.pn_rwbytes(size, start)
PROTON_OBJECT_H = _cproton.PROTON_OBJECT_H

def pn_class_id(clazz):
    return _cproton.pn_class_id(clazz)

def pn_class_name(clazz):
    return _cproton.pn_class_name(clazz)

def pn_class_new(clazz, size):
    return _cproton.pn_class_new(clazz, size)

def pn_class_incref(clazz, object):
    return _cproton.pn_class_incref(clazz, object)

def pn_class_refcount(clazz, object):
    return _cproton.pn_class_refcount(clazz, object)

def pn_class_decref(clazz, object):
    return _cproton.pn_class_decref(clazz, object)

def pn_class_free(clazz, object):
    return _cproton.pn_class_free(clazz, object)

def pn_class_reify(clazz, object):
    return _cproton.pn_class_reify(clazz, object)

def pn_class_hashcode(clazz, object):
    return _cproton.pn_class_hashcode(clazz, object)

def pn_class_compare(clazz, a, b):
    return _cproton.pn_class_compare(clazz, a, b)

def pn_class_equals(clazz, a, b):
    return _cproton.pn_class_equals(clazz, a, b)

def pn_class_inspect(clazz, object, dst):
    return _cproton.pn_class_inspect(clazz, object, dst)

def pn_void_new(clazz, size):
    return _cproton.pn_void_new(clazz, size)

def pn_void_incref(object):
    return _cproton.pn_void_incref(object)

def pn_void_decref(object):
    return _cproton.pn_void_decref(object)

def pn_void_refcount(object):
    return _cproton.pn_void_refcount(object)

def pn_void_hashcode(object):
    return _cproton.pn_void_hashcode(object)

def pn_void_compare(a, b):
    return _cproton.pn_void_compare(a, b)

def pn_void_inspect(object, dst):
    return _cproton.pn_void_inspect(object, dst)

def pn_object_new(clazz, size):
    return _cproton.pn_object_new(clazz, size)

def pn_object_reify(object):
    return _cproton.pn_object_reify(object)

def pn_object_incref(object):
    return _cproton.pn_object_incref(object)

def pn_object_refcount(object):
    return _cproton.pn_object_refcount(object)

def pn_object_decref(object):
    return _cproton.pn_object_decref(object)

def pn_object_free(object):
    return _cproton.pn_object_free(object)

def pn_incref(object):
    return _cproton.pn_incref(object)

def pn_decref(object):
    return _cproton.pn_decref(object)

def pn_refcount(object):
    return _cproton.pn_refcount(object)

def pn_free(object):
    return _cproton.pn_free(object)

def pn_class(object):
    return _cproton.pn_class(object)

def pn_hashcode(object):
    return _cproton.pn_hashcode(object)

def pn_compare(a, b):
    return _cproton.pn_compare(a, b)

def pn_equals(a, b):
    return _cproton.pn_equals(a, b)

def pn_inspect(object, dst):
    return _cproton.pn_inspect(object, dst)
PN_REFCOUNT = _cproton.PN_REFCOUNT
PN_REFCOUNT_KEY = _cproton.PN_REFCOUNT_KEY
PN_REFCOUNT_VALUE = _cproton.PN_REFCOUNT_VALUE

def pn_string(bytes):
    return _cproton.pn_string(bytes)

def pn_string_get(string):
    return _cproton.pn_string_get(string)

def pn_record():
    return _cproton.pn_record()

def pn_record_def(record, key, clazz):
    return _cproton.pn_record_def(record, key, clazz)

def pn_record_has(record, key):
    return _cproton.pn_record_has(record, key)

def pn_record_get(record, key):
    return _cproton.pn_record_get(record, key)

def pn_record_set(record, key, value):
    return _cproton.pn_record_set(record, key, value)

def pn_record_clear(record):
    return _cproton.pn_record_clear(record)
PROTON_ERROR_H = _cproton.PROTON_ERROR_H
PN_OK = _cproton.PN_OK
PN_EOS = _cproton.PN_EOS
PN_ERR = _cproton.PN_ERR
PN_OVERFLOW = _cproton.PN_OVERFLOW
PN_UNDERFLOW = _cproton.PN_UNDERFLOW
PN_STATE_ERR = _cproton.PN_STATE_ERR
PN_ARG_ERR = _cproton.PN_ARG_ERR
PN_TIMEOUT = _cproton.PN_TIMEOUT
PN_INTR = _cproton.PN_INTR
PN_INPROGRESS = _cproton.PN_INPROGRESS
PN_OUT_OF_MEMORY = _cproton.PN_OUT_OF_MEMORY
PN_ABORTED = _cproton.PN_ABORTED

def pn_code(code):
    return _cproton.pn_code(code)

def pn_error():
    return _cproton.pn_error()

def pn_error_free(error):
    return _cproton.pn_error_free(error)

def pn_error_clear(error):
    return _cproton.pn_error_clear(error)

def pn_error_set(error, code, text):
    return _cproton.pn_error_set(error, code, text)

def pn_error_code(error):
    return _cproton.pn_error_code(error)

def pn_error_text(error):
    return _cproton.pn_error_text(error)

def pn_error_copy(error, src):
    return _cproton.pn_error_copy(error, src)
PROTON_CONDITION_H = _cproton.PROTON_CONDITION_H

def pn_condition_is_set(condition):
    return _cproton.pn_condition_is_set(condition)

def pn_condition_clear(condition):
    return _cproton.pn_condition_clear(condition)

def pn_condition_get_name(condition):
    return _cproton.pn_condition_get_name(condition)

def pn_condition_set_name(condition, name):
    return _cproton.pn_condition_set_name(condition, name)

def pn_condition_get_description(condition):
    return _cproton.pn_condition_get_description(condition)

def pn_condition_set_description(condition, description):
    return _cproton.pn_condition_set_description(condition, description)

def pn_condition_info(condition):
    return _cproton.pn_condition_info(condition)

def pn_condition_is_redirect(condition):
    return _cproton.pn_condition_is_redirect(condition)

def pn_condition_redirect_host(condition):
    return _cproton.pn_condition_redirect_host(condition)

def pn_condition_redirect_port(condition):
    return _cproton.pn_condition_redirect_port(condition)

def pn_condition_copy(dest, src):
    return _cproton.pn_condition_copy(dest, src)

def pn_condition():
    return _cproton.pn_condition()

def pn_condition_free(arg1):
    return _cproton.pn_condition_free(arg1)
PROTON_CONNECTION_H = _cproton.PROTON_CONNECTION_H
PN_LOCAL_UNINIT = _cproton.PN_LOCAL_UNINIT
PN_LOCAL_ACTIVE = _cproton.PN_LOCAL_ACTIVE
PN_LOCAL_CLOSED = _cproton.PN_LOCAL_CLOSED
PN_REMOTE_UNINIT = _cproton.PN_REMOTE_UNINIT
PN_REMOTE_ACTIVE = _cproton.PN_REMOTE_ACTIVE
PN_REMOTE_CLOSED = _cproton.PN_REMOTE_CLOSED
PN_LOCAL_MASK = _cproton.PN_LOCAL_MASK
PN_REMOTE_MASK = _cproton.PN_REMOTE_MASK

def pn_connection():
    return _cproton.pn_connection()

def pn_connection_free(connection):
    return _cproton.pn_connection_free(connection)

def pn_connection_release(connection):
    return _cproton.pn_connection_release(connection)

def pn_connection_error(connection):
    return _cproton.pn_connection_error(connection)

def pn_connection_collect(connection, collector):
    return _cproton.pn_connection_collect(connection, collector)

def pn_connection_collector(connection):
    return _cproton.pn_connection_collector(connection)

def pn_connection_get_context(connection):
    return _cproton.pn_connection_get_context(connection)

def pn_connection_set_context(connection, context):
    return _cproton.pn_connection_set_context(connection, context)

def pn_connection_attachments(connection):
    return _cproton.pn_connection_attachments(connection)

def pn_connection_state(connection):
    return _cproton.pn_connection_state(connection)

def pn_connection_open(connection):
    return _cproton.pn_connection_open(connection)

def pn_connection_close(connection):
    return _cproton.pn_connection_close(connection)

def pn_connection_reset(connection):
    return _cproton.pn_connection_reset(connection)

def pn_connection_condition(connection):
    return _cproton.pn_connection_condition(connection)

def pn_connection_remote_condition(connection):
    return _cproton.pn_connection_remote_condition(connection)

def pn_connection_get_container(connection):
    return _cproton.pn_connection_get_container(connection)

def pn_connection_set_container(connection, container):
    return _cproton.pn_connection_set_container(connection, container)

def pn_connection_set_user(connection, user):
    return _cproton.pn_connection_set_user(connection, user)

def pn_connection_set_password(connection, password):
    return _cproton.pn_connection_set_password(connection, password)

def pn_connection_set_authorization(connection, authzid):
    return _cproton.pn_connection_set_authorization(connection, authzid)

def pn_connection_get_user(connection):
    return _cproton.pn_connection_get_user(connection)

def pn_connection_get_authorization(connection):
    return _cproton.pn_connection_get_authorization(connection)

def pn_connection_get_hostname(connection):
    return _cproton.pn_connection_get_hostname(connection)

def pn_connection_set_hostname(connection, hostname):
    return _cproton.pn_connection_set_hostname(connection, hostname)

def pn_connection_remote_container(connection):
    return _cproton.pn_connection_remote_container(connection)

def pn_connection_remote_hostname(connection):
    return _cproton.pn_connection_remote_hostname(connection)

def pn_connection_offered_capabilities(connection):
    return _cproton.pn_connection_offered_capabilities(connection)

def pn_connection_desired_capabilities(connection):
    return _cproton.pn_connection_desired_capabilities(connection)

def pn_connection_properties(connection):
    return _cproton.pn_connection_properties(connection)

def pn_connection_remote_offered_capabilities(connection):
    return _cproton.pn_connection_remote_offered_capabilities(connection)

def pn_connection_remote_desired_capabilities(connection):
    return _cproton.pn_connection_remote_desired_capabilities(connection)

def pn_connection_remote_properties(connection):
    return _cproton.pn_connection_remote_properties(connection)

def pn_connection_transport(connection):
    return _cproton.pn_connection_transport(connection)
PROTON_SESSION_H = _cproton.PROTON_SESSION_H

def pn_session(connection):
    return _cproton.pn_session(connection)

def pn_session_free(session):
    return _cproton.pn_session_free(session)

def pn_session_get_context(session):
    return _cproton.pn_session_get_context(session)

def pn_session_set_context(session, context):
    return _cproton.pn_session_set_context(session, context)

def pn_session_attachments(session):
    return _cproton.pn_session_attachments(session)

def pn_session_state(session):
    return _cproton.pn_session_state(session)

def pn_session_error(session):
    return _cproton.pn_session_error(session)

def pn_session_condition(session):
    return _cproton.pn_session_condition(session)

def pn_session_remote_condition(session):
    return _cproton.pn_session_remote_condition(session)

def pn_session_connection(session):
    return _cproton.pn_session_connection(session)

def pn_session_open(session):
    return _cproton.pn_session_open(session)

def pn_session_close(session):
    return _cproton.pn_session_close(session)

def pn_session_get_incoming_capacity(session):
    return _cproton.pn_session_get_incoming_capacity(session)

def pn_session_set_incoming_capacity(session, capacity):
    return _cproton.pn_session_set_incoming_capacity(session, capacity)

def pn_session_get_outgoing_window(session):
    return _cproton.pn_session_get_outgoing_window(session)

def pn_session_set_outgoing_window(session, window):
    return _cproton.pn_session_set_outgoing_window(session, window)

def pn_session_outgoing_bytes(session):
    return _cproton.pn_session_outgoing_bytes(session)

def pn_session_incoming_bytes(session):
    return _cproton.pn_session_incoming_bytes(session)

def pn_session_head(connection, state):
    return _cproton.pn_session_head(connection, state)

def pn_session_next(session, state):
    return _cproton.pn_session_next(session, state)
PROTON_LINK_H = _cproton.PROTON_LINK_H

def pn_sender(session, name):
    return _cproton.pn_sender(session, name)

def pn_receiver(session, name):
    return _cproton.pn_receiver(session, name)

def pn_link_free(link):
    return _cproton.pn_link_free(link)

def pn_link_get_context(link):
    return _cproton.pn_link_get_context(link)

def pn_link_set_context(link, context):
    return _cproton.pn_link_set_context(link, context)

def pn_link_attachments(link):
    return _cproton.pn_link_attachments(link)

def pn_link_name(link):
    return _cproton.pn_link_name(link)

def pn_link_is_sender(link):
    return _cproton.pn_link_is_sender(link)

def pn_link_is_receiver(link):
    return _cproton.pn_link_is_receiver(link)

def pn_link_state(link):
    return _cproton.pn_link_state(link)

def pn_link_error(link):
    return _cproton.pn_link_error(link)

def pn_link_condition(link):
    return _cproton.pn_link_condition(link)

def pn_link_remote_condition(link):
    return _cproton.pn_link_remote_condition(link)

def pn_link_session(link):
    return _cproton.pn_link_session(link)

def pn_link_head(connection, state):
    return _cproton.pn_link_head(connection, state)

def pn_link_next(link, state):
    return _cproton.pn_link_next(link, state)

def pn_link_open(link):
    return _cproton.pn_link_open(link)

def pn_link_close(link):
    return _cproton.pn_link_close(link)

def pn_link_detach(link):
    return _cproton.pn_link_detach(link)

def pn_link_source(link):
    return _cproton.pn_link_source(link)

def pn_link_target(link):
    return _cproton.pn_link_target(link)

def pn_link_remote_source(link):
    return _cproton.pn_link_remote_source(link)

def pn_link_remote_target(link):
    return _cproton.pn_link_remote_target(link)

def pn_link_current(link):
    return _cproton.pn_link_current(link)

def pn_link_advance(link):
    return _cproton.pn_link_advance(link)

def pn_link_credit(link):
    return _cproton.pn_link_credit(link)

def pn_link_queued(link):
    return _cproton.pn_link_queued(link)

def pn_link_remote_credit(link):
    return _cproton.pn_link_remote_credit(link)

def pn_link_get_drain(link):
    return _cproton.pn_link_get_drain(link)

def pn_link_drained(link):
    return _cproton.pn_link_drained(link)

def pn_link_available(link):
    return _cproton.pn_link_available(link)
PN_SND_UNSETTLED = _cproton.PN_SND_UNSETTLED
PN_SND_SETTLED = _cproton.PN_SND_SETTLED
PN_SND_MIXED = _cproton.PN_SND_MIXED
PN_RCV_FIRST = _cproton.PN_RCV_FIRST
PN_RCV_SECOND = _cproton.PN_RCV_SECOND

def pn_link_snd_settle_mode(link):
    return _cproton.pn_link_snd_settle_mode(link)

def pn_link_rcv_settle_mode(link):
    return _cproton.pn_link_rcv_settle_mode(link)

def pn_link_set_snd_settle_mode(link, mode):
    return _cproton.pn_link_set_snd_settle_mode(link, mode)

def pn_link_set_rcv_settle_mode(link, mode):
    return _cproton.pn_link_set_rcv_settle_mode(link, mode)

def pn_link_remote_snd_settle_mode(link):
    return _cproton.pn_link_remote_snd_settle_mode(link)

def pn_link_remote_rcv_settle_mode(link):
    return _cproton.pn_link_remote_rcv_settle_mode(link)

def pn_link_unsettled(link):
    return _cproton.pn_link_unsettled(link)

def pn_unsettled_head(link):
    return _cproton.pn_unsettled_head(link)

def pn_unsettled_next(delivery):
    return _cproton.pn_unsettled_next(delivery)

def pn_link_offered(sender, credit):
    return _cproton.pn_link_offered(sender, credit)

def pn_link_flow(receiver, credit):
    return _cproton.pn_link_flow(receiver, credit)

def pn_link_drain(receiver, credit):
    return _cproton.pn_link_drain(receiver, credit)

def pn_link_set_drain(receiver, drain):
    return _cproton.pn_link_set_drain(receiver, drain)

def pn_link_draining(receiver):
    return _cproton.pn_link_draining(receiver)

def pn_link_max_message_size(link):
    return _cproton.pn_link_max_message_size(link)

def pn_link_set_max_message_size(link, size):
    return _cproton.pn_link_set_max_message_size(link, size)

def pn_link_remote_max_message_size(link):
    return _cproton.pn_link_remote_max_message_size(link)

def pn_link_properties(link):
    return _cproton.pn_link_properties(link)

def pn_link_remote_properties(link):
    return _cproton.pn_link_remote_properties(link)
PROTON_TERMINUS_H = _cproton.PROTON_TERMINUS_H
PN_UNSPECIFIED = _cproton.PN_UNSPECIFIED
PN_SOURCE = _cproton.PN_SOURCE
PN_TARGET = _cproton.PN_TARGET
PN_COORDINATOR = _cproton.PN_COORDINATOR
PN_NONDURABLE = _cproton.PN_NONDURABLE
PN_CONFIGURATION = _cproton.PN_CONFIGURATION
PN_DELIVERIES = _cproton.PN_DELIVERIES
PN_EXPIRE_WITH_LINK = _cproton.PN_EXPIRE_WITH_LINK
PN_EXPIRE_WITH_SESSION = _cproton.PN_EXPIRE_WITH_SESSION
PN_EXPIRE_WITH_CONNECTION = _cproton.PN_EXPIRE_WITH_CONNECTION
PN_EXPIRE_NEVER = _cproton.PN_EXPIRE_NEVER
PN_DIST_MODE_UNSPECIFIED = _cproton.PN_DIST_MODE_UNSPECIFIED
PN_DIST_MODE_COPY = _cproton.PN_DIST_MODE_COPY
PN_DIST_MODE_MOVE = _cproton.PN_DIST_MODE_MOVE

def pn_terminus_get_type(terminus):
    return _cproton.pn_terminus_get_type(terminus)

def pn_terminus_set_type(terminus, type):
    return _cproton.pn_terminus_set_type(terminus, type)

def pn_terminus_get_address(terminus):
    return _cproton.pn_terminus_get_address(terminus)

def pn_terminus_set_address(terminus, address):
    return _cproton.pn_terminus_set_address(terminus, address)

def pn_terminus_get_distribution_mode(terminus):
    return _cproton.pn_terminus_get_distribution_mode(terminus)

def pn_terminus_set_distribution_mode(terminus, mode):
    return _cproton.pn_terminus_set_distribution_mode(terminus, mode)

def pn_terminus_get_durability(terminus):
    return _cproton.pn_terminus_get_durability(terminus)

def pn_terminus_set_durability(terminus, durability):
    return _cproton.pn_terminus_set_durability(terminus, durability)

def pn_terminus_get_expiry_policy(terminus):
    return _cproton.pn_terminus_get_expiry_policy(terminus)

def pn_terminus_has_expiry_policy(terminus):
    return _cproton.pn_terminus_has_expiry_policy(terminus)

def pn_terminus_set_expiry_policy(terminus, policy):
    return _cproton.pn_terminus_set_expiry_policy(terminus, policy)

def pn_terminus_get_timeout(terminus):
    return _cproton.pn_terminus_get_timeout(terminus)

def pn_terminus_set_timeout(terminus, timeout):
    return _cproton.pn_terminus_set_timeout(terminus, timeout)

def pn_terminus_is_dynamic(terminus):
    return _cproton.pn_terminus_is_dynamic(terminus)

def pn_terminus_set_dynamic(terminus, dynamic):
    return _cproton.pn_terminus_set_dynamic(terminus, dynamic)

def pn_terminus_properties(terminus):
    return _cproton.pn_terminus_properties(terminus)

def pn_terminus_capabilities(terminus):
    return _cproton.pn_terminus_capabilities(terminus)

def pn_terminus_outcomes(terminus):
    return _cproton.pn_terminus_outcomes(terminus)

def pn_terminus_filter(terminus):
    return _cproton.pn_terminus_filter(terminus)

def pn_terminus_copy(terminus, src):
    return _cproton.pn_terminus_copy(terminus, src)
PROTON_DELIVERY_H = _cproton.PROTON_DELIVERY_H

def pn_delivery_get_context(delivery):
    return _cproton.pn_delivery_get_context(delivery)

def pn_delivery_set_context(delivery, context):
    return _cproton.pn_delivery_set_context(delivery, context)

def pn_delivery_attachments(delivery):
    return _cproton.pn_delivery_attachments(delivery)

def pn_delivery_link(delivery):
    return _cproton.pn_delivery_link(delivery)

def pn_delivery_local(delivery):
    return _cproton.pn_delivery_local(delivery)

def pn_delivery_local_state(delivery):
    return _cproton.pn_delivery_local_state(delivery)

def pn_delivery_remote(delivery):
    return _cproton.pn_delivery_remote(delivery)

def pn_delivery_remote_state(delivery):
    return _cproton.pn_delivery_remote_state(delivery)

def pn_delivery_settled(delivery):
    return _cproton.pn_delivery_settled(delivery)

def pn_delivery_pending(delivery):
    return _cproton.pn_delivery_pending(delivery)

def pn_delivery_partial(delivery):
    return _cproton.pn_delivery_partial(delivery)

def pn_delivery_aborted(delivery):
    return _cproton.pn_delivery_aborted(delivery)

def pn_delivery_writable(delivery):
    return _cproton.pn_delivery_writable(delivery)

def pn_delivery_readable(delivery):
    return _cproton.pn_delivery_readable(delivery)

def pn_delivery_updated(delivery):
    return _cproton.pn_delivery_updated(delivery)

def pn_delivery_update(delivery, state):
    return _cproton.pn_delivery_update(delivery, state)

def pn_delivery_clear(delivery):
    return _cproton.pn_delivery_clear(delivery)

def pn_delivery_current(delivery):
    return _cproton.pn_delivery_current(delivery)

def pn_delivery_abort(delivery):
    return _cproton.pn_delivery_abort(delivery)

def pn_delivery_settle(delivery):
    return _cproton.pn_delivery_settle(delivery)

def pn_delivery_dump(delivery):
    return _cproton.pn_delivery_dump(delivery)

def pn_delivery_buffered(delivery):
    return _cproton.pn_delivery_buffered(delivery)

def pn_work_head(connection):
    return _cproton.pn_work_head(connection)

def pn_work_next(delivery):
    return _cproton.pn_work_next(delivery)
PROTON_DISPOSITION_H = _cproton.PROTON_DISPOSITION_H
PN_RECEIVED = _cproton.PN_RECEIVED
PN_ACCEPTED = _cproton.PN_ACCEPTED
PN_REJECTED = _cproton.PN_REJECTED
PN_RELEASED = _cproton.PN_RELEASED
PN_MODIFIED = _cproton.PN_MODIFIED

def pn_disposition_type(disposition):
    return _cproton.pn_disposition_type(disposition)

def pn_disposition_type_name(disposition_type):
    return _cproton.pn_disposition_type_name(disposition_type)

def pn_disposition_condition(disposition):
    return _cproton.pn_disposition_condition(disposition)

def pn_disposition_data(disposition):
    return _cproton.pn_disposition_data(disposition)

def pn_disposition_get_section_number(disposition):
    return _cproton.pn_disposition_get_section_number(disposition)

def pn_disposition_set_section_number(disposition, section_number):
    return _cproton.pn_disposition_set_section_number(disposition, section_number)

def pn_disposition_get_section_offset(disposition):
    return _cproton.pn_disposition_get_section_offset(disposition)

def pn_disposition_set_section_offset(disposition, section_offset):
    return _cproton.pn_disposition_set_section_offset(disposition, section_offset)

def pn_disposition_is_failed(disposition):
    return _cproton.pn_disposition_is_failed(disposition)

def pn_disposition_set_failed(disposition, failed):
    return _cproton.pn_disposition_set_failed(disposition, failed)

def pn_disposition_is_undeliverable(disposition):
    return _cproton.pn_disposition_is_undeliverable(disposition)

def pn_disposition_set_undeliverable(disposition, undeliverable):
    return _cproton.pn_disposition_set_undeliverable(disposition, undeliverable)

def pn_disposition_annotations(disposition):
    return _cproton.pn_disposition_annotations(disposition)
PROTON_TRANSPORT_H = _cproton.PROTON_TRANSPORT_H
PN_TRACE_OFF = _cproton.PN_TRACE_OFF
PN_TRACE_RAW = _cproton.PN_TRACE_RAW
PN_TRACE_FRM = _cproton.PN_TRACE_FRM
PN_TRACE_DRV = _cproton.PN_TRACE_DRV
PN_TRACE_EVT = _cproton.PN_TRACE_EVT

def pn_transport():
    return _cproton.pn_transport()

def pn_transport_set_server(transport):
    return _cproton.pn_transport_set_server(transport)

def pn_transport_free(transport):
    return _cproton.pn_transport_free(transport)

def pn_transport_get_user(transport):
    return _cproton.pn_transport_get_user(transport)

def pn_transport_require_auth(transport, required):
    return _cproton.pn_transport_require_auth(transport, required)

def pn_transport_is_authenticated(transport):
    return _cproton.pn_transport_is_authenticated(transport)

def pn_transport_require_encryption(transport, required):
    return _cproton.pn_transport_require_encryption(transport, required)

def pn_transport_is_encrypted(transport):
    return _cproton.pn_transport_is_encrypted(transport)

def pn_transport_condition(transport):
    return _cproton.pn_transport_condition(transport)

def pn_transport_logger(transport):
    return _cproton.pn_transport_logger(transport)

def pn_transport_error(transport):
    return _cproton.pn_transport_error(transport)

def pn_transport_bind(transport, connection):
    return _cproton.pn_transport_bind(transport, connection)

def pn_transport_unbind(transport):
    return _cproton.pn_transport_unbind(transport)

def pn_transport_trace(transport, trace):
    return _cproton.pn_transport_trace(transport, trace)

def pn_transport_set_tracer(transport, tracer):
    return _cproton.pn_transport_set_tracer(transport, tracer)

def pn_transport_get_tracer(transport):
    return _cproton.pn_transport_get_tracer(transport)

def pn_transport_get_context(transport):
    return _cproton.pn_transport_get_context(transport)

def pn_transport_set_context(transport, context):
    return _cproton.pn_transport_set_context(transport, context)

def pn_transport_attachments(transport):
    return _cproton.pn_transport_attachments(transport)

def pn_transport_log(transport, message):
    return _cproton.pn_transport_log(transport, message)

def pn_transport_logf(*args):
    return _cproton.pn_transport_logf(*args)

def pn_transport_get_channel_max(transport):
    return _cproton.pn_transport_get_channel_max(transport)

def pn_transport_set_channel_max(transport, channel_max):
    return _cproton.pn_transport_set_channel_max(transport, channel_max)

def pn_transport_remote_channel_max(transport):
    return _cproton.pn_transport_remote_channel_max(transport)

def pn_transport_get_max_frame(transport):
    return _cproton.pn_transport_get_max_frame(transport)

def pn_transport_set_max_frame(transport, size):
    return _cproton.pn_transport_set_max_frame(transport, size)

def pn_transport_get_remote_max_frame(transport):
    return _cproton.pn_transport_get_remote_max_frame(transport)

def pn_transport_get_idle_timeout(transport):
    return _cproton.pn_transport_get_idle_timeout(transport)

def pn_transport_set_idle_timeout(transport, timeout):
    return _cproton.pn_transport_set_idle_timeout(transport, timeout)

def pn_transport_get_remote_idle_timeout(transport):
    return _cproton.pn_transport_get_remote_idle_timeout(transport)

def pn_transport_input(transport, bytes, available):
    return _cproton.pn_transport_input(transport, bytes, available)

def pn_transport_output(transport, bytes, size):
    return _cproton.pn_transport_output(transport, bytes, size)

def pn_transport_capacity(transport):
    return _cproton.pn_transport_capacity(transport)

def pn_transport_tail(transport):
    return _cproton.pn_transport_tail(transport)

def pn_transport_process(transport, size):
    return _cproton.pn_transport_process(transport, size)

def pn_transport_close_tail(transport):
    return _cproton.pn_transport_close_tail(transport)

def pn_transport_pending(transport):
    return _cproton.pn_transport_pending(transport)

def pn_transport_head(transport):
    return _cproton.pn_transport_head(transport)

def pn_transport_pop(transport, size):
    return _cproton.pn_transport_pop(transport, size)

def pn_transport_close_head(transport):
    return _cproton.pn_transport_close_head(transport)

def pn_transport_quiesced(transport):
    return _cproton.pn_transport_quiesced(transport)

def pn_transport_head_closed(transport):
    return _cproton.pn_transport_head_closed(transport)

def pn_transport_tail_closed(transport):
    return _cproton.pn_transport_tail_closed(transport)

def pn_transport_closed(transport):
    return _cproton.pn_transport_closed(transport)

def pn_transport_tick(transport, now):
    return _cproton.pn_transport_tick(transport, now)

def pn_transport_get_frames_output(transport):
    return _cproton.pn_transport_get_frames_output(transport)

def pn_transport_get_frames_input(transport):
    return _cproton.pn_transport_get_frames_input(transport)

def pn_transport_connection(transport):
    return _cproton.pn_transport_connection(transport)
PROTON_EVENT_H = _cproton.PROTON_EVENT_H
PN_EVENT_NONE = _cproton.PN_EVENT_NONE
PN_REACTOR_INIT = _cproton.PN_REACTOR_INIT
PN_REACTOR_QUIESCED = _cproton.PN_REACTOR_QUIESCED
PN_REACTOR_FINAL = _cproton.PN_REACTOR_FINAL
PN_TIMER_TASK = _cproton.PN_TIMER_TASK
PN_CONNECTION_INIT = _cproton.PN_CONNECTION_INIT
PN_CONNECTION_BOUND = _cproton.PN_CONNECTION_BOUND
PN_CONNECTION_UNBOUND = _cproton.PN_CONNECTION_UNBOUND
PN_CONNECTION_LOCAL_OPEN = _cproton.PN_CONNECTION_LOCAL_OPEN
PN_CONNECTION_REMOTE_OPEN = _cproton.PN_CONNECTION_REMOTE_OPEN
PN_CONNECTION_LOCAL_CLOSE = _cproton.PN_CONNECTION_LOCAL_CLOSE
PN_CONNECTION_REMOTE_CLOSE = _cproton.PN_CONNECTION_REMOTE_CLOSE
PN_CONNECTION_FINAL = _cproton.PN_CONNECTION_FINAL
PN_SESSION_INIT = _cproton.PN_SESSION_INIT
PN_SESSION_LOCAL_OPEN = _cproton.PN_SESSION_LOCAL_OPEN
PN_SESSION_REMOTE_OPEN = _cproton.PN_SESSION_REMOTE_OPEN
PN_SESSION_LOCAL_CLOSE = _cproton.PN_SESSION_LOCAL_CLOSE
PN_SESSION_REMOTE_CLOSE = _cproton.PN_SESSION_REMOTE_CLOSE
PN_SESSION_FINAL = _cproton.PN_SESSION_FINAL
PN_LINK_INIT = _cproton.PN_LINK_INIT
PN_LINK_LOCAL_OPEN = _cproton.PN_LINK_LOCAL_OPEN
PN_LINK_REMOTE_OPEN = _cproton.PN_LINK_REMOTE_OPEN
PN_LINK_LOCAL_CLOSE = _cproton.PN_LINK_LOCAL_CLOSE
PN_LINK_REMOTE_CLOSE = _cproton.PN_LINK_REMOTE_CLOSE
PN_LINK_LOCAL_DETACH = _cproton.PN_LINK_LOCAL_DETACH
PN_LINK_REMOTE_DETACH = _cproton.PN_LINK_REMOTE_DETACH
PN_LINK_FLOW = _cproton.PN_LINK_FLOW
PN_LINK_FINAL = _cproton.PN_LINK_FINAL
PN_DELIVERY = _cproton.PN_DELIVERY
PN_TRANSPORT = _cproton.PN_TRANSPORT
PN_TRANSPORT_AUTHENTICATED = _cproton.PN_TRANSPORT_AUTHENTICATED
PN_TRANSPORT_ERROR = _cproton.PN_TRANSPORT_ERROR
PN_TRANSPORT_HEAD_CLOSED = _cproton.PN_TRANSPORT_HEAD_CLOSED
PN_TRANSPORT_TAIL_CLOSED = _cproton.PN_TRANSPORT_TAIL_CLOSED
PN_TRANSPORT_CLOSED = _cproton.PN_TRANSPORT_CLOSED
PN_SELECTABLE_INIT = _cproton.PN_SELECTABLE_INIT
PN_SELECTABLE_UPDATED = _cproton.PN_SELECTABLE_UPDATED
PN_SELECTABLE_READABLE = _cproton.PN_SELECTABLE_READABLE
PN_SELECTABLE_WRITABLE = _cproton.PN_SELECTABLE_WRITABLE
PN_SELECTABLE_ERROR = _cproton.PN_SELECTABLE_ERROR
PN_SELECTABLE_EXPIRED = _cproton.PN_SELECTABLE_EXPIRED
PN_SELECTABLE_FINAL = _cproton.PN_SELECTABLE_FINAL
PN_CONNECTION_WAKE = _cproton.PN_CONNECTION_WAKE
PN_LISTENER_ACCEPT = _cproton.PN_LISTENER_ACCEPT
PN_LISTENER_CLOSE = _cproton.PN_LISTENER_CLOSE
PN_PROACTOR_INTERRUPT = _cproton.PN_PROACTOR_INTERRUPT
PN_PROACTOR_TIMEOUT = _cproton.PN_PROACTOR_TIMEOUT
PN_PROACTOR_INACTIVE = _cproton.PN_PROACTOR_INACTIVE
PN_LISTENER_OPEN = _cproton.PN_LISTENER_OPEN
PN_RAW_CONNECTION_CONNECTED = _cproton.PN_RAW_CONNECTION_CONNECTED
PN_RAW_CONNECTION_CLOSED_READ = _cproton.PN_RAW_CONNECTION_CLOSED_READ
PN_RAW_CONNECTION_CLOSED_WRITE = _cproton.PN_RAW_CONNECTION_CLOSED_WRITE
PN_RAW_CONNECTION_DISCONNECTED = _cproton.PN_RAW_CONNECTION_DISCONNECTED
PN_RAW_CONNECTION_NEED_READ_BUFFERS = _cproton.PN_RAW_CONNECTION_NEED_READ_BUFFERS
PN_RAW_CONNECTION_NEED_WRITE_BUFFERS = _cproton.PN_RAW_CONNECTION_NEED_WRITE_BUFFERS
PN_RAW_CONNECTION_READ = _cproton.PN_RAW_CONNECTION_READ
PN_RAW_CONNECTION_WRITTEN = _cproton.PN_RAW_CONNECTION_WRITTEN
PN_RAW_CONNECTION_WAKE = _cproton.PN_RAW_CONNECTION_WAKE
PN_RAW_CONNECTION_DRAIN_BUFFERS = _cproton.PN_RAW_CONNECTION_DRAIN_BUFFERS

def pn_event_type_name(type):
    return _cproton.pn_event_type_name(type)

def pn_collector():
    return _cproton.pn_collector()

def pn_collector_free(collector):
    return _cproton.pn_collector_free(collector)

def pn_collector_release(collector):
    return _cproton.pn_collector_release(collector)

def pn_collector_drain(collector):
    return _cproton.pn_collector_drain(collector)

def pn_collector_put(collector, clazz, context, type):
    return _cproton.pn_collector_put(collector, clazz, context, type)

def pn_collector_peek(collector):
    return _cproton.pn_collector_peek(collector)

def pn_collector_pop(collector):
    return _cproton.pn_collector_pop(collector)

def pn_collector_next(collector):
    return _cproton.pn_collector_next(collector)

def pn_collector_prev(collector):
    return _cproton.pn_collector_prev(collector)

def pn_collector_more(collector):
    return _cproton.pn_collector_more(collector)

def pn_event_type(event):
    return _cproton.pn_event_type(event)

def pn_event_class(event):
    return _cproton.pn_event_class(event)

def pn_event_context(event):
    return _cproton.pn_event_context(event)

def pn_event_connection(event):
    return _cproton.pn_event_connection(event)

def pn_event_session(event):
    return _cproton.pn_event_session(event)

def pn_event_link(event):
    return _cproton.pn_event_link(event)

def pn_event_delivery(event):
    return _cproton.pn_event_delivery(event)

def pn_event_transport(event):
    return _cproton.pn_event_transport(event)

def pn_event_attachments(event):
    return _cproton.pn_event_attachments(event)

def pn_event_condition(event):
    return _cproton.pn_event_condition(event)

def pn_event_copy(evt):
    return _cproton.pn_event_copy(evt)
PROTON_MESSAGE_H = _cproton.PROTON_MESSAGE_H
PN_DEFAULT_PRIORITY = _cproton.PN_DEFAULT_PRIORITY

def pn_message():
    return _cproton.pn_message()

def pn_message_free(msg):
    return _cproton.pn_message_free(msg)

def pn_message_clear(msg):
    return _cproton.pn_message_clear(msg)

def pn_message_errno(msg):
    return _cproton.pn_message_errno(msg)

def pn_message_error(msg):
    return _cproton.pn_message_error(msg)

def pn_message_is_inferred(msg):
    return _cproton.pn_message_is_inferred(msg)

def pn_message_set_inferred(msg, inferred):
    return _cproton.pn_message_set_inferred(msg, inferred)

def pn_message_is_durable(msg):
    return _cproton.pn_message_is_durable(msg)

def pn_message_set_durable(msg, durable):
    return _cproton.pn_message_set_durable(msg, durable)

def pn_message_get_priority(msg):
    return _cproton.pn_message_get_priority(msg)

def pn_message_set_priority(msg, priority):
    return _cproton.pn_message_set_priority(msg, priority)

def pn_message_get_ttl(msg):
    return _cproton.pn_message_get_ttl(msg)

def pn_message_set_ttl(msg, ttl):
    return _cproton.pn_message_set_ttl(msg, ttl)

def pn_message_is_first_acquirer(msg):
    return _cproton.pn_message_is_first_acquirer(msg)

def pn_message_set_first_acquirer(msg, first):
    return _cproton.pn_message_set_first_acquirer(msg, first)

def pn_message_get_delivery_count(msg):
    return _cproton.pn_message_get_delivery_count(msg)

def pn_message_set_delivery_count(msg, count):
    return _cproton.pn_message_set_delivery_count(msg, count)

def pn_message_get_id(msg):
    return _cproton.pn_message_get_id(msg)

def pn_message_set_id(msg, id):
    return _cproton.pn_message_set_id(msg, id)

def pn_message_get_user_id(msg):
    return _cproton.pn_message_get_user_id(msg)

def pn_message_set_user_id(msg, user_id):
    return _cproton.pn_message_set_user_id(msg, user_id)

def pn_message_get_address(msg):
    return _cproton.pn_message_get_address(msg)

def pn_message_set_address(msg, address):
    return _cproton.pn_message_set_address(msg, address)

def pn_message_get_subject(msg):
    return _cproton.pn_message_get_subject(msg)

def pn_message_set_subject(msg, subject):
    return _cproton.pn_message_set_subject(msg, subject)

def pn_message_get_reply_to(msg):
    return _cproton.pn_message_get_reply_to(msg)

def pn_message_set_reply_to(msg, reply_to):
    return _cproton.pn_message_set_reply_to(msg, reply_to)

def pn_message_get_correlation_id(msg):
    return _cproton.pn_message_get_correlation_id(msg)

def pn_message_set_correlation_id(msg, id):
    return _cproton.pn_message_set_correlation_id(msg, id)

def pn_message_get_content_type(msg):
    return _cproton.pn_message_get_content_type(msg)

def pn_message_set_content_type(msg, type):
    return _cproton.pn_message_set_content_type(msg, type)

def pn_message_get_content_encoding(msg):
    return _cproton.pn_message_get_content_encoding(msg)

def pn_message_set_content_encoding(msg, encoding):
    return _cproton.pn_message_set_content_encoding(msg, encoding)

def pn_message_get_expiry_time(msg):
    return _cproton.pn_message_get_expiry_time(msg)

def pn_message_set_expiry_time(msg, time):
    return _cproton.pn_message_set_expiry_time(msg, time)

def pn_message_get_creation_time(msg):
    return _cproton.pn_message_get_creation_time(msg)

def pn_message_set_creation_time(msg, time):
    return _cproton.pn_message_set_creation_time(msg, time)

def pn_message_get_group_id(msg):
    return _cproton.pn_message_get_group_id(msg)

def pn_message_set_group_id(msg, group_id):
    return _cproton.pn_message_set_group_id(msg, group_id)

def pn_message_get_group_sequence(msg):
    return _cproton.pn_message_get_group_sequence(msg)

def pn_message_set_group_sequence(msg, n):
    return _cproton.pn_message_set_group_sequence(msg, n)

def pn_message_get_reply_to_group_id(msg):
    return _cproton.pn_message_get_reply_to_group_id(msg)

def pn_message_set_reply_to_group_id(msg, reply_to_group_id):
    return _cproton.pn_message_set_reply_to_group_id(msg, reply_to_group_id)

def pn_message_instructions(msg):
    return _cproton.pn_message_instructions(msg)

def pn_message_annotations(msg):
    return _cproton.pn_message_annotations(msg)

def pn_message_properties(msg):
    return _cproton.pn_message_properties(msg)

def pn_message_body(msg):
    return _cproton.pn_message_body(msg)

def pn_message_encode2(msg, buf):
    return _cproton.pn_message_encode2(msg, buf)

def pn_message_send(msg, sender, buf):
    return _cproton.pn_message_send(msg, sender, buf)

def pn_message_data(msg, data):
    return _cproton.pn_message_data(msg, data)
PROTON_SASL_H = _cproton.PROTON_SASL_H
PN_SASL_NONE = _cproton.PN_SASL_NONE
PN_SASL_OK = _cproton.PN_SASL_OK
PN_SASL_AUTH = _cproton.PN_SASL_AUTH
PN_SASL_SYS = _cproton.PN_SASL_SYS
PN_SASL_PERM = _cproton.PN_SASL_PERM
PN_SASL_TEMP = _cproton.PN_SASL_TEMP

def pn_sasl(transport):
    return _cproton.pn_sasl(transport)

def pn_sasl_extended():
    return _cproton.pn_sasl_extended()

def pn_sasl_done(sasl, outcome):
    return _cproton.pn_sasl_done(sasl, outcome)

def pn_sasl_outcome(sasl):
    return _cproton.pn_sasl_outcome(sasl)

def pn_sasl_get_user(sasl):
    return _cproton.pn_sasl_get_user(sasl)

def pn_sasl_get_authorization(sasl):
    return _cproton.pn_sasl_get_authorization(sasl)

def pn_sasl_get_mech(sasl):
    return _cproton.pn_sasl_get_mech(sasl)

def pn_sasl_allowed_mechs(sasl, mechs):
    return _cproton.pn_sasl_allowed_mechs(sasl, mechs)

def pn_sasl_set_allow_insecure_mechs(sasl, insecure):
    return _cproton.pn_sasl_set_allow_insecure_mechs(sasl, insecure)

def pn_sasl_get_allow_insecure_mechs(sasl):
    return _cproton.pn_sasl_get_allow_insecure_mechs(sasl)

def pn_sasl_config_name(sasl, name):
    return _cproton.pn_sasl_config_name(sasl, name)

def pn_sasl_config_path(sasl, path):
    return _cproton.pn_sasl_config_path(sasl, path)
PROTON_SSL_H = _cproton.PROTON_SSL_H
PN_SSL_MODE_CLIENT = _cproton.PN_SSL_MODE_CLIENT
PN_SSL_MODE_SERVER = _cproton.PN_SSL_MODE_SERVER
PN_SSL_RESUME_UNKNOWN = _cproton.PN_SSL_RESUME_UNKNOWN
PN_SSL_RESUME_NEW = _cproton.PN_SSL_RESUME_NEW
PN_SSL_RESUME_REUSED = _cproton.PN_SSL_RESUME_REUSED

def pn_ssl_present():
    return _cproton.pn_ssl_present()

def pn_ssl_domain(mode):
    return _cproton.pn_ssl_domain(mode)

def pn_ssl_domain_free(domain):
    return _cproton.pn_ssl_domain_free(domain)

def pn_ssl_domain_set_credentials(domain, credential_1, credential_2, password):
    return _cproton.pn_ssl_domain_set_credentials(domain, credential_1, credential_2, password)

def pn_ssl_domain_set_trusted_ca_db(domain, certificate_db):
    return _cproton.pn_ssl_domain_set_trusted_ca_db(domain, certificate_db)
PN_SSL_VERIFY_NULL = _cproton.PN_SSL_VERIFY_NULL
PN_SSL_VERIFY_PEER = _cproton.PN_SSL_VERIFY_PEER
PN_SSL_ANONYMOUS_PEER = _cproton.PN_SSL_ANONYMOUS_PEER
PN_SSL_VERIFY_PEER_NAME = _cproton.PN_SSL_VERIFY_PEER_NAME

def pn_ssl_domain_set_peer_authentication(domain, mode, trusted_CAs):
    return _cproton.pn_ssl_domain_set_peer_authentication(domain, mode, trusted_CAs)

def pn_ssl_domain_set_protocols(domain, protocols):
    return _cproton.pn_ssl_domain_set_protocols(domain, protocols)

def pn_ssl_domain_set_ciphers(domain, ciphers):
    return _cproton.pn_ssl_domain_set_ciphers(domain, ciphers)

def pn_ssl_domain_allow_unsecured_client(domain):
    return _cproton.pn_ssl_domain_allow_unsecured_client(domain)

def pn_ssl(transport):
    return _cproton.pn_ssl(transport)

def pn_ssl_init(ssl, domain, session_id):
    return _cproton.pn_ssl_init(ssl, domain, session_id)

def pn_ssl_get_ssf(ssl):
    return _cproton.pn_ssl_get_ssf(ssl)

def pn_ssl_resume_status(ssl):
    return _cproton.pn_ssl_resume_status(ssl)

def pn_ssl_set_peer_hostname(ssl, hostname):
    return _cproton.pn_ssl_set_peer_hostname(ssl, hostname)

def pn_ssl_get_remote_subject(ssl):
    return _cproton.pn_ssl_get_remote_subject(ssl)
PN_SSL_CERT_SUBJECT_COUNTRY_NAME = _cproton.PN_SSL_CERT_SUBJECT_COUNTRY_NAME
PN_SSL_CERT_SUBJECT_STATE_OR_PROVINCE = _cproton.PN_SSL_CERT_SUBJECT_STATE_OR_PROVINCE
PN_SSL_CERT_SUBJECT_CITY_OR_LOCALITY = _cproton.PN_SSL_CERT_SUBJECT_CITY_OR_LOCALITY
PN_SSL_CERT_SUBJECT_ORGANIZATION_NAME = _cproton.PN_SSL_CERT_SUBJECT_ORGANIZATION_NAME
PN_SSL_CERT_SUBJECT_ORGANIZATION_UNIT = _cproton.PN_SSL_CERT_SUBJECT_ORGANIZATION_UNIT
PN_SSL_CERT_SUBJECT_COMMON_NAME = _cproton.PN_SSL_CERT_SUBJECT_COMMON_NAME
PN_SSL_SHA1 = _cproton.PN_SSL_SHA1
PN_SSL_SHA256 = _cproton.PN_SSL_SHA256
PN_SSL_SHA512 = _cproton.PN_SSL_SHA512
PN_SSL_MD5 = _cproton.PN_SSL_MD5
PROTON_CODEC_H = _cproton.PROTON_CODEC_H
PN_NULL = _cproton.PN_NULL
PN_BOOL = _cproton.PN_BOOL
PN_UBYTE = _cproton.PN_UBYTE
PN_BYTE = _cproton.PN_BYTE
PN_USHORT = _cproton.PN_USHORT
PN_SHORT = _cproton.PN_SHORT
PN_UINT = _cproton.PN_UINT
PN_INT = _cproton.PN_INT
PN_CHAR = _cproton.PN_CHAR
PN_ULONG = _cproton.PN_ULONG
PN_LONG = _cproton.PN_LONG
PN_TIMESTAMP = _cproton.PN_TIMESTAMP
PN_FLOAT = _cproton.PN_FLOAT
PN_DOUBLE = _cproton.PN_DOUBLE
PN_DECIMAL32 = _cproton.PN_DECIMAL32
PN_DECIMAL64 = _cproton.PN_DECIMAL64
PN_DECIMAL128 = _cproton.PN_DECIMAL128
PN_UUID = _cproton.PN_UUID
PN_BINARY = _cproton.PN_BINARY
PN_STRING = _cproton.PN_STRING
PN_SYMBOL = _cproton.PN_SYMBOL
PN_DESCRIBED = _cproton.PN_DESCRIBED
PN_ARRAY = _cproton.PN_ARRAY
PN_LIST = _cproton.PN_LIST
PN_MAP = _cproton.PN_MAP
PN_INVALID = _cproton.PN_INVALID

def pn_type_name(type):
    return _cproton.pn_type_name(type)

def pn_data(capacity):
    return _cproton.pn_data(capacity)

def pn_data_free(data):
    return _cproton.pn_data_free(data)

def pn_data_errno(data):
    return _cproton.pn_data_errno(data)

def pn_data_error(data):
    return _cproton.pn_data_error(data)

def pn_data_fill(*args):
    return _cproton.pn_data_fill(*args)

def pn_data_scan(*args):
    return _cproton.pn_data_scan(*args)

def pn_data_clear(data):
    return _cproton.pn_data_clear(data)

def pn_data_size(data):
    return _cproton.pn_data_size(data)

def pn_data_rewind(data):
    return _cproton.pn_data_rewind(data)

def pn_data_next(data):
    return _cproton.pn_data_next(data)

def pn_data_prev(data):
    return _cproton.pn_data_prev(data)

def pn_data_enter(data):
    return _cproton.pn_data_enter(data)

def pn_data_exit(data):
    return _cproton.pn_data_exit(data)

def pn_data_lookup(data, name):
    return _cproton.pn_data_lookup(data, name)

def pn_data_type(data):
    return _cproton.pn_data_type(data)

def pn_data_print(data):
    return _cproton.pn_data_print(data)

def pn_data_encoded_size(data):
    return _cproton.pn_data_encoded_size(data)

def pn_data_put_list(data):
    return _cproton.pn_data_put_list(data)

def pn_data_put_map(data):
    return _cproton.pn_data_put_map(data)

def pn_data_put_array(data, described, type):
    return _cproton.pn_data_put_array(data, described, type)

def pn_data_put_described(data):
    return _cproton.pn_data_put_described(data)

def pn_data_put_null(data):
    return _cproton.pn_data_put_null(data)

def pn_data_put_bool(data, b):
    return _cproton.pn_data_put_bool(data, b)

def pn_data_put_ubyte(data, ub):
    return _cproton.pn_data_put_ubyte(data, ub)

def pn_data_put_byte(data, b):
    return _cproton.pn_data_put_byte(data, b)

def pn_data_put_ushort(data, us):
    return _cproton.pn_data_put_ushort(data, us)

def pn_data_put_short(data, s):
    return _cproton.pn_data_put_short(data, s)

def pn_data_put_uint(data, ui):
    return _cproton.pn_data_put_uint(data, ui)

def pn_data_put_int(data, i):
    return _cproton.pn_data_put_int(data, i)

def pn_data_put_char(data, c):
    return _cproton.pn_data_put_char(data, c)

def pn_data_put_ulong(data, ul):
    return _cproton.pn_data_put_ulong(data, ul)

def pn_data_put_long(data, l):
    return _cproton.pn_data_put_long(data, l)

def pn_data_put_timestamp(data, t):
    return _cproton.pn_data_put_timestamp(data, t)

def pn_data_put_float(data, f):
    return _cproton.pn_data_put_float(data, f)

def pn_data_put_double(data, d):
    return _cproton.pn_data_put_double(data, d)

def pn_data_put_decimal32(data, d):
    return _cproton.pn_data_put_decimal32(data, d)

def pn_data_put_decimal64(data, d):
    return _cproton.pn_data_put_decimal64(data, d)

def pn_data_put_decimal128(data, d):
    return _cproton.pn_data_put_decimal128(data, d)

def pn_data_put_uuid(data, u):
    return _cproton.pn_data_put_uuid(data, u)

def pn_data_put_binary(data, bytes):
    return _cproton.pn_data_put_binary(data, bytes)

def pn_data_put_string(data, string):
    return _cproton.pn_data_put_string(data, string)

def pn_data_put_symbol(data, symbol):
    return _cproton.pn_data_put_symbol(data, symbol)

def pn_data_get_list(data):
    return _cproton.pn_data_get_list(data)

def pn_data_get_map(data):
    return _cproton.pn_data_get_map(data)

def pn_data_get_array(data):
    return _cproton.pn_data_get_array(data)

def pn_data_is_array_described(data):
    return _cproton.pn_data_is_array_described(data)

def pn_data_get_array_type(data):
    return _cproton.pn_data_get_array_type(data)

def pn_data_is_described(data):
    return _cproton.pn_data_is_described(data)

def pn_data_is_null(data):
    return _cproton.pn_data_is_null(data)

def pn_data_get_bool(data):
    return _cproton.pn_data_get_bool(data)

def pn_data_get_ubyte(data):
    return _cproton.pn_data_get_ubyte(data)

def pn_data_get_byte(data):
    return _cproton.pn_data_get_byte(data)

def pn_data_get_ushort(data):
    return _cproton.pn_data_get_ushort(data)

def pn_data_get_short(data):
    return _cproton.pn_data_get_short(data)

def pn_data_get_uint(data):
    return _cproton.pn_data_get_uint(data)

def pn_data_get_int(data):
    return _cproton.pn_data_get_int(data)

def pn_data_get_char(data):
    return _cproton.pn_data_get_char(data)

def pn_data_get_ulong(data):
    return _cproton.pn_data_get_ulong(data)

def pn_data_get_long(data):
    return _cproton.pn_data_get_long(data)

def pn_data_get_timestamp(data):
    return _cproton.pn_data_get_timestamp(data)

def pn_data_get_float(data):
    return _cproton.pn_data_get_float(data)

def pn_data_get_double(data):
    return _cproton.pn_data_get_double(data)

def pn_data_get_decimal32(data):
    return _cproton.pn_data_get_decimal32(data)

def pn_data_get_decimal64(data):
    return _cproton.pn_data_get_decimal64(data)

def pn_data_get_decimal128(data):
    return _cproton.pn_data_get_decimal128(data)

def pn_data_get_uuid(data):
    return _cproton.pn_data_get_uuid(data)

def pn_data_get_binary(data):
    return _cproton.pn_data_get_binary(data)

def pn_data_get_string(data):
    return _cproton.pn_data_get_string(data)

def pn_data_get_symbol(data):
    return _cproton.pn_data_get_symbol(data)

def pn_data_get_bytes(data):
    return _cproton.pn_data_get_bytes(data)

def pn_data_copy(data, src):
    return _cproton.pn_data_copy(data, src)

def pn_data_append(data, src):
    return _cproton.pn_data_append(data, src)

def pn_data_appendn(data, src, limit):
    return _cproton.pn_data_appendn(data, src, limit)

def pn_data_narrow(data):
    return _cproton.pn_data_narrow(data)

def pn_data_widen(data):
    return _cproton.pn_data_widen(data)

def pn_data_point(data):
    return _cproton.pn_data_point(data)

def pn_data_restore(data, point):
    return _cproton.pn_data_restore(data, point)

def pn_data_dump(data):
    return _cproton.pn_data_dump(data)

def pn_cast_pn_connection(x):
    return _cproton.pn_cast_pn_connection(x)

def pn_cast_pn_session(x):
    return _cproton.pn_cast_pn_session(x)

def pn_cast_pn_link(x):
    return _cproton.pn_cast_pn_link(x)

def pn_cast_pn_delivery(x):
    return _cproton.pn_cast_pn_delivery(x)

def pn_cast_pn_transport(x):
    return _cproton.pn_cast_pn_transport(x)
PROTON_CONNECTION_DRIVER_H = _cproton.PROTON_CONNECTION_DRIVER_H

def pn_connection_driver_init(arg1, arg2, arg3):
    return _cproton.pn_connection_driver_init(arg1, arg2, arg3)

def pn_connection_driver_bind(d):
    return _cproton.pn_connection_driver_bind(d)

def pn_connection_driver_destroy(arg1):
    return _cproton.pn_connection_driver_destroy(arg1)

def pn_connection_driver_release_connection(d):
    return _cproton.pn_connection_driver_release_connection(d)

def pn_connection_driver_read_buffer(arg1):
    return _cproton.pn_connection_driver_read_buffer(arg1)

def pn_connection_driver_read_done(arg1, n):
    return _cproton.pn_connection_driver_read_done(arg1, n)

def pn_connection_driver_read_close(arg1):
    return _cproton.pn_connection_driver_read_close(arg1)

def pn_connection_driver_read_closed(arg1):
    return _cproton.pn_connection_driver_read_closed(arg1)

def pn_connection_driver_write_buffer(arg1):
    return _cproton.pn_connection_driver_write_buffer(arg1)

def pn_connection_driver_write_done(arg1, n):
    return _cproton.pn_connection_driver_write_done(arg1, n)

def pn_connection_driver_write_close(arg1):
    return _cproton.pn_connection_driver_write_close(arg1)

def pn_connection_driver_write_closed(arg1):
    return _cproton.pn_connection_driver_write_closed(arg1)

def pn_connection_driver_close(c):
    return _cproton.pn_connection_driver_close(c)

def pn_connection_driver_next_event(arg1):
    return _cproton.pn_connection_driver_next_event(arg1)

def pn_connection_driver_has_event(arg1):
    return _cproton.pn_connection_driver_has_event(arg1)

def pn_connection_driver_finished(arg1):
    return _cproton.pn_connection_driver_finished(arg1)

def pn_connection_driver_errorf(*args):
    return _cproton.pn_connection_driver_errorf(*args)

def pn_connection_driver_log(d, msg):
    return _cproton.pn_connection_driver_log(d, msg)

def pn_connection_driver_ptr(connection):
    return _cproton.pn_connection_driver_ptr(connection)
PROTON_CID_H = _cproton.PROTON_CID_H
CID_pn_object = _cproton.CID_pn_object
CID_pn_void = _cproton.CID_pn_void
CID_pn_weakref = _cproton.CID_pn_weakref
CID_pn_string = _cproton.CID_pn_string
CID_pn_list = _cproton.CID_pn_list
CID_pn_map = _cproton.CID_pn_map
CID_pn_hash = _cproton.CID_pn_hash
CID_pn_record = _cproton.CID_pn_record
CID_pn_collector = _cproton.CID_pn_collector
CID_pn_event = _cproton.CID_pn_event
CID_pn_buffer = _cproton.CID_pn_buffer
CID_pn_error = _cproton.CID_pn_error
CID_pn_data = _cproton.CID_pn_data
CID_pn_connection = _cproton.CID_pn_connection
CID_pn_session = _cproton.CID_pn_session
CID_pn_link = _cproton.CID_pn_link
CID_pn_delivery = _cproton.CID_pn_delivery
CID_pn_transport = _cproton.CID_pn_transport
CID_pn_message = _cproton.CID_pn_message
CID_pn_reactor = _cproton.CID_pn_reactor
CID_pn_handler = _cproton.CID_pn_handler
CID_pn_timer = _cproton.CID_pn_timer
CID_pn_task = _cproton.CID_pn_task
CID_pn_io = _cproton.CID_pn_io
CID_pn_selector = _cproton.CID_pn_selector
CID_pn_selectable = _cproton.CID_pn_selectable
CID_pn_url = _cproton.CID_pn_url
CID_pn_strdup = _cproton.CID_pn_strdup
CID_pn_listener = _cproton.CID_pn_listener
CID_pn_proactor = _cproton.CID_pn_proactor
CID_pn_listener_socket = _cproton.CID_pn_listener_socket
CID_pn_raw_connection = _cproton.CID_pn_raw_connection

cvar = _cproton.cvar
PN_PYREF = cvar.PN_PYREF
pn_bytes_null = cvar.pn_bytes_null
pn_rwbytes_null = cvar.pn_rwbytes_null
PN_OBJECT = cvar.PN_OBJECT
PN_VOID = cvar.PN_VOID
PN_WEAKREF = cvar.PN_WEAKREF

