⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eventhandlerbase.java

📁 java1.6众多例子参考
💻 JAVA
字号:
/* * @(#)EventHandlerBase.java	1.10 05/11/17 *  * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.corba.se.impl.transport;import java.nio.channels.SelectionKey;import org.omg.CORBA.INTERNAL;import com.sun.corba.se.pept.transport.Acceptor;import com.sun.corba.se.pept.transport.Connection;import com.sun.corba.se.pept.transport.EventHandler;import com.sun.corba.se.spi.orb.ORB;import com.sun.corba.se.spi.orbutil.threadpool.NoSuchThreadPoolException;import com.sun.corba.se.spi.orbutil.threadpool.NoSuchWorkQueueException;import com.sun.corba.se.spi.orbutil.threadpool.Work;import com.sun.corba.se.impl.orbutil.ORBUtility;public abstract class EventHandlerBase    implements	EventHandler{    protected ORB orb;    protected Work work;    protected boolean useWorkerThreadForEvent;    protected boolean useSelectThreadToWait;    protected SelectionKey selectionKey;    ////////////////////////////////////////////////////    //    // EventHandler methods    //    public void setUseSelectThreadToWait(boolean x)    {	useSelectThreadToWait = x;    }    public boolean shouldUseSelectThreadToWait()    {	return useSelectThreadToWait;    }    public void setSelectionKey(SelectionKey selectionKey)    {	this.selectionKey = selectionKey;    }    public SelectionKey getSelectionKey()    {	return selectionKey;    }    /*     * NOTE:     * This is not thread-safe by design.     * Only one thread should call it - a reader/listener/select thread.     * Not stateless: interest ops, registration.     */    public void handleEvent()    {	if (orb.transportDebugFlag) {	    dprint(".handleEvent->: " + this);	}	getSelectionKey().interestOps(getSelectionKey().interestOps() &				      (~ getInterestOps()));	if (shouldUseWorkerThreadForEvent()) {	    Throwable throwable = null;	    try {		if (orb.transportDebugFlag) {		    dprint(".handleEvent: addWork to pool: " + 0);		}		orb.getThreadPoolManager().getThreadPool(0)		    .getWorkQueue(0).addWork(getWork());	    } catch (NoSuchThreadPoolException e) {		throwable = e;	    } catch (NoSuchWorkQueueException e) {		throwable = e;	    }	    // REVISIT: need to close connection.	    if (throwable != null) {		if (orb.transportDebugFlag) {		    dprint(".handleEvent: " + throwable);		}		INTERNAL i = new INTERNAL("NoSuchThreadPoolException");		i.initCause(throwable);		throw i;	    }	} else {	    if (orb.transportDebugFlag) {		dprint(".handleEvent: doWork");	    }	    getWork().doWork();	}	if (orb.transportDebugFlag) {	    dprint(".handleEvent<-: " + this);	}    }    public boolean shouldUseWorkerThreadForEvent()    {	return useWorkerThreadForEvent;    }    public void setUseWorkerThreadForEvent(boolean x)    {	useWorkerThreadForEvent = x;    }    public void setWork(Work work)    {	this.work = work;    }    public Work getWork()    {	return work;    }    private void dprint(String msg)    {	ORBUtility.dprint("EventHandlerBase", msg);    }}// End of file.

⌨️ 快捷键说明

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