01: package org.objectweb.celtix.transports;
02:
03: import java.io.IOException;
04:
05: import javax.xml.ws.handler.MessageContext;
06:
07: import org.objectweb.celtix.context.OutputStreamMessageContext;
08: import org.objectweb.celtix.ws.addressing.EndpointReferenceType;
09:
10: /**
11: * ServerTransport
12: * @author dkulp
13: *
14: */
15: public interface ServerTransport extends Transport {
16:
17: /**
18: * activate the server transport, involves starting listeners or creating of message queues.
19: * @param callback - The call back object that the transport calls when there is a message to
20: * dispatch
21: */
22: void activate(ServerTransportCallback callback) throws IOException;
23:
24: /**
25: * deactivate the server transport, involves stopping the listeners or message queues.
26: * subsequently the transport could be activated using activate call.
27: */
28: void deactivate() throws IOException;
29:
30: /**
31: * Rebase the InputStreamMessageContext on an alternative response destination.
32: *
33: * @param context the MessageContext
34: * @param decoupledResponseEndpoint the decoupled response endpoint
35: * @param an output stream message context for the original channel
36: * @throws IOException If there is an error creating the context.
37: */
38: OutputStreamMessageContext rebase(MessageContext context,
39: EndpointReferenceType decoupledResponseEndpoint)
40: throws IOException;
41:
42: /**
43: *
44: * Do the post dispatch task here.
45: */
46: void postDispatch(MessageContext bindingContext,
47: OutputStreamMessageContext context) throws IOException;
48:
49: }
|