nth
1.12.11devel
Main Page
Related Pages
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Macros
Groups
Pages
libsofia-sip-ua
nth
sofia-sip
nth.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
33
/* ----------------------------------------------------------------------
34
* 1) Types
35
*/
36
37
#ifndef NTH_H_TYPES
38
#define NTH_H_TYPES
39
41
typedef
struct
nth_engine_s
nth_engine_t
;
43
typedef
struct
nth_client_s
nth_client_t
;
44
46
typedef
struct
nth_site_s
nth_site_t
;
48
typedef
struct
nth_request_s
nth_request_t
;
49
50
#ifndef NTH_CLIENT_MAGIC_T
51
54
#define NTH_CLIENT_MAGIC_T struct nth_client_magic_s
55
#endif
56
58
typedef
NTH_CLIENT_MAGIC_T
nth_client_magic_t
;
59
60
#ifndef NTH_SITE_MAGIC_T
61
64
#define NTH_SITE_MAGIC_T struct nth_site_magic_s
65
#endif
66
68
typedef
NTH_SITE_MAGIC_T
nth_site_magic_t
;
69
70
#endif
71
72
#ifndef NTH_H
73
74
#define NTH_H
75
76
/* ----------------------------------------------------------------------
77
* 2) Constants
78
*/
79
81
#define NTH_VERSION "1.0"
82
83
#define NTH_CLIENT_VERSION NTH_VERSION
84
#define NTH_SERVER_VERSION NTH_VERSION
85
86
/* ----------------------------------------------------------------------
87
* 3) Other include files
88
*/
89
90
#include <
sofia-sip/su_wait.h
>
91
#include <
sofia-sip/su_tag.h
>
92
#include <
sofia-sip/http.h
>
93
#include <
sofia-sip/http_status.h
>
94
95
#ifndef NTH_TAG_H
96
#include <
sofia-sip/nth_tag.h
>
97
#endif
98
99
/* ----------------------------------------------------------------------
100
* 3) Engine prototypes
101
*/
102
103
SOFIA_BEGIN_DECLS
104
105
NTH_DLL
char
const
*nth_engine_version(
void
);
106
107
NTH_DLL
nth_engine_t
*nth_engine_create(
su_root_t
*root,
108
tag_type_t
tag,
tag_value_t
value, ...);
109
NTH_DLL
void
nth_engine_destroy(
nth_engine_t
*engine);
110
111
NTH_DLL
int
nth_engine_set_params(
nth_engine_t
*engine,
112
tag_type_t
tag,
tag_value_t
value, ...);
113
NTH_DLL
int
nth_engine_get_params(
nth_engine_t
const
*engine,
114
tag_type_t
tag,
tag_value_t
value, ...);
115
NTH_DLL
int
nth_engine_get_stats(
nth_engine_t
const
*engine,
116
tag_type_t
tag,
tag_value_t
value, ...);
117
118
NTH_DLL
msg_t
*
nth_engine_msg_create
(
nth_engine_t
*he,
int
flags);
119
120
/* ----------------------------------------------------------------------
121
* 4) Prototypes for client transactions
122
*/
123
typedef
int
nth_response_f(
nth_client_magic_t
*magic,
124
nth_client_t
*request,
125
http_t
const
*http);
126
127
NTH_DLL
nth_client_t
*nth_client_tcreate(
nth_engine_t
*engine,
128
nth_response_f *callback,
129
nth_client_magic_t
*magic,
130
http_method_t
method,
131
char
const
*method_name,
132
url_string_t
const
*request_uri,
133
tag_type_t
tag,
tag_value_t
value,
134
...);
135
136
NTH_DLL
int
nth_client_status
(
nth_client_t
const
*clnt);
137
NTH_DLL
http_method_t
nth_client_method
(
nth_client_t
const
*cnlt);
138
NTH_DLL
int
nth_client_is_streaming
(
nth_client_t
const
*hc);
139
140
NTH_DLL
url_t
const
*
nth_client_url
(
nth_client_t
const
*clnt);
141
142
NTH_DLL
msg_t
*
nth_client_request
(
nth_client_t
*clnt);
143
NTH_DLL
msg_t
*
nth_client_response
(
nth_client_t
const
*clnt);
144
NTH_DLL
void
nth_client_destroy
(
nth_client_t
*clnt);
145
146
/* ----------------------------------------------------------------------
147
* 5) Server side prototypes
148
*/
149
150
typedef
int
nth_request_f(
nth_site_magic_t
*lmagic,
151
nth_site_t
*server,
152
nth_request_t
*req,
153
http_t
const
*http,
154
char
const
*path);
155
156
char
const
*
nth_site_server_version
(
void
);
157
158
NTH_DLL
nth_site_t
*
nth_site_create
(
nth_site_t
*parent,
159
nth_request_f *req_callback,
160
nth_site_magic_t
*magic,
161
url_string_t
const
*address,
162
tag_type_t
tag,
tag_value_t
value,
163
...);
164
165
NTH_DLL
void
nth_site_destroy(
nth_site_t
*site);
166
167
NTH_DLL
nth_site_magic_t
*nth_site_magic(
nth_site_t
const
*site);
168
169
NTH_DLL
void
nth_site_bind(
nth_site_t
*site,
170
nth_request_f *callback,
171
nth_site_magic_t
*);
172
173
NTH_DLL
su_time_t
nth_site_access_time
(
nth_site_t
const
*site);
174
175
NTH_DLL
int
nth_site_set_params(
nth_site_t
*site,
176
tag_type_t
tag,
tag_value_t
value, ...);
177
NTH_DLL
int
nth_site_get_params(
nth_site_t
const
*site,
178
tag_type_t
tag,
tag_value_t
value, ...);
179
NTH_DLL
int
nth_site_get_stats(
nth_site_t
const
*site,
180
tag_type_t
tag,
tag_value_t
value, ...);
181
182
NTH_DLL
url_t
const
*
nth_site_url
(
nth_site_t
const
*site);
183
184
/* ----------------------------------------------------------------------
185
* 6) Prototypes for server transactions
186
*/
187
188
NTH_DLL
int
nth_request_status
(
nth_request_t
const
*req);
189
NTH_DLL
http_method_t
nth_request_method(
nth_request_t
const
*req);
190
NTH_DLL
msg_t
*nth_request_message(
nth_request_t
*req);
191
192
NTH_DLL
int
nth_request_treply(
nth_request_t
*ireq,
193
int
status,
char
const
*phrase,
194
tag_type_t
tag,
tag_value_t
value, ...);
195
196
NTH_DLL
void
nth_request_destroy(
nth_request_t
*req);
197
198
NTH_DLL
struct
auth_status_t *
nth_request_auth
(
nth_request_t
const
*req);
199
200
SOFIA_END_DECLS
201
202
#endif
Sofia-SIP 1.12.11devel - Copyright (C) 2006 Nokia Corporation. All rights reserved. Licensed under the terms of the GNU Lesser General Public License.