• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/avahi-0.6.25/avahi-compat-howl/include/corby/
1#ifndef _sw_corby_channel_h
2#define _sw_corby_channel_h
3
4/*
5 * Copyright 2003, 2004 Porchdog Software. All rights reserved.
6 *
7 *	Redistribution and use in source and binary forms, with or without modification,
8 *	are permitted provided that the following conditions are met:
9 *
10 *		1. Redistributions of source code must retain the above copyright notice,
11 *		   this list of conditions and the following disclaimer.
12 *		2. Redistributions in binary form must reproduce the above copyright notice,
13 *		   this list of conditions and the following disclaimer in the documentation
14 *		   and/or other materials provided with the distribution.
15 *
16 *	THIS SOFTWARE IS PROVIDED BY PORCHDOG SOFTWARE ``AS IS'' AND ANY
17 *	EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 *	WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 *	IN NO EVENT SHALL THE HOWL PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
20 *	INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21 *	BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 *	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23 *	OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
24 *	OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
25 *	OF THE POSSIBILITY OF SUCH DAMAGE.
26 *
27 *	The views and conclusions contained in the software and documentation are those
28 *	of the authors and should not be interpreted as representing official policies,
29 *	either expressed or implied, of Porchdog Software.
30 */
31
32#include <salt/salt.h>
33#include <salt/socket.h>
34#include <corby/corby.h>
35#include <corby/buffer.h>
36
37
38#ifdef __cplusplus
39extern "C"
40{
41#endif
42
43struct												_sw_corby_channel;
44typedef struct _sw_corby_channel			*	sw_corby_channel;
45struct												_sw_corby_message;
46struct												_sw_corby_profile;
47typedef struct _sw_corby_profile			*	sw_corby_profile;
48typedef struct _sw_corby_profile const	*	sw_const_corby_profile;
49
50
51typedef enum _sw_corby_reply_status
52{
53   SW_CORBY_NO_EXCEPTION		=	0,
54   SW_CORBY_SYSTEM_EXCEPTION	=	1,
55   SW_CORBY_USER_EXCEPTION		=	2,
56   SW_CORBY_LOCATION_FORWARD	=	3
57} sw_corby_reply_status;
58
59
60typedef sw_result
61(HOWL_API *sw_corby_channel_will_send_func)(
62						sw_corby_channel			channel,
63						sw_octets					bytes,
64						sw_size_t					len,
65						sw_opaque_t					extra);
66
67
68typedef sw_result
69(HOWL_API *sw_corby_channel_did_read_func)(
70						sw_corby_channel			channel,
71						sw_octets					bytes,
72						sw_size_t					len,
73						sw_opaque_t					extra);
74
75
76typedef void
77(HOWL_API *sw_corby_channel_cleanup_func)(
78						sw_corby_channel			channel);
79
80
81typedef struct _sw_corby_channel_delegate
82{
83	sw_opaque_t								m_delegate;
84	sw_corby_channel_will_send_func	m_will_send_func;
85	sw_corby_channel_did_read_func	m_did_read_func;
86	sw_corby_channel_cleanup_func		m_cleanup_func;
87	sw_opaque_t								m_extra;
88} * sw_corby_channel_delegate;
89
90
91sw_result HOWL_API
92sw_corby_channel_start_request(
93							sw_corby_channel				self,
94							sw_const_corby_profile		profile,
95							struct _sw_corby_buffer	**	buffer,
96							sw_const_string				op,
97							sw_uint32						oplen,
98							sw_bool						reply_expected);
99
100
101sw_result HOWL_API
102sw_corby_channel_start_reply(
103							sw_corby_channel				self,
104							struct _sw_corby_buffer	**	buffer,
105							sw_uint32						request_id,
106							sw_corby_reply_status		status);
107
108
109sw_result HOWL_API
110sw_corby_channel_send(
111							sw_corby_channel					self,
112							struct _sw_corby_buffer		*	buffer,
113							sw_corby_buffer_observer		observer,
114							sw_corby_buffer_written_func	func,
115							sw_opaque_t							extra);
116
117
118sw_result HOWL_API
119sw_corby_channel_recv(
120							sw_corby_channel					self,
121							sw_salt							*	salt,
122							struct _sw_corby_message	**	message,
123							sw_uint32						*	request_id,
124							sw_string						*	op,
125							sw_uint32						*	op_len,
126							struct _sw_corby_buffer		**	buffer,
127							sw_uint8						*	endian,
128							sw_bool							block);
129
130
131sw_result HOWL_API
132sw_corby_channel_last_recv_from(
133							sw_corby_channel					self,
134							sw_ipv4_address				*	from,
135							sw_port						*	from_port);
136
137
138sw_result HOWL_API
139sw_corby_channel_ff(
140							sw_corby_channel					self,
141							struct _sw_corby_buffer		*	buffer);
142
143
144sw_socket HOWL_API
145sw_corby_channel_socket(
146							sw_corby_channel				self);
147
148
149sw_result HOWL_API
150sw_corby_channel_retain(
151							sw_corby_channel				self);
152
153
154sw_result HOWL_API
155sw_corby_channel_set_delegate(
156							sw_corby_channel				self,
157							sw_corby_channel_delegate	delegate);
158
159
160sw_corby_channel_delegate HOWL_API
161sw_corby_channel_get_delegate(
162							sw_corby_channel				self);
163
164
165void HOWL_API
166sw_corby_channel_set_app_data(
167							sw_corby_channel				self,
168							sw_opaque						app_data);
169
170
171sw_opaque HOWL_API
172sw_corby_channel_get_app_data(
173							sw_corby_channel				self);
174
175
176sw_result HOWL_API
177sw_corby_channel_fina(
178							sw_corby_channel				self);
179
180
181#ifdef __cplusplus
182}
183#endif
184
185
186#endif
187