Graphisoft®

GSRootVersion: 1.0

IProtocol::Read

입력 채널로부터 다음 심플 C++ 타입 (또는 Object)를 구성합니다.

virtual GSErrCode Read (
    IChannel &          input,
    char &              c
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    unsigned char &     c
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    bool &              b
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    short &             s
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    unsigned short &    s
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    int &               i
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    unsigned int &      i
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    long &              l
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    unsigned long &     l
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    float &             f
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    double &            d
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    long double &       d
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    char *              cStr
) = 0;
virtual GSErrCode Read (
    IChannel &          input,
    Object &            obj
) = 0;

파라미터

input
바이너리 데이터를 제공하는 입력 채널입니다. (일반적으로 IChannel::ReadBin 메소드를 사용함)
c
리턴시: 구성된 character 값입니다.
b
리턴시: 구성된 bolean 값입니다.
s
리턴시: 구성된 short integer 값입니다.
i
리턴시: 구성된 integer 값입니다.
l
리턴시: 구성된 long integer 값입니다.
f
리턴시: 구성된 float 값입니다.
d
리턴시: 구성된 double 값입니다.
cStr
리턴시: 구성된 C 문자열입니다.
obj
리턴시: 구성된 객체입니다.

리턴 값

의미
NoError* OK
EndOfInput* 입력 끝에 도달했습니다.
ReadError* 입력 디바이스 상에서 읽기 오류가 발생했습니다.
IntegrityError* 데이터 읽기가 요청한 타입에 대해 유효하지 않습니다.
Error* 불특정 오류입니다.

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

설명

이 메소드는 지정한 입력 채널의 바이너리 레벨을 이용하여 다음 심플 C++ 타입 (또는 Object)를 구성합니다. 만약 입력 채널에 남아 있는 데이터가 없다면 IChannel::EndOfInput이 리턴되어야 합니다. 만약 입력 채널에 남아 있는 데이터가 요청한 타입의 구성에 충분하지 않거나 데이터로부터 타입을 구성할 수 없다면 GS::IntegrityError가 리턴되어야 합니다. IChannel::ConvertObjectReadError 메소드는 오류 처리를 약간 용이하게 해줍니다.