|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2019 [email protected] ! 4: // ! 5: ! 6: #pragma once ! 7: ! 8: // コンソール(?) ! 9: class Consio ! 10: { ! 11: public: ! 12: Consio() { } ! 13: virtual ~Consio() { } ! 14: ! 15: virtual bool Init() = 0; ! 16: ! 17: virtual bool Open() = 0; ! 18: virtual void Close() = 0; ! 19: virtual void Print(const char *fmt, ...) __printflike(2, 3) = 0; ! 20: virtual void Flush() = 0; ! 21: ! 22: // 1文字読み込む。 ! 23: // 戻り値は正なら読み込んだバイト。0 なら EOF。-1 ならエラー。 ! 24: virtual int GetChar() = 0; ! 25: ! 26: // 1行読み込む。 ! 27: // 戻り値は読み込んだバイト数。0 なら EOF。-1 ならエラー。 ! 28: // バッファは \0 で終端してある。 ! 29: virtual int Gets(char *, int) = 0; ! 30: ! 31: // 受信データがあれば正、なければ 0 を返す。エラーなら負数を返す。 ! 32: virtual int Poll() = 0; ! 33: }; ! 34: ! 35: class ConsioTCP ! 36: : public Consio ! 37: { ! 38: public: ! 39: ConsioTCP(); ! 40: virtual ~ConsioTCP(); ! 41: ! 42: bool Init(); ! 43: bool Open(); ! 44: void Close(); ! 45: void Print(const char *fmt, ...) __printflike(2, 3); ! 46: void Flush(); ! 47: int GetChar(); ! 48: int Gets(char *, int); ! 49: int Poll(); ! 50: ! 51: private: ! 52: int ls = 0; ! 53: int sock = 0; ! 54: struct addrinfo *res = NULL; ! 55: struct addrinfo *ai = NULL; ! 56: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.