当前位置: 首页>>代码示例>>Java>>正文


Java AbstractSelectableChannel.validOps方法代码示例

本文整理汇总了Java中java.nio.channels.spi.AbstractSelectableChannel.validOps方法的典型用法代码示例。如果您正苦于以下问题:Java AbstractSelectableChannel.validOps方法的具体用法?Java AbstractSelectableChannel.validOps怎么用?Java AbstractSelectableChannel.validOps使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.nio.channels.spi.AbstractSelectableChannel的用法示例。


在下文中一共展示了AbstractSelectableChannel.validOps方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: register

import java.nio.channels.spi.AbstractSelectableChannel; //导入方法依赖的package包/类
protected SelectionKey register(AbstractSelectableChannel ch, int ops, Object att)
{
  if (!(ch instanceof VMChannelOwner))
    throw new IllegalArgumentException("unsupported channel type");

  VMChannel channel = ((VMChannelOwner) ch).getVMChannel();
  try
    {
      int native_fd = channel.getState().getNativeFD();
      synchronized (keys)
      {
        if (keys.containsKey(Integer.valueOf(native_fd)))
          throw new IllegalArgumentException("channel already registered");
        EpollSelectionKeyImpl result =
          new EpollSelectionKeyImpl(this, ch, native_fd);
        if ((ops & ~(ch.validOps())) != 0)
          throw new IllegalArgumentException("invalid ops for channel");
        result.interestOps = ops;
        result.selectedOps = 0;
        result.valid = true;
        result.attach(att);
        result.key = System.identityHashCode(result);
        epoll_add(epoll_fd, result.fd, ops);
        keys.put(Integer.valueOf(native_fd), result);
        reallocateBuffer();
        return result;
      }
    }
  catch (IOException ioe)
    {
      throw new IllegalArgumentException(ioe);
    }
}
 
开发者ID:vilie,项目名称:javify,代码行数:34,代码来源:EpollSelectorImpl.java

示例2: register

import java.nio.channels.spi.AbstractSelectableChannel; //导入方法依赖的package包/类
protected SelectionKey register(AbstractSelectableChannel ch, int ops, Object att)
{
  if (!(ch instanceof VMChannelOwner))
    throw new IllegalArgumentException("unsupported channel type");

  VMChannel channel = ((VMChannelOwner) ch).getVMChannel();
  try
    {
      int native_fd = channel.getState().getNativeFD();
      synchronized (keys)
      {
        if (keys.containsKey(Integer.valueOf(native_fd)))
          throw new IllegalArgumentException("channel already registered");
        EpollSelectionKeyImpl result =
          new EpollSelectionKeyImpl(this, ch, native_fd);
        if ((ops & ~(ch.validOps())) != 0)
          throw new IllegalArgumentException("invalid ops for channel");
        result.interestOps = ops;
        result.selectedOps = 0;
        result.valid = true;
        result.attach(att);
        result.key = System.identityHashCode(result);
        epoll_add(epoll_fd, result.fd, ops);
        keys.put(Integer.valueOf(native_fd), result);
 reallocateBuffer();
        return result;
      }
    }
  catch (IOException ioe)
    {
      throw new IllegalArgumentException(ioe);
    }
}
 
开发者ID:nmldiegues,项目名称:jvm-stm,代码行数:34,代码来源:EpollSelectorImpl.java


注:本文中的java.nio.channels.spi.AbstractSelectableChannel.validOps方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。