socketcallbacklistener.java

来自「SRI international 发布的OAA框架软件」· Java 代码 · 共 64 行

JAVA
64
字号
/* $Id: SocketCallbackListener.java,v 1.3 2003/09/27 03:01:13 giuli Exp $*/
/**************************************************************************
 * Copyright 2002, 2003 SRI International. All rights reserved.
 *
 * The material contained in this file is confidential and proprietary to SRI
 * International and may not be reproduced, published, or disclosed to others
 * without authorization from SRI International.
 *
 * DISCLAIMER OF WARRANTIES
 *
 * SRI International MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
 * SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT
 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SRI International SHALL NOT BE
 * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
 * OR DISTRIBUTING THIS SOFTWARE
 **************************************************************************/
package com.sri.sedc.javanetbridge.io;

import com.sri.sedc.javanetbridge.JavaNetBridgeBeanImpl;
import com.sri.sedc.javanetbridge.CallbackEventListener;

import java.net.Socket;
import java.io.IOException;

/**
 *
 */
class SocketCallbackListener implements CallbackEventListener {
    private DataMarshalInputStream in;
    private DataMarshalOutputStream out;
    private JavaNetBridgeBeanImpl bean;
    private Socket socket;
    private DataMarshalServerImpl server;

    SocketCallbackListener(Socket socket, DataMarshalInputStream in,
                           DataMarshalOutputStream out, JavaNetBridgeBeanImpl bean,
                           DataMarshalServerImpl server) {
        this.in = in;
        this.out = out;
        this.bean = bean;
        this.socket = socket;
        this.server = server;
    }

    public void notifyCallback(int eventId) {
        try {
            synchronized (out) {
                out.write(JavaNetBridgeBeanImpl.CALLBACK_INDICATOR);
                out.write(eventId);
                out.flush();
            }
        } catch (IOException e) {
            bean.removeCallbackEventListener(this);
            e.printStackTrace();
            try {
                socket.close();
            } catch (IOException e1) {
            }
            server.notifyDisconnect(bean);
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?