nth
1.12.11
|
00001 /* 00002 * This file is part of the Sofia-SIP package 00003 * 00004 * Copyright (C) 2005 Nokia Corporation. 00005 * 00006 * Contact: Pekka Pessi <pekka.pessi@nokia-email.address.hidden> 00007 * 00008 * This library is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU Lesser General Public License 00010 * as published by the Free Software Foundation; either version 2.1 of 00011 * the License, or (at your option) any later version. 00012 * 00013 * This library is distributed in the hope that it will be useful, but 00014 * WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 * Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public 00019 * License along with this library; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 00021 * 02110-1301 USA 00022 * 00023 */ 00024 00025 #ifndef NTH_TAG_H 00026 00027 #define NTH_TAG_H 00028 00037 #ifndef SU_TAG_H 00038 #include <sofia-sip/su_tag.h> 00039 #endif 00040 00041 #ifndef URL_TAG_H 00042 #include <sofia-sip/url_tag.h> 00043 #endif 00044 00045 #ifndef HTTP_TAG_H 00046 #include <sofia-sip/http_tag.h> 00047 #endif 00048 00049 SOFIA_BEGIN_DECLS 00050 00052 NTH_DLL extern tagi_t nth_client_tags[]; 00053 00055 #define NTHTAG_ANY() nthtag_any, ((tag_value_t)0) 00056 NTH_DLL extern tag_typedef_t nthtag_any; 00057 00058 /* Common tags */ 00059 00060 NTH_DLL extern tag_typedef_t nthtag_mclass; 00062 #define NTHTAG_MCLASS(x) nthtag_mclass, tag_cptr_v((x)) 00063 00064 NTH_DLL extern tag_typedef_t nthtag_mclass_ref; 00065 #define NTHTAG_MCLASS_REF(x) nthtag_mclass_ref, tag_cptr_vr(&(x), (x)) 00066 00067 NTH_DLL extern tag_typedef_t nthtag_mflags; 00069 #define NTHTAG_MFLAGS(x) nthtag_mflags, tag_int_v((x)) 00070 00071 NTH_DLL extern tag_typedef_t nthtag_mflags_ref; 00072 #define NTHTAG_MFLAGS_REF(x) nthtag_mflags_ref, tag_int_vr(&(x)) 00073 00074 NTH_DLL extern tag_typedef_t nthtag_streaming; 00076 #define NTHTAG_STREAMING(x) nthtag_streaming, tag_bool_v((x)) 00077 00078 NTH_DLL extern tag_typedef_t nthtag_streaming_ref; 00079 #define NTHTAG_STREAMING_REF(x) nthtag_streaming_ref, tag_bool_vr(&(x)) 00080 00081 /* Client-only tags */ 00082 00083 NTH_DLL extern tag_typedef_t nthtag_proxy; 00085 #define NTHTAG_PROXY(x) nthtag_proxy, urltag_url_v((x)) 00086 00087 NTH_DLL extern tag_typedef_t nthtag_proxy_ref; 00088 #define NTHTAG_PROXY_REF(x) nthtag_proxy_ref, urltag_url_vr(&(x)) 00089 00090 NTH_DLL extern tag_typedef_t nthtag_expires; 00092 #define NTHTAG_EXPIRES(x) nthtag_expires, tag_uint_v((x)) 00093 00094 NTH_DLL extern tag_typedef_t nthtag_expires_ref; 00095 #define NTHTAG_EXPIRES_REF(x) nthtag_expires_ref, tag_uint_vr(&(x)) 00096 00097 NTH_DLL extern tag_typedef_t nthtag_error_msg; 00099 #define NTHTAG_ERROR_MSG(x) nthtag_error_msg, tag_bool_v((x)) 00100 00101 NTH_DLL extern tag_typedef_t nthtag_error_msg_ref; 00102 #define NTHTAG_ERROR_MSG_REF(x) nthtag_error_msg_ref, tag_bool_vr(&(x)) 00103 00104 #if SU_INLINE_TAG_CAST 00105 struct nth_client_s; 00106 su_inline tag_value_t nthtag_template_v(struct nth_client_s const *v) 00107 { return (tag_value_t)v; } 00108 su_inline tag_value_t nthtag_template_vr(struct nth_client_s const **vp) 00109 {return(tag_value_t)vp;} 00110 #else 00111 #define nthtag_template_v(v) ((tag_value_t)(v)) 00112 #define nthtag_template_vr(vp) ((tag_value_t)(vp)) 00113 #endif 00114 00115 NTH_DLL extern tag_typedef_t nthtag_template; 00117 #define NTHTAG_TEMPLATE(x) nthtag_template, nthtag_template_v((x)) 00118 00119 NTH_DLL extern tag_typedef_t nthtag_template_ref; 00120 #define NTHTAG_TEMPLATE_REF(x) nthtag_template_ref, nthtag_template_vr(&(x)) 00121 00122 #if SU_INLINE_TAG_CAST 00123 su_inline tag_value_t nthtag_message_v(struct msg_s *v) 00124 { return (tag_value_t)v; } 00125 su_inline tag_value_t nthtag_message_vr(struct msg_s **vp) 00126 { return(tag_value_t)vp; } 00127 #else 00128 #define nthtag_message_v(v) ((tag_value_t)(v)) 00129 #define nthtag_message_vr(vp) ((tag_value_t)(vp)) 00130 #endif 00131 00132 NTH_DLL extern tag_typedef_t nthtag_message; 00134 #define NTHTAG_MESSAGE(x) nthtag_message, nthtag_message_v((x)) 00135 00136 NTH_DLL extern tag_typedef_t nthtag_message_ref; 00137 #define NTHTAG_MESSAGE_REF(x) nthtag_message_ref, nthtag_message_vr(&(x)) 00138 00139 #if SU_HAVE_INLINE 00140 struct auth_client_s; 00141 su_inline tag_value_t nthtag_authentication_v(struct auth_client_s **v) { return (tag_value_t)v; } 00142 su_inline tag_value_t nthtag_authentication_vr(struct auth_client_s ***vp) {return(tag_value_t)vp;} 00143 #else 00144 #define nthtag_authentication_v(v) ((tag_value_t)(v)) 00145 #define nthtag_authentication_vr(vp) ((tag_value_t)(vp)) 00146 #endif 00147 00148 NTH_DLL extern tag_typedef_t nthtag_authentication; 00150 #define NTHTAG_AUTHENTICATION(x) \ 00151 nthtag_authentication, nthtag_authentication_v((x)) 00152 00153 NTH_DLL extern tag_typedef_t nthtag_authentication_ref; 00154 #define NTHTAG_AUTHENTICATION_REF(x) \ 00155 nthtag_authentication_ref, nthtag_authentication_vr(&(x)) 00156 00157 NTH_DLL extern tag_typedef_t nthtag_max_retry_after; 00159 #define NTHTAG_MAX_RETRY_AFTER(x) nthtag_max_retry_after, tag_int_v((x)) 00160 00161 NTH_DLL extern tag_typedef_t nthtag_max_retry_after_ref; 00162 #define NTHTAG_MAX_RETRY_AFTER_REF(x) \ 00163 nthtag_max_retry_after_ref, tag_int_vr(&(x)) 00164 00165 /* Server-side tags */ 00166 00167 NTH_DLL extern tag_typedef_t nthtag_root; 00169 #define NTHTAG_ROOT(x) nthtag_root, tag_ptr_v((x)) 00170 00171 NTH_DLL extern tag_typedef_t nthtag_root_ref; 00172 #define NTHTAG_ROOT_REF(x) nthtag_root_ref, tag_ptr_vr(&(x), (x)) 00173 00174 NTH_DLL extern tag_typedef_t nthtag_strict_host; 00176 #define NTHTAG_STRICT_HOST(x) nthtag_strict_host, tag_bool_v((x)) 00177 00178 NTH_DLL extern tag_typedef_t nthtag_strict_host_ref; 00179 #define NTHTAG_STRICT_HOST_REF(x) nthtag_strict_host_ref, tag_bool_vr(&(x)) 00180 00181 NTH_DLL extern tag_typedef_t nthtag_auth_module; 00183 #define NTHTAG_AUTH_MODULE(x) nthtag_auth_module, tag_ptr_v((x)) 00184 00185 NTH_DLL extern tag_typedef_t nthtag_auth_module_ref; 00186 #define NTHTAG_AUTH_MODULE_REF(x) nthtag_auth_module_ref, tag_ptr_vr(&(x), (x)) 00187 00188 SOFIA_END_DECLS 00189 00190 #endif /* !defined NTH_TAG_H */