01: /*
02: *
03: *
04: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
05: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
06: *
07: * This program is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU General Public License version
09: * 2 only, as published by the Free Software Foundation.
10: *
11: * This program is distributed in the hope that it will be useful, but
12: * WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * General Public License version 2 for more details (a copy is
15: * included at /legal/license.txt).
16: *
17: * You should have received a copy of the GNU General Public License
18: * version 2 along with this work; if not, write to the Free Software
19: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20: * 02110-1301 USA
21: *
22: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
23: * Clara, CA 95054 or visit www.sun.com if you need additional
24: * information or have any questions.
25: */
26:
27: package com.sun.midp.services;
28:
29: /**
30: * Connection between service and client allowing to pass messages
31: * between them. Connection stays open until client Isolate exits.
32: * When connection is closed, service will be notified to give it
33: * a chance to perform necessary cleanup.
34: */
35: public interface SystemServiceConnection {
36: /**
37: * Receives a message. Blocks until there is a message to receive.
38: * On client side, it receives message from service. On service side,
39: * it receives message from client.
40: *
41: * @return received message
42: */
43: public SystemServiceMessage receive()
44: throws SystemServiceConnectionClosedException;
45:
46: /**
47: * Sends a message. Blocks until message is received. On client side,
48: * it sends message to service. On service side, it sends message
49: * to client.
50: *
51: * @param msg message to send
52: */
53: public void send(SystemServiceMessage msg)
54: throws SystemServiceConnectionClosedException;
55:
56: /**
57: * Sets a listener which will be notified when message has arrived.
58: *
59: * @param listener listener to notify. if null, removes current
60: * listener.
61: */
62: public void setConnectionListener(
63: SystemServiceConnectionListener listener);
64: }
|