isolatesystemservicerequesthandler.java

来自「This is a resource based on j2me embedde」· Java 代码 · 共 104 行

JAVA
104
字号
/* * * * Copyright  1990-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. *  * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). *  * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA *  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */package com.sun.midp.services;import com.sun.cldc.isolate.*;import com.sun.midp.links.*;import java.io.*;final class IsolateSystemServiceRequestHandler     implements SystemServiceRequestListener {    private Isolate serviceIsolate = null;    private Isolate clientIsolate = null;    private SystemServiceManager serviceManager = null;    private SystemService requestedService = null;    private SystemServiceConnectionLinks sendReceiveLinks = null;    private SystemServiceRequestProtocolAMS serviceRequestProtocol = null;    IsolateSystemServiceRequestHandler(SystemServiceManager serviceManager,             Isolate clientIsolate) {        this.serviceIsolate = Isolate.currentIsolate();        this.clientIsolate = clientIsolate;        this.serviceManager = serviceManager;        Link sendLink = Link.newLink(serviceIsolate, clientIsolate);        Link receiveLink = Link.newLink(clientIsolate, serviceIsolate);              this.sendReceiveLinks = new SystemServiceConnectionLinks(                sendLink, receiveLink);        serviceRequestProtocol = new SystemServiceRequestProtocolAMS(this);    }    SystemServiceConnectionLinks getSendReceiveLinks() {        return sendReceiveLinks;    }    void handleServiceRequest()        throws ClosedLinkException,                InterruptedIOException,                IOException {        serviceRequestProtocol.handleServiceRequest(sendReceiveLinks);    }    public SystemServiceConnectionLinks onServiceRequest(String serviceID) {        requestedService = serviceManager.getService(serviceID);        if (requestedService == null) {            return null;        }        Link serviceToClient = Link.newLink(serviceIsolate, clientIsolate);        Link clientToService = Link.newLink(clientIsolate, serviceIsolate);        SystemServiceConnectionLinks connectionLinks =             new SystemServiceConnectionLinks(serviceToClient, clientToService);        return connectionLinks;    }    public void onLinksPassedToClient(SystemServiceConnectionLinks             connectionLinks) {        if (connectionLinks == null || requestedService == null) {            throw new IllegalStateException();        }        SystemServiceConnection serviceConnection =             new SystemServiceConnectionImpl(connectionLinks);                    synchronized (requestedService) {            requestedService.acceptConnection(serviceConnection);        }        requestedService = null;    }}

⌨️ 快捷键说明

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