sofia-sip/nth_tag.h

Go to the documentation of this file.
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_HAVE_INLINE
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_HAVE_INLINE
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 */

Sofia-SIP 1.12.6work - Copyright (C) 2006 Nokia Corporation. All rights reserved. Licensed under the terms of the GNU Lesser General Public License.