1/////////////////////////////////////////////////////////////////////////////
2// Name:        sckstrm.h
3// Purpose:     wxSocket*Stream
4// Author:      Guilhem Lavaux
5// Modified by:
6// Created:     17/07/97
7// RCS-ID:      $Id: sckstrm.h 41020 2006-09-05 20:47:48Z VZ $
8// Copyright:   (c)
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11#ifndef __SCK_STREAM_H__
12#define __SCK_STREAM_H__
13
14#include "wx/stream.h"
15
16#if wxUSE_SOCKETS && wxUSE_STREAMS
17
18#include "wx/socket.h"
19
20class WXDLLIMPEXP_NET wxSocketOutputStream : public wxOutputStream
21{
22 public:
23  wxSocketOutputStream(wxSocketBase& s);
24  virtual ~wxSocketOutputStream();
25
26  wxFileOffset SeekO( wxFileOffset WXUNUSED(pos), wxSeekMode WXUNUSED(mode) )
27    { return -1; }
28  wxFileOffset TellO() const
29    { return -1; }
30
31 protected:
32  wxSocketBase *m_o_socket;
33
34  size_t OnSysWrite(const void *buffer, size_t bufsize);
35
36    DECLARE_NO_COPY_CLASS(wxSocketOutputStream)
37};
38
39class WXDLLIMPEXP_NET wxSocketInputStream : public wxInputStream
40{
41 public:
42  wxSocketInputStream(wxSocketBase& s);
43  virtual ~wxSocketInputStream();
44
45  wxFileOffset SeekI( wxFileOffset WXUNUSED(pos), wxSeekMode WXUNUSED(mode) )
46    { return -1; }
47  wxFileOffset TellI() const
48    { return -1; }
49
50 protected:
51  wxSocketBase *m_i_socket;
52
53  size_t OnSysRead(void *buffer, size_t bufsize);
54
55    DECLARE_NO_COPY_CLASS(wxSocketInputStream)
56};
57
58class WXDLLIMPEXP_NET wxSocketStream : public wxSocketInputStream,
59                   public wxSocketOutputStream
60{
61 public:
62  wxSocketStream(wxSocketBase& s);
63  virtual ~wxSocketStream();
64
65  DECLARE_NO_COPY_CLASS(wxSocketStream)
66};
67
68#endif
69  // wxUSE_SOCKETS && wxUSE_STREAMS
70
71#endif
72  // __SCK_STREAM_H__
73