JavaTM Platform
Standard Ed. 6

java.nio.channels.spi
클래스 SelectorProvider

java.lang.Object 
  상위를 확장 java.nio.channels.spi.SelectorProvider


public abstract class SelectorProvider
extends Object

셀렉터 및 선택 가능 채널의 서비스 프로바이더 클래스입니다.

셀렉터 프로바이더는, 제로 인수 생성자 을 가져, 이하의 추상 메소드를 구현하는, 이 클래스의 구상 서브 클래스입니다. 지정된 Java 가상 머신 호출은,provider 메소드에 의해 반환되는, 시스템 전체로 단일의 디폴트 프로바이더 인스턴스를 보관 유지합니다. 이 메소드의 최초의 호출은, 이하의 디폴트 프로바이더를 검출합니다.

시스템 전체의 디폴트 프로바이더는,DatagramChannel ,Pipe ,Selector ,ServerSocketChannel , 및 SocketChannel 의 각 클래스의 정적인 open 메소드에 의해 사용되는 것 외에System.inheritedChannel() 메소드에 의해도 사용됩니다. 프로그램내에서 디폴트 이외의 프로바이더를 사용하는 경우는, 그 프로바이더를 인스턴스화한 뒤, 이 클래스에 정의되고 있는 open 메소드를 직접 호출합니다.

이 클래스내의 모든 메소드는, 복수의 병행 thread로 안전하게 사용할 수 있습니다.

도입된 버젼:
1.4

생성자 의 개요
protected SelectorProvider ()
          이 클래스의 새로운 인스턴스를 초기화합니다.
 
메소드의 개요
 Channel inheritedChannel ()
          Java 가상 머신을 작성한 엔티티로부터 상속된 채널을 돌려줍니다.
abstract  DatagramChannel openDatagramChannel ()
          데이터 그램 채널을 오픈합니다.
abstract  Pipe openPipe ()
          파이프를 오픈합니다.
abstract  AbstractSelector openSelector ()
          셀렉터를 오픈합니다.
abstract  ServerSocketChannel openServerSocketChannel ()
          서버 소켓 채널을 오픈합니다.
abstract  SocketChannel openSocketChannel ()
          소켓 채널을 오픈합니다.
static SelectorProvider provider ()
          이 Java 가상 머신 호출을 위한 시스템 전체의 디폴트 셀렉터 프로바이더를 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

SelectorProvider

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

예외:
SecurityException - 시큐리티 매니저가 인스톨 되고 있어 그 매니저가 RuntimePermission ("selectorProvider") 를 거부하는 경우
메소드의 상세

provider

public static SelectorProvider  provider()
이 Java 가상 머신 호출을 위한 시스템 전체의 디폴트 셀렉터 프로바이더를 돌려줍니다.

이 메소드를 최초로 호출했을 때, 다음의 순서로 디폴트 프로바이더 객체가 검출됩니다.

  1. 시스템 프로퍼티 java.nio.channels.spi.SelectorProvider 가 정의되고 있는 경우, 이것이 구상 프로바이더 클래스의 완전 지정명으로 보여집니다. 그 후, 클래스가 로드 되어 인스턴스가 작성됩니다.

  2. 시스템 클래스 로더의 인식하는 jar 파일에 프로바이더 클래스가 인스톨 되고 있어, 이 jar 파일에 자원 디렉토리 META-INF/services 내의 프로바이더 구성 파일 java.nio.channels.spi.SelectorProvider 가 포함되어 있는 경우, 파일로 지정되고 있는 최초의 클래스명이 사용됩니다. 그 후, 클래스가 로드 되어 인스턴스가 작성됩니다.

  3. 마지막으로, 상기의 수단으로 지정된 프로바이더가 존재하지 않는 경우는, 시스템의 디폴트 프로바이더 클래스의 인스턴스가 작성되어 결과가 돌려주어집니다.

다음번 이후의 호출에서도, 1 번째의 호출시에 반환된 프로바이더가 돌려주어집니다.

반환값:
시스템 전체의 디폴트 셀렉터 프로바이더

openDatagramChannel

public abstract DatagramChannel  openDatagramChannel()
                                             throws IOException 
데이터 그램 채널을 오픈합니다.

반환값:
새로운 채널
예외:
IOException

openPipe

public abstract Pipe  openPipe()
                       throws IOException 
파이프를 오픈합니다.

반환값:
새로운 파이프
예외:
IOException

openSelector

public abstract AbstractSelector  openSelector()
                                       throws IOException 
셀렉터를 오픈합니다.

반환값:
새로운 셀렉터
예외:
IOException

openServerSocketChannel

public abstract ServerSocketChannel  openServerSocketChannel()
                                                     throws IOException 
서버 소켓 채널을 오픈합니다.

반환값:
새로운 채널
예외:
IOException

openSocketChannel

public abstract SocketChannel  openSocketChannel()
                                         throws IOException 
소켓 채널을 오픈합니다.

반환값:
새로운 채널
예외:
IOException

inheritedChannel

public Channel  inheritedChannel()
                         throws IOException 
Java 가상 머신을 작성한 엔티티로부터 상속된 채널을 돌려줍니다.

Java 가상 머신 등, 많은 operating system의 프로세스를 기동할 때에, 그 프로세스를 작성한 엔티티로부터 채널을 상속시킬 수가 있습니다. 다만, 그방법은 시스템에 의존합니다. 채널의 접속처로서 사용 가능한 엔티티에 대해서도 같습니다. 예를 들어, UNIX 시스템의 경우, 특정의 관련 네트워크 포트상에서 요구가 수신되면(자), 인터넷 서비스 demon (inetd) 경유로 그 요구를 처리하는 프로그램이 기동됩니다. 이 예의 경우, 기동된 프로세스는, 네트워크 소켓을 나타내는 채널을 상속합니다.

상속된 채널이 네트워크 소켓을 표현하고 있는 경우, 이 메소드로부터 반환되는 Channel 의 형태는, 다음의 순서로 결정됩니다.

이 메소드는, 여기서 설명한 네트워크 지향의 채널에 가세해 장래적으로 다른 종류의 채널도 돌려주게 될 예정입니다.

이 메소드의 첫회 호출시에는, 채널이 작성되어 그것이 돌려주어집니다. 이 메소드의 후속 호출시에는, 그 같은 채널이 돌려주어집니다.

반환값:
상속된 채널 (존재하는 경우). 그렇지 않은 경우는 null
예외:
IOException - 입출력 에러가 발생했을 경우
SecurityException - 시큐리티 매니저가 인스톨 되고 있어 그 매니저가 RuntimePermission ("inheritedChannel") 를 거부하는 경우
도입된 버젼:
1.5

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 도 참조해 주세요.