sdp  1.12.11devel
sdp_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 SDP_TAG_H
26 
27 #define SDP_TAG_H
28 
38 #ifndef SU_TAG_H
39 #include <sofia-sip/su_tag.h>
40 #endif
41 #ifndef SU_TAG_CLASS_H
42 #include <sofia-sip/su_tag_class.h>
43 #endif
44 
45 SOFIA_BEGIN_DECLS
46 
47 struct sdp_session_s;
48 
50 #define SDPTAG_ANY() sdptag_any, ((tag_value_t)0)
51 SDP_DLL extern tag_typedef_t sdptag_any;
52 
53 /* Tags for parameters */
54 
55 SDP_DLL extern tag_typedef_t sdptag_session;
57 #define SDPTAG_SESSION(x) \
58 sdptag_session, sdptag_session_v((x))
59 
60 SDP_DLL extern tag_typedef_t sdptag_session_ref;
61 #define SDPTAG_SESSION_REF(x) \
62 sdptag_session_ref, sdptag_session_vr(&(x))
63 
64 /* Functions for typesafe parameter passing */
65 
66 #if SU_HAVE_INLINE
68 tag_value_t sdptag_session_v(struct sdp_session_s const *v) {
69  return (tag_value_t)v;
70 }
72 tag_value_t sdptag_session_vr(struct sdp_session_s const **vp) {
73  return (tag_value_t)vp;
74 }
75 #else
76 #define sdptag_session_v(v) (tag_value_t)(v)
77 #define sdptag_session_vr(vp) (tag_value_t)(vp)
78 #endif
79 
80 /* Tag classes */
81 
83 
84 #define SDPTAG_TYPEDEF(name) \
85  {{ TAG_NAMESPACE, #name, sdptag_session_class }}
86 
87 SOFIA_END_DECLS
88 
89 #endif /* !defined(SDP_TAG_H) */
struct tag_type_s const tag_typedef_t[1]
tag_class_t sdptag_session_class[]
Tag class for SDP tags.
Definition: sdp.c:1142
#define su_inline
intptr_t tag_value_t
Session description.
Definition: sdp.h:81
struct tag_class_s const tag_class_t

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