X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f4ada568223b79c8a5769cc351c36a8e2ccd7841..4ee4c7b948e76377a6947d3ffbe5099870d0c3e9:/include/wx/sckstrm.h diff --git a/include/wx/sckstrm.h b/include/wx/sckstrm.h index 3d55f1b85e..5ee90ae3dd 100644 --- a/include/wx/sckstrm.h +++ b/include/wx/sckstrm.h @@ -11,52 +11,65 @@ #ifndef __SCK_STREAM_H__ #define __SCK_STREAM_H__ -#ifdef __GNUG__ -#pragma interface -#endif - #include "wx/stream.h" + +#if wxUSE_SOCKETS && wxUSE_STREAMS + #include "wx/socket.h" -class WXDLLEXPORT wxSocketOutputStream : public wxOutputStream +class WXDLLIMPEXP_NET wxSocketOutputStream : public wxOutputStream { - public: - wxSocketOutputStream(wxSocketBase& s); - virtual ~wxSocketOutputStream(); - - wxOutputStream& Write(const void *buffer, size_t size); - off_t SeekO(off_t pos, wxSeekMode mode) { return -1; } - off_t TellO() { return -1; } - - bool Bad() { return m_o_socket->IsDisconnected(); } - size_t LastWrite() { return m_o_socket->LastCount(); } - protected: - wxSocketBase *m_o_socket; +public: + wxSocketOutputStream(wxSocketBase& s); + virtual ~wxSocketOutputStream(); + +protected: + wxSocketBase *m_o_socket; + + size_t OnSysWrite(const void *buffer, size_t bufsize); + + // socket streams are both un-seekable and size-less streams: + wxFileOffset OnSysTell() const + { return wxInvalidOffset; } + wxFileOffset OnSysSeek(wxFileOffset WXUNUSED(pos), wxSeekMode WXUNUSED(mode)) + { return wxInvalidOffset; } + + wxDECLARE_NO_COPY_CLASS(wxSocketOutputStream); }; -class WXDLLEXPORT wxSocketInputStream : public wxInputStream +class WXDLLIMPEXP_NET wxSocketInputStream : public wxInputStream { - public: - wxSocketInputStream(wxSocketBase& s); - ~wxSocketInputStream(); - - wxInputStream& Read(void *buffer, size_t size); - off_t SeekI(off_t pos, wxSeekMode mode) { return -1; } - off_t TellI() { return -1; } - - bool Eof() { return m_i_socket->IsDisconnected(); } - size_t LastRead() { return m_i_socket->LastCount(); } - protected: - wxSocketBase *m_i_socket; +public: + wxSocketInputStream(wxSocketBase& s); + virtual ~wxSocketInputStream(); + +protected: + wxSocketBase *m_i_socket; + + size_t OnSysRead(void *buffer, size_t bufsize); + + // socket streams are both un-seekable and size-less streams: + + wxFileOffset OnSysTell() const + { return wxInvalidOffset; } + wxFileOffset OnSysSeek(wxFileOffset WXUNUSED(pos), wxSeekMode WXUNUSED(mode)) + { return wxInvalidOffset; } + + wxDECLARE_NO_COPY_CLASS(wxSocketInputStream); }; -class WXDLLEXPORT wxSocketStream : public wxSocketInputStream, - public wxSocketOutputStream, - public wxStream { +class WXDLLIMPEXP_NET wxSocketStream : public wxSocketInputStream, + public wxSocketOutputStream +{ +public: + wxSocketStream(wxSocketBase& s); + virtual ~wxSocketStream(); - public: - wxSocketStream(wxSocketBase& i_s, wxSocketBase& o_s); - wxSocketStream(wxSocketBase& s); + wxDECLARE_NO_COPY_CLASS(wxSocketStream); }; #endif + // wxUSE_SOCKETS && wxUSE_STREAMS + +#endif + // __SCK_STREAM_H__