1 #ifndef _corby_object_h
2 #define _corby_object_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 <corby/message.h>
34 #include <corby/channel.h>
35 #include <corby/buffer.h>
36 #include <corby/corby.h>
37 
38 #if defined(__cplusplus)
39 extern "C"
40 {
41 #endif
42 
43 struct										_sw_corby_orb;
44 struct										_sw_corby_object;
45 typedef struct _sw_corby_object	*	sw_corby_object;
46 typedef sw_opaque							sw_corby_object_send_completion_handler;
47 typedef void
48 (HOWL_API *sw_corby_object_send_completion_func)(
49 												sw_corby_object	object,
50 												sw_corby_buffer	buffer,
51 												sw_result			result);
52 
53 
54 
55 sw_result HOWL_API
56 sw_corby_object_init_from_url(
57 							sw_corby_object			*	self,
58 							struct _sw_corby_orb		*	orb,
59 							sw_const_string				url,
60 							sw_socket_options				options,
61 							sw_uint32							bufsize);
62 
63 
64 sw_result HOWL_API
65 sw_corby_object_fina(
66 							sw_corby_object		self);
67 
68 
69 sw_result HOWL_API
70 sw_corby_object_start_request(
71 							sw_corby_object 		self,
72 							sw_const_string		op,
73 							sw_uint32					op_len,
74 							sw_bool					reply_expected,
75 							sw_corby_buffer	*	buffer);
76 
77 
78 sw_result HOWL_API
79 sw_corby_object_send(
80 							sw_corby_object					self,
81 							sw_corby_buffer					buffer,
82 							sw_corby_buffer_observer		observer,
83 							sw_corby_buffer_written_func	func,
84 							sw_opaque							extra);
85 
86 
87 sw_result HOWL_API
88 sw_corby_object_recv(
89 							sw_corby_object		self,
90 							sw_corby_message	*	message,
91                      sw_corby_buffer	*	buffer,
92                      sw_uint8				*	endian,
93                      sw_bool					block);
94 
95 
96 sw_result HOWL_API
97 sw_corby_object_channel(
98 							sw_corby_object		self,
99 							sw_corby_channel	*	channel);
100 
101 
102 sw_result HOWL_API
103 sw_corby_object_set_channel(
104 							sw_corby_object		self,
105 							sw_corby_channel		channel);
106 
107 
108 #if defined(__cplusplus)
109 }
110 #endif
111 
112 
113 #endif
114