3 #ifndef INCLUDE_NN_NLIB_TCPINPUTSTREAM_H_
4 #define INCLUDE_NN_NLIB_TCPINPUTSTREAM_H_
7 #ifdef NLIB_SOCKET_ENABLED
15 struct TcpInputStreamSettings {
18 TcpInputStreamSettings() : buf(NULL), buffer_size(8192) {}
21 #if defined(NLIB_WINDLL) && defined(NLIB_CXX11_UNIQUEPTR) && defined(NLIB_CXX11_TEMPLATE_ALIAS)
22 # ifdef nx_misc_EXPORTS
23 template class __declspec(dllexport)
std::unique_ptr<uint8_t[]>;
25 extern template class __declspec(dllimport)
std::unique_ptr<uint8_t[]>;
30 class TcpInputStream
NLIB_FINAL :
public InputStream {
36 TcpInputStream()
NLIB_NOEXCEPT : m_Socket(NLIB_SOCKET_INVALID), m_Buf(NULL), m_BufSize(0) {}
39 TcpInputStreamSettings settings;
40 return this->Init(sockfd, settings);
49 NLIB_VIS_PUBLIC virtual
void* GetWorkBuffer_(
size_t* nBytes) NLIB_NOEXCEPT NLIB_OVERRIDE;
55 UniquePtr<uint8_t[]> m_BufferHolder;
63 #endif // INCLUDE_NN_NLIB_TCPINPUTSTREAM_H_
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。
#define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
#define NLIB_OVERRIDE
利用可能であればoverrideが定義されます。そうでない場合は空文字列です。
std::unique_ptrに相当するクラスが定義されています。