Graphisoft®

GSRootVersion: 1.0

IChannel::DirectInputAccess

입력 채널의 내용에 직접 접근할 수 있게 해줍니다.

virtual GSErrCode DirectInputAccess (
    USize               nOfCharToAccess,
    char **             source,
    USize *             accessible = NULL
) = 0;

파라미터

nOfCharToAccess
접근할 문자들의 개수입니다. 만약 (원하면) 이 값이 0일 경우 입력 채널은 최적 크기를 계산해서 accessible 파라미터에 제안할 것입니다.
source
리턴시: 입력 채널 상에서 접근 가능한 데이터에 대한 포인터입니다. 이 포인터는 입력 채널 상에서 다음 동작이 호출될 때까지 유효한 상태로 남아 있게 될 것입니다.
accessible
리턴시: 만약 NULL이 아닐 경우 접근 가능한 문자들의 개수입니다.

리턴 값

의미
NoError* OK
EndOfInput* 입력의 끝에 도달했습니다. 동작이 완료되지 않았습니다.
ReadError* 입력 디바이스 상에서 읽기 오류가 발생했습니다. 동작이 완료되지 않았습니다.
ErrMemoryFull* 메모리가 부족합니다.
Error* 불특정 오류입니다.

* IChannel 클래스 범위 안에 선언됨
* GS 네임스페이스 안에 선언됨, 그러나 글로벌 범위에서 접근 가능함

설명

이 메소드는 입력 채널의 내용에 대한 빠른 직접 접근을 제공합니다. 사용자는 직접 접근할 문자들의 개수를 지정할 수도 있고 (원할 경우) 입력 채널에게 최적 크기를 결정하도록 시킬 수도 있습니다. 결과 포인터는 입력 채널 내용의 이후 파트에 직접 접근(또는 조작)하는 데 사용할 수 있습니다. 이 포인터는 입력 채널 상에서 다음 동작이 호출될 때까지 유효한 상태로 남아 있게 될 것입니다. 처리를 마친 후에 Skip 메소드로 데이터를 건너뛸 수 있습니다.
만약 입력 채널 상에 충분한 데이터가 남아 있지 않을 경우 EndOfInput이 리턴됩니다. 이 경우 출력 accessible 파라미터는 접근 가능한 문자들의 개수를 포함하고 있습니다.
입력 상태는 기록하고 입력 채널 상에서 1번째로 발생한 오류를 저장할 것입니다. 오류가 발생한 후에 이 메소드는 아무 것도 하지 않으며 즉시 저장된 오류 코드를 리턴합니다. (입력 상태가 사용자에 의해 리셋될 때까지)

참고사항

GetInputStatus | ResetInputStatus