JavaTM Platform
Standard Ed. 6

java.nio.channels.spi
클래스 AbstractSelectableChannel

java.lang.Object 
  상위를 확장 java.nio.channels.spi.AbstractInterruptibleChannel 
      상위를 확장 java.nio.channels.SelectableChannel 
          상위를 확장 java.nio.channels.spi.AbstractSelectableChannel
모든 구현된 인터페이스:
Closeable , Channel , InterruptibleChannel
직계의 기존의 서브 클래스:
DatagramChannel , Pipe.SinkChannel , Pipe.SourceChannel , ServerSocketChannel , SocketChannel


public abstract class AbstractSelectableChannel
extends SelectableChannel

선택 가능 채널의 베이스 구현 클래스입니다.

이 클래스는, 채널의 등록, 등록 해제, 클로즈의 처리를 실시하는 메소드를 정의합니다. 이 클래스는, 이 채널의 현재의 블록 모드와 현재의 선택 키 세트를 관리합니다. 또,SelectableChannel 의 스펙을 구현하는데 필요한 동기 처리를 모두 실행합니다. 이 클래스에 정의되고 있는 abstract protected 메소드의 구현에서는, 같은 조작을 사용하는 것 외의 thread와의 동기 처리를 실시할 필요는 없습니다.

도입된 버젼:
1.4

생성자 의 개요
protected AbstractSelectableChannel (SelectorProvider  provider)
          이 클래스의 새로운 인스턴스를 초기화합니다.
 
메소드의 개요
 Object blockingLock ()
          configureBlocking 메소드와 register 메소드가 동기 하는 객체를 돌려줍니다.
 SelectableChannel configureBlocking (boolean block)
          이 채널의 블록 모드를 조정합니다.
protected  void implCloseChannel ()
          현재의 채널을 클로즈 합니다.
protected abstract  void implCloseSelectableChannel ()
          이 선택 가능 채널을 클로즈 합니다.
protected abstract  void implConfigureBlocking (boolean block)
          이 채널의 블록 모드를 조정합니다.
 boolean isBlocking ()
          이 채널상의 개개의 입출력 조작이 전의 입출력 조작이 완료할 때까지 블록 될지 어떨지를 판단합니다.
 boolean isRegistered ()
          현재 이 채널이 셀렉터에 등록되어 있는지 어떤지를 판단합니다.
 SelectionKey keyFor (Selector  sel)
          채널이 지정된 셀렉터에 등록되어 있는 것을 나타내는 키를 가져옵니다.
 SelectorProvider provider ()
          이 채널의 작성원프로바이더를 돌려줍니다.
 SelectionKey register (Selector  sel, int ops, Object  att)
          이 채널이 지정된 셀렉터에 등록해, 선택 키를 돌려줍니다.
 
클래스 java.nio.channels. SelectableChannel 로부터 상속된 메소드
register , validOps
 
클래스 java.nio.channels.spi. AbstractInterruptibleChannel 로부터 상속된 메소드
begin , close , end , isOpen
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 
인터페이스 java.nio.channels. Channel 로부터 상속된 메소드
close , isOpen
 

생성자 의 상세

AbstractSelectableChannel

protected AbstractSelectableChannel(SelectorProvider  provider)
이 클래스의 새로운 인스턴스를 초기화합니다.

메소드의 상세

provider

public final SelectorProvider  provider()
이 채널의 작성원프로바이더를 돌려줍니다.

정의:
클래스 SelectableChannel 내의 provider
반환값:
이 채널의 작성원프로바이더

isRegistered

public final boolean isRegistered()
클래스 SelectableChannel 의 기술:
현재 이 채널이 셀렉터에 등록되어 있는지 어떤지를 판단합니다. 새롭게 작성된 채널은 등록되어 있지 않습니다.

키의 취소로부터 채널의 등록 해제까지의 사이에 발생하는 필연적인 지연이기 때문에, 키를 모두 취소해도, 당분간의 사이 채널의 등록은 해제되지 않습니다. 채널을 클로즈 했을 때도 같습니다.

정의:
클래스 SelectableChannel 내의 isRegistered
반환값:
이 채널이 등록되어 있는 경우에 한해 true

keyFor

public final SelectionKey  keyFor(Selector  sel)
클래스 SelectableChannel 의 기술:
채널이 지정된 셀렉터에 등록되어 있는 것을 나타내는 키를 가져옵니다.

정의:
클래스 SelectableChannel 내의 keyFor
반환값:
전회 이 채널이 지정된 셀렉터에 등록했을 때 반환된 키. 현재 이 채널이 지정된 셀렉터에 등록되지 않은 경우는 null

register

public final SelectionKey  register(Selector  sel,
                                   int ops,
                                   Object  att)
                            throws ClosedChannelException 
이 채널이 지정된 셀렉터에 등록해, 선택 키를 돌려줍니다.

이 메소드는, 최초로 이 채널이 오픈하고 있는 것으로, 지정된 초기 대상 세트가 유효한 것을 확인합니다.

이 채널이 지정된 셀렉터에 등록되어 있는 경우, 그 대상 세트가 지정된 값으로 설정되어 등록을 나타내는 선택 키가 돌려주어집니다.

그 이외의 경우, 이 채널은 지정된 셀렉터에 아직 등록되지 않기 때문에, 적절한 락을 보관 유지한 상태로 셀렉터의 register 메소드가 불려 갑니다. 결과적으로 얻을 수 있는 키는, 돌려주어지기 전에, 이 채널의 키 세트에 추가됩니다.

정의:
클래스 SelectableChannel 내의 register
파라미터:
sel - 이 채널의 등록처 셀렉터
ops - 결과적으로 얻을 수 있는 키의 대상 세트
att - 결과적으로 얻을 수 있는 키의 첨부. null 의 경우도 있다
반환값:
이 채널이 지정된 셀렉터에 등록되어 있는 것을 나타내는 키
예외:
ClosedChannelException - 이 채널이 클로즈 하고 있는 경우

implCloseChannel

protected final void implCloseChannel()
                               throws IOException 
현재의 채널을 클로즈 합니다.

이 메소드는,AbstractInterruptibleChannel 클래스에서 지정되고 있습니다. 이 메소드는,close 메소드에 의해 불려 간 뒤, 이 채널을 실제로 클로즈 하는 처리를 실시하기 위해서(때문에) implCloseSelectableChannel 메소드를 호출합니다. 다음에, 이 채널의 키를 모두 취소합니다.

정의:
클래스 AbstractInterruptibleChannel 내의 implCloseChannel
예외:
IOException - 채널의 클로즈중에 입출력 에러가 발생했을 경우

implCloseSelectableChannel

protected abstract void implCloseSelectableChannel()
                                            throws IOException 
이 선택 가능 채널을 클로즈 합니다.

이 메소드는, 채널을 클로즈 하는 실제의 처리를 실행하기 위해서 close 메소드에 의해 불려 갑니다. 이 메소드는, 채널이 아직 클로즈 하고 있지 않는 경우에게만 불려 가 2 회 이상 불려 갈 것은 없습니다.

이 메소드의 구현은, 이 채널에 대한 입출력 조작의 도중에 블록 되는 그 외의 thread를, 예외를 throw 하는지, 일반적으로의 방법을 사용해 즉시 종료시키게 되어 있습니다.

예외:
IOException

isBlocking

public final boolean isBlocking()
클래스 SelectableChannel 의 기술:
이 채널상의 개개의 입출력 조작이 전의 입출력 조작이 완료할 때까지 블록 될지 어떨지를 판단합니다. 새롭게 작성된 채널은 항상 블록 모드입니다.

이 채널이 클로즈 하고 있는 경우, 이 메소드의 반환값은 특정되지 않습니다.

정의:
클래스 SelectableChannel 내의 isBlocking
반환값:
이 채널이 블록 모드인 경우에 한해 true

blockingLock

public final Object  blockingLock()
클래스 SelectableChannel 의 기술:
configureBlocking 메소드와 register 메소드가 동기 하는 객체를 돌려줍니다. 이 기능은, 특정의 블록 모드를 단시간 보관 유지할 필요가 있는 어댑터를 구현하는 경우에 편리합니다.

정의:
클래스 SelectableChannel 내의 blockingLock
반환값:
블록 모드의 락 객체

configureBlocking

public final SelectableChannel  configureBlocking(boolean block)
                                          throws IOException 
이 채널의 블록 모드를 조정합니다.

지정된 블록 모드가 현재의 블록 모드와 다르고 있는 경우, 이 메소드는, 적절한 락을 보관 유지한 상태로 implConfigureBlocking 메소드를 호출해 모드를 변경합니다.

정의:
클래스 SelectableChannel 내의 configureBlocking
파라미터:
block - 이 채널이 블록 모드가 되는 경우는 true, 비블록 모드가 되는 경우는 false
반환값:
이 선택 가능 채널
예외:
ClosedChannelException - 이 채널이 클로즈 하고 있는 경우
IOException - 입출력 에러가 발생했을 경우

implConfigureBlocking

protected abstract void implConfigureBlocking(boolean block)
                                       throws IOException 
이 채널의 블록 모드를 조정합니다.

이 메소드는, 블록 모드를 변경하는 실제의 처리를 실시하기 위해서(때문에),configureBlocking 메소드에 의해 불려 갑니다. 이 메소드는, 새로운 모드가 현재의 모드와 다르고 있는 경우에 한정해 불려 갑니다.

예외:
IOException - 입출력 에러가 발생했을 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.