nth  1.12.11devel
 All Data Structures Files Functions Variables Typedefs Macros Groups Pages
nth_tag.h
Go to the documentation of this file.
1 /*
2  * This file is part of the Sofia-SIP package
3  *
4  * Copyright (C) 2005 Nokia Corporation.
5  *
6  * Contact: Pekka Pessi <pekka.pessi@nokia-email.address.hidden>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * as published by the Free Software Foundation; either version 2.1 of
11  * the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21  * 02110-1301 USA
22  *
23  */
24 
25 #ifndef NTH_TAG_H
26 
27 #define NTH_TAG_H
28 
37 #ifndef SU_TAG_H
38 #include <sofia-sip/su_tag.h>
39 #endif
40 
41 #ifndef URL_TAG_H
42 #include <sofia-sip/url_tag.h>
43 #endif
44 
45 #ifndef HTTP_TAG_H
46 #include <sofia-sip/http_tag.h>
47 #endif
48 
49 SOFIA_BEGIN_DECLS
50 
52 NTH_DLL extern tagi_t nth_client_tags[];
53 
55 #define NTHTAG_ANY() nthtag_any, ((tag_value_t)0)
56 NTH_DLL extern tag_typedef_t nthtag_any;
57 
58 /* Common tags */
59 
60 NTH_DLL extern tag_typedef_t nthtag_mclass;
62 #define NTHTAG_MCLASS(x) nthtag_mclass, tag_cptr_v((x))
63 
64 NTH_DLL extern tag_typedef_t nthtag_mclass_ref;
65 #define NTHTAG_MCLASS_REF(x) nthtag_mclass_ref, tag_cptr_vr(&(x), (x))
66 
67 NTH_DLL extern tag_typedef_t nthtag_mflags;
69 #define NTHTAG_MFLAGS(x) nthtag_mflags, tag_int_v((x))
70 
71 NTH_DLL extern tag_typedef_t nthtag_mflags_ref;
72 #define NTHTAG_MFLAGS_REF(x) nthtag_mflags_ref, tag_int_vr(&(x))
73 
74 NTH_DLL extern tag_typedef_t nthtag_streaming;
76 #define NTHTAG_STREAMING(x) nthtag_streaming, tag_bool_v((x))
77 
78 NTH_DLL extern tag_typedef_t nthtag_streaming_ref;
79 #define NTHTAG_STREAMING_REF(x) nthtag_streaming_ref, tag_bool_vr(&(x))
80 
81 /* Client-only tags */
82 
83 NTH_DLL extern tag_typedef_t nthtag_proxy;
85 #define NTHTAG_PROXY(x) nthtag_proxy, urltag_url_v((x))
86 
87 NTH_DLL extern tag_typedef_t nthtag_proxy_ref;
88 #define NTHTAG_PROXY_REF(x) nthtag_proxy_ref, urltag_url_vr(&(x))
89 
90 NTH_DLL extern tag_typedef_t nthtag_expires;
92 #define NTHTAG_EXPIRES(x) nthtag_expires, tag_uint_v((x))
93 
94 NTH_DLL extern tag_typedef_t nthtag_expires_ref;
95 #define NTHTAG_EXPIRES_REF(x) nthtag_expires_ref, tag_uint_vr(&(x))
96 
97 NTH_DLL extern tag_typedef_t nthtag_error_msg;
99 #define NTHTAG_ERROR_MSG(x) nthtag_error_msg, tag_bool_v((x))
100 
101 NTH_DLL extern tag_typedef_t nthtag_error_msg_ref;
102 #define NTHTAG_ERROR_MSG_REF(x) nthtag_error_msg_ref, tag_bool_vr(&(x))
103 
104 #if SU_INLINE_TAG_CAST
105 struct nth_client_s;
106 su_inline tag_value_t nthtag_template_v(struct nth_client_s const *v)
107 { return (tag_value_t)v; }
108 su_inline tag_value_t nthtag_template_vr(struct nth_client_s const **vp)
109 {return(tag_value_t)vp;}
110 #else
111 #define nthtag_template_v(v) ((tag_value_t)(v))
112 #define nthtag_template_vr(vp) ((tag_value_t)(vp))
113 #endif
114 
115 NTH_DLL extern tag_typedef_t nthtag_template;
117 #define NTHTAG_TEMPLATE(x) nthtag_template, nthtag_template_v((x))
118 
119 NTH_DLL extern tag_typedef_t nthtag_template_ref;
120 #define NTHTAG_TEMPLATE_REF(x) nthtag_template_ref, nthtag_template_vr(&(x))
121 
122 #if SU_INLINE_TAG_CAST
123 su_inline tag_value_t nthtag_message_v(struct msg_s *v)
124 { return (tag_value_t)v; }
125 su_inline tag_value_t nthtag_message_vr(struct msg_s **vp)
126 { return(tag_value_t)vp; }
127 #else
128 #define nthtag_message_v(v) ((tag_value_t)(v))
129 #define nthtag_message_vr(vp) ((tag_value_t)(vp))
130 #endif
131 
132 NTH_DLL extern tag_typedef_t nthtag_message;
134 #define NTHTAG_MESSAGE(x) nthtag_message, nthtag_message_v((x))
135 
136 NTH_DLL extern tag_typedef_t nthtag_message_ref;
137 #define NTHTAG_MESSAGE_REF(x) nthtag_message_ref, nthtag_message_vr(&(x))
138 
139 #if SU_HAVE_INLINE
140 struct auth_client_s;
141 su_inline tag_value_t nthtag_authentication_v(struct auth_client_s **v) { return (tag_value_t)v; }
142 su_inline tag_value_t nthtag_authentication_vr(struct auth_client_s ***vp) {return(tag_value_t)vp;}
143 #else
144 #define nthtag_authentication_v(v) ((tag_value_t)(v))
145 #define nthtag_authentication_vr(vp) ((tag_value_t)(vp))
146 #endif
147 
148 NTH_DLL extern tag_typedef_t nthtag_authentication;
150 #define NTHTAG_AUTHENTICATION(x) \
151 nthtag_authentication, nthtag_authentication_v((x))
152 
153 NTH_DLL extern tag_typedef_t nthtag_authentication_ref;
154 #define NTHTAG_AUTHENTICATION_REF(x) \
155 nthtag_authentication_ref, nthtag_authentication_vr(&(x))
156 
157 NTH_DLL extern tag_typedef_t nthtag_max_retry_after;
159 #define NTHTAG_MAX_RETRY_AFTER(x) nthtag_max_retry_after, tag_int_v((x))
160 
161 NTH_DLL extern tag_typedef_t nthtag_max_retry_after_ref;
162 #define NTHTAG_MAX_RETRY_AFTER_REF(x) \
163 nthtag_max_retry_after_ref, tag_int_vr(&(x))
164 
165 /* Server-side tags */
166 
167 NTH_DLL extern tag_typedef_t nthtag_root;
169 #define NTHTAG_ROOT(x) nthtag_root, tag_ptr_v((x))
170 
171 NTH_DLL extern tag_typedef_t nthtag_root_ref;
172 #define NTHTAG_ROOT_REF(x) nthtag_root_ref, tag_ptr_vr(&(x), (x))
173 
174 NTH_DLL extern tag_typedef_t nthtag_strict_host;
176 #define NTHTAG_STRICT_HOST(x) nthtag_strict_host, tag_bool_v((x))
177 
178 NTH_DLL extern tag_typedef_t nthtag_strict_host_ref;
179 #define NTHTAG_STRICT_HOST_REF(x) nthtag_strict_host_ref, tag_bool_vr(&(x))
180 
181 NTH_DLL extern tag_typedef_t nthtag_auth_module;
183 #define NTHTAG_AUTH_MODULE(x) nthtag_auth_module, tag_ptr_v((x))
184 
185 NTH_DLL extern tag_typedef_t nthtag_auth_module_ref;
186 #define NTHTAG_AUTH_MODULE_REF(x) nthtag_auth_module_ref, tag_ptr_vr(&(x), (x))
187 
188 SOFIA_END_DECLS
189 
190 #endif /* !defined NTH_TAG_H */

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