#pragma once #include "IO.NetSocket.hpp" #include "IO.Stream.hpp" #ifndef _IO_NetStream_EXPORTS #define _IO_NetStream_API _declspec(dllimport) #else #define _IO_NetStream_API _declspec(dllexport) #endif #ifndef _IO_NetStream_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment (lib, "ECOM.IO.NetStream64D.lib") #else #pragma comment (lib, "ECOM.IO.NetStream64.lib") #endif #else // X86 #ifdef _DEBUG #pragma comment (lib, "ECOM.IO.NetStreamD.lib") #else #pragma comment (lib, "ECOM.IO.NetStream.lib") #endif #endif #endif // _IO_NetStream_EXPORTS //----------------------------------------------------------------------------- // INetStream, ONetStream //----------------------------------------------------------------------------- namespace ECOM::IO::Network { class _IO_NetStream_API INetStream : public ECOM::IO::Stream::IStream { using base = ECOM::IO::Stream::IStream; public: INetStream (std::shared_ptr holder); INetStream (INetStream && from) : base (from.m_NIB) { from.m_NIB = nullptr; } INetStream & operator = (INetStream && from) { m_NIB = from.m_NIB; from.m_NIB = nullptr; return (*this); } INetStream (const INetStream & from) = delete; INetStream & operator = (const INetStream & from) = delete; virtual ~INetStream (); eSTR::DString ToString () const override; int SetTimeOut (int secTimeOut); }; class _IO_NetStream_API ONetStream : public ECOM::IO::Stream::OStream { using base = ECOM::IO::Stream::OStream; public: ONetStream (std::shared_ptr holder); ONetStream (ONetStream && from) : base (from.m_NOB) { from.m_NOB = nullptr; } ONetStream & operator = (ONetStream && from) { m_NOB = from.m_NOB; from.m_NOB = nullptr; return (*this); } ONetStream (const ONetStream & from) = delete; ONetStream & operator = (const ONetStream & from) = delete; virtual ~ONetStream (); eSTR::DString ToString () const override; int SetTimeOut (int secTimeOut); }; }