/* * Copyright (c) 2012-2019 Belledonne Communications SARL. * * This file is part of belle-sip. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef BELLE_SIP_TYPES_H #define BELLE_SIP_TYPES_H #include "belle-sip/defs.h" #include "belle-sip/object.h" #include "belle-sip/dict.h" #ifndef BELLESIP_DEPRECATED #if defined(_MSC_VER) #define BELLESIP_DEPRECATED __declspec(deprecated) #else #define BELLESIP_DEPRECATED __attribute__ ((deprecated)) #endif #endif /** * This enum declares all object types used in belle-sip (see belle_sip_object_t) **/ BELLE_SIP_DECLARE_TYPES_BEGIN(belle_sip,1) BELLE_SIP_TYPE_ID(belle_sip_stack_t), BELLE_SIP_TYPE_ID(belle_sip_hop_t), BELLE_SIP_TYPE_ID(belle_sip_object_pool_t), BELLE_SIP_TYPE_ID(belle_sip_listening_point_t), BELLE_SIP_TYPE_ID(belle_sip_datagram_listening_point_t), BELLE_SIP_TYPE_ID(belle_sip_udp_listening_point_t), BELLE_SIP_TYPE_ID(belle_sip_stream_listening_point_t), BELLE_SIP_TYPE_ID(belle_sip_tls_listening_point_t), BELLE_SIP_TYPE_ID(belle_sip_tunnel_listening_point_t), BELLE_SIP_TYPE_ID(belle_sip_channel_t), BELLE_SIP_TYPE_ID(belle_sip_udp_channel_t), BELLE_SIP_TYPE_ID(belle_sip_stream_channel_t), BELLE_SIP_TYPE_ID(belle_sip_tls_channel_t), BELLE_SIP_TYPE_ID(belle_sip_tunnel_channel_t), BELLE_SIP_TYPE_ID(belle_sip_provider_t), BELLE_SIP_TYPE_ID(belle_sip_main_loop_t), BELLE_SIP_TYPE_ID(belle_sip_source_t), BELLE_SIP_TYPE_ID(belle_sip_mdns_source_t), BELLE_SIP_TYPE_ID(belle_sip_resolver_context_t), BELLE_SIP_TYPE_ID(belle_sip_transaction_t), BELLE_SIP_TYPE_ID(belle_sip_server_transaction_t), BELLE_SIP_TYPE_ID(belle_sip_client_transaction_t), BELLE_SIP_TYPE_ID(belle_sip_ict_t), BELLE_SIP_TYPE_ID(belle_sip_nict_t), BELLE_SIP_TYPE_ID(belle_sip_ist_t), BELLE_SIP_TYPE_ID(belle_sip_nist_t), BELLE_SIP_TYPE_ID(belle_sip_dialog_t), BELLE_SIP_TYPE_ID(belle_sip_header_address_t), BELLE_SIP_TYPE_ID(belle_sip_header_contact_t), BELLE_SIP_TYPE_ID(belle_sip_header_from_t), BELLE_SIP_TYPE_ID(belle_sip_header_to_t), BELLE_SIP_TYPE_ID(belle_sip_header_via_t), BELLE_SIP_TYPE_ID(belle_sip_header_diversion_t), BELLE_SIP_TYPE_ID(belle_sip_uri_t), BELLE_SIP_TYPE_ID(belle_sip_message_t), BELLE_SIP_TYPE_ID(belle_sip_request_t), BELLE_SIP_TYPE_ID(belle_sip_response_t), BELLE_SIP_TYPE_ID(belle_sip_object_t), BELLE_SIP_TYPE_ID(belle_sip_parameters_t), BELLE_SIP_TYPE_ID(belle_sip_header_call_id_t), BELLE_SIP_TYPE_ID(belle_sip_header_cseq_t), BELLE_SIP_TYPE_ID(belle_sip_header_content_type_t), BELLE_SIP_TYPE_ID(belle_sip_header_session_expires_t), BELLE_SIP_TYPE_ID(belle_sip_header_route_t), BELLE_SIP_TYPE_ID(belle_sip_header_record_route_t), BELLE_SIP_TYPE_ID(belle_sip_header_user_agent_t), BELLE_SIP_TYPE_ID(belle_sip_header_content_length_t), BELLE_SIP_TYPE_ID(belle_sip_header_t), BELLE_SIP_TYPE_ID(belle_sip_header_extension_t), BELLE_SIP_TYPE_ID(belle_sip_header_authorization_t), BELLE_SIP_TYPE_ID(belle_sip_header_proxy_authorization_t), BELLE_SIP_TYPE_ID(belle_sip_header_www_authenticate_t), BELLE_SIP_TYPE_ID(belle_sip_header_proxy_authenticate_t), BELLE_SIP_TYPE_ID(belle_sip_header_max_forwards_t), BELLE_SIP_TYPE_ID(belle_sip_header_expires_t), BELLE_SIP_TYPE_ID(belle_sip_header_allow_t), BELLE_SIP_TYPE_ID(belle_sdp_attribute_t), BELLE_SIP_TYPE_ID(belle_sdp_bandwidth_t), BELLE_SIP_TYPE_ID(belle_sdp_connection_t), BELLE_SIP_TYPE_ID(belle_sdp_email_t), BELLE_SIP_TYPE_ID(belle_sdp_info_t), BELLE_SIP_TYPE_ID(belle_sdp_key_t), BELLE_SIP_TYPE_ID(belle_sdp_media_t), BELLE_SIP_TYPE_ID(belle_sdp_media_description_t), BELLE_SIP_TYPE_ID(belle_sdp_origin_t), BELLE_SIP_TYPE_ID(belle_sdp_phone_t), BELLE_SIP_TYPE_ID(belle_sdp_raw_attribute_t), BELLE_SIP_TYPE_ID(belle_sdp_repeate_time_t), BELLE_SIP_TYPE_ID(belle_sdp_rtcp_fb_attribute_t), BELLE_SIP_TYPE_ID(belle_sdp_rtcp_xr_attribute_t), BELLE_SIP_TYPE_ID(belle_sdp_session_description_t), BELLE_SIP_TYPE_ID(belle_sdp_session_name_t), BELLE_SIP_TYPE_ID(belle_sdp_time_t), BELLE_SIP_TYPE_ID(belle_sdp_time_description_t), BELLE_SIP_TYPE_ID(belle_sdp_uri_t), BELLE_SIP_TYPE_ID(belle_sdp_version_t), BELLE_SIP_TYPE_ID(belle_sdp_base_description_t), BELLE_SIP_TYPE_ID(belle_sdp_mime_parameter_t), BELLE_SIP_TYPE_ID(belle_sip_callbacks_t), BELLE_SIP_TYPE_ID(belle_sip_refresher_t), BELLE_SIP_TYPE_ID(belle_sip_header_subscription_state_t), BELLE_SIP_TYPE_ID(belle_sip_header_service_route_t), BELLE_SIP_TYPE_ID(belle_sip_header_refer_to_t), BELLE_SIP_TYPE_ID(belle_sip_header_referred_by_t), BELLE_SIP_TYPE_ID(belle_sip_header_replaces_t), BELLE_SIP_TYPE_ID(belle_sip_header_date_t), BELLE_SIP_TYPE_ID(belle_sip_header_p_preferred_identity_t), BELLE_SIP_TYPE_ID(belle_sip_header_privacy_t), BELLE_SIP_TYPE_ID(belle_sip_certificates_chain_t), BELLE_SIP_TYPE_ID(belle_sip_signing_key_t), BELLE_SIP_TYPE_ID(belle_sip_dns_srv_t), BELLE_SIP_TYPE_ID(belle_sip_simple_resolver_context_t), BELLE_SIP_TYPE_ID(belle_sip_combined_resolver_context_t), BELLE_SIP_TYPE_ID(belle_sip_dict_t), BELLE_SIP_TYPE_ID(belle_sip_dual_resolver_context_t), BELLE_SIP_TYPE_ID(belle_http_provider_t), BELLE_SIP_TYPE_ID(belle_http_request_t), BELLE_SIP_TYPE_ID(belle_http_response_t), BELLE_SIP_TYPE_ID(belle_http_channel_context_t), BELLE_SIP_TYPE_ID(belle_generic_uri_t), BELLE_SIP_TYPE_ID(belle_http_callbacks_t), BELLE_SIP_TYPE_ID(belle_tls_crypto_config_t), BELLE_SIP_TYPE_ID(belle_http_header_authorization_t), BELLE_SIP_TYPE_ID(belle_sip_body_handler_t), BELLE_SIP_TYPE_ID(belle_sip_memory_body_handler_t), BELLE_SIP_TYPE_ID(belle_sip_user_body_handler_t), BELLE_SIP_TYPE_ID(belle_sip_file_body_handler_t), BELLE_SIP_TYPE_ID(belle_sip_multipart_body_handler_t), BELLE_SIP_TYPE_ID(belle_sip_header_event_t), BELLE_SIP_TYPE_ID(belle_sip_header_supported_t), BELLE_SIP_TYPE_ID(belle_sip_header_require_t), BELLE_SIP_TYPE_ID(belle_sip_header_content_disposition_t), BELLE_SIP_TYPE_ID(belle_sip_header_accept_t), BELLE_SIP_TYPE_ID(belle_sip_header_reason_t), BELLE_SIP_TYPE_ID(belle_sip_header_authentication_info_t), BELLE_SIP_TYPE_ID(belle_sip_mdns_register_t), BELLE_SIP_TYPE_ID(belle_sip_resolver_results_t), BELLE_SIP_TYPE_ID(belle_sip_cpp_object_t), BELLE_SIP_TYPE_ID(belle_sip_header_retry_after_t) BELLE_SIP_DECLARE_TYPES_END enum belle_sip_interface_ids{ belle_sip_interface_id_first=1, BELLE_SIP_INTERFACE_ID(belle_sip_channel_listener_t), BELLE_SIP_INTERFACE_ID(belle_sip_listener_t), BELLE_SIP_INTERFACE_ID(belle_http_request_listener_t) }; /*these types are declared here because they are widely used in many headers included after*/ typedef struct belle_sip_listening_point belle_sip_listening_point_t; typedef struct belle_sip_tls_listening_point belle_sip_tls_listening_point_t; typedef struct belle_sip_stack belle_sip_stack_t; typedef struct belle_sip_provider belle_sip_provider_t; typedef struct belle_http_provider belle_http_provider_t; typedef struct belle_sip_dialog belle_sip_dialog_t; typedef struct belle_sip_transaction belle_sip_transaction_t; typedef struct belle_sip_server_transaction belle_sip_server_transaction_t; typedef struct belle_sip_client_transaction belle_sip_client_transaction_t; typedef struct _belle_sip_message belle_sip_message_t; typedef struct _belle_sip_request belle_sip_request_t; typedef struct _belle_sip_response belle_sip_response_t; typedef struct belle_http_request belle_http_request_t; typedef struct belle_http_response belle_http_response_t; typedef struct belle_sip_hop belle_sip_hop_t; typedef struct _belle_generic_uri belle_generic_uri_t; typedef struct _belle_sip_uri belle_sip_uri_t; typedef struct _belle_sip_parameters belle_sip_parameters_t; typedef struct belle_sip_param_pair belle_sip_param_pair_t; typedef struct _belle_sip_header belle_sip_header_t; typedef struct belle_tls_crypto_config belle_tls_crypto_config_t; typedef struct belle_tls_crypto_config belle_tls_verify_policy_t; /* belle_tls_verify_policy_t is deprecated, just for backward compatibility */ typedef struct belle_sip_body_handler belle_sip_body_handler_t; typedef struct belle_sip_memory_body_handler belle_sip_memory_body_handler_t; typedef struct belle_sip_user_body_handler belle_sip_user_body_handler_t; typedef struct belle_sip_file_body_handler belle_sip_file_body_handler_t; typedef struct belle_sip_multipart_body_handler belle_sip_multipart_body_handler_t; #endif