5 * Copyright 2003, 2004 Porchdog Software. All rights reserved.
7 * Redistribution and use in source and binary forms, with or without modification,
8 * are permitted provided that the following conditions are met:
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.
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.
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.
32 #include <salt/salt.h>
33 #include <salt/address.h>
34 #include <salt/socket.h>
35 #include <corby/corby.h>
45 typedef struct _sw_corby_orb * sw_corby_orb;
46 typedef sw_opaque sw_corby_orb_observer;
47 typedef sw_opaque sw_corby_servant;
48 struct _sw_corby_object;
49 struct _sw_corby_channel;
50 struct _sw_corby_message;
51 struct _sw_corby_buffer;
54 (HOWL_API *sw_corby_orb_accept_channel_func)(
56 struct _sw_corby_channel * channel);
59 typedef struct _sw_corby_orb_delegate
62 sw_corby_orb_accept_channel_func m_accept_channel_func;
64 } * sw_corby_orb_delegate;
67 typedef struct _sw_corby_orb_config
74 } sw_corby_orb_config;
78 (HOWL_API *sw_corby_servant_cb)(
79 sw_corby_servant servant,
82 struct _sw_corby_channel * channel,
83 struct _sw_corby_message * message,
84 struct _sw_corby_buffer * buffer,
92 (HOWL_API *sw_corby_orb_observer_func)(
93 sw_corby_orb_observer handler,
96 struct _sw_corby_channel * channel,
104 const sw_corby_orb_config * config,
105 sw_corby_orb_observer observer,
106 sw_corby_orb_observer_func func,
116 sw_corby_orb_register_servant(
118 sw_corby_servant servant,
119 sw_corby_servant_cb cb,
121 struct _sw_corby_object ** object,
122 sw_const_string protocol_name);
126 sw_corby_orb_unregister_servant(
128 sw_const_string oid);
132 sw_corby_orb_register_bidirectional_object(
134 struct _sw_corby_object * object);
138 sw_corby_orb_register_channel(
140 struct _sw_corby_channel * channel);
143 sw_corby_orb_delegate HOWL_API
144 sw_corby_orb_get_delegate(
149 sw_corby_orb_set_delegate(
151 sw_corby_orb_delegate delegate);
155 sw_corby_orb_set_observer(
157 sw_corby_orb_observer observer,
158 sw_corby_orb_observer_func func,
163 sw_corby_orb_protocol_to_address(
171 sw_corby_orb_protocol_to_url(
174 sw_const_string name,
180 sw_corby_orb_read_channel(
182 struct _sw_corby_channel * channel);
186 sw_corby_orb_dispatch_message(
188 struct _sw_corby_channel * channel,
189 struct _sw_corby_message * message,
190 struct _sw_corby_buffer * buffer,