types.h 8.41 KB
Newer Older
Simon Morlat's avatar
Simon Morlat committed
1 2 3 4 5 6
/*
	belle-sip - SIP (RFC3261) library.
    Copyright (C) 2010  Belledonne Communications SARL

    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
7
    the Free Software Foundation, either version 2 of the License, or
Simon Morlat's avatar
Simon Morlat committed
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
    (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 <http://www.gnu.org/licenses/>.
*/
#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"

25 26 27 28 29 30 31 32
#ifndef BELLESIP_DEPRECATED
#if defined(_MSC_VER)
	#define BELLESIP_DEPRECATED __declspec(deprecated)
#else
	#define BELLESIP_DEPRECATED __attribute__ ((deprecated))
#endif
#endif

Simon Morlat's avatar
Simon Morlat committed
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
/**
 * 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_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),
jehan's avatar
jehan committed
68
	BELLE_SIP_TYPE_ID(belle_sip_header_diversion_t),
Simon Morlat's avatar
Simon Morlat committed
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
	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_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),
101
	BELLE_SIP_TYPE_ID(belle_sdp_raw_attribute_t),
Simon Morlat's avatar
Simon Morlat committed
102
	BELLE_SIP_TYPE_ID(belle_sdp_repeate_time_t),
103
	BELLE_SIP_TYPE_ID(belle_sdp_rtcp_fb_attribute_t),
104
	BELLE_SIP_TYPE_ID(belle_sdp_rtcp_xr_attribute_t),
Simon Morlat's avatar
Simon Morlat committed
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
	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),
135
	BELLE_SIP_TYPE_ID(belle_http_callbacks_t),
136
	BELLE_SIP_TYPE_ID(belle_tls_crypto_config_t),
137 138 139 140
	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),
141
	BELLE_SIP_TYPE_ID(belle_sip_file_body_handler_t),
142
	BELLE_SIP_TYPE_ID(belle_sip_multipart_body_handler_t),
jehan's avatar
jehan committed
143
	BELLE_SIP_TYPE_ID(belle_sip_header_event_t),
144 145
	BELLE_SIP_TYPE_ID(belle_sip_header_supported_t),
	BELLE_SIP_TYPE_ID(belle_sip_header_content_disposition_t),
jehan's avatar
jehan committed
146
	BELLE_SIP_TYPE_ID(belle_sip_header_accept_t),
jehan's avatar
jehan committed
147 148
	BELLE_SIP_TYPE_ID(belle_sip_header_reason_t),
	BELLE_SIP_TYPE_ID(belle_sip_header_authentication_info_t)
Simon Morlat's avatar
Simon Morlat committed
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
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;
181 182
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 */
183 184 185
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;
186
typedef struct belle_sip_file_body_handler belle_sip_file_body_handler_t;
187
typedef struct belle_sip_multipart_body_handler belle_sip_multipart_body_handler_t;
Simon Morlat's avatar
Simon Morlat committed
188 189 190 191

#endif