]> git.saurik.com Git - wxWidgets.git/blame - include/wx/protocol/protocol.h
wxPrivateDataObject works under MSW as well (hopefully it still does under
[wxWidgets.git] / include / wx / protocol / protocol.h
CommitLineData
f4ada568
GL
1/////////////////////////////////////////////////////////////////////////////
2// Name: protocol.h
3// Purpose: Protocol base class
4// Author: Guilhem Lavaux
5// Modified by:
6// Created: 10/07/1997
7// RCS-ID: $Id$
8// Copyright: (c) 1997, 1998 Guilhem Lavaux
9// Licence: wxWindows license
10/////////////////////////////////////////////////////////////////////////////
11#ifndef _WX_PROTOCOL_PROTOCOL_H
12#define _WX_PROTOCOL_PROTOCOL_H
13
14#ifdef __GNUG__
15#pragma interface
16#endif
17
18#include "wx/object.h"
19#include "wx/string.h"
20#include "wx/stream.h"
21#include "wx/socket.h"
22
23typedef enum {
24 wxPROTO_NOERR = 0,
25 wxPROTO_NETERR,
26 wxPROTO_PROTERR,
27 wxPROTO_CONNERR,
28 wxPROTO_INVVAL,
29 wxPROTO_NOHNDLR,
30 wxPROTO_NOFILE,
31 wxPROTO_ABRT,
32 wxPROTO_RCNCT,
33 wxPROTO_STREAMING
34} wxProtocolError;
35
36// For protocols
37#define DECLARE_PROTOCOL(class) \
38public: \
39 static wxProtoInfo g_proto_##class;
40
41#define IMPLEMENT_PROTOCOL(class, name, serv, host) \
42wxProtoInfo class::g_proto_##class(name, serv, host, CLASSINFO(class));
43
44class WXDLLEXPORT wxProtoInfo : public wxObject {
45 DECLARE_DYNAMIC_CLASS(wxProtoInfo)
46protected:
47 wxProtoInfo *next;
48 wxString m_protoname;
49 wxString prefix;
50 wxString m_servname;
51 wxClassInfo *m_cinfo;
52 bool m_needhost;
53
54 friend class wxURL;
55public:
8bec6d4a 56 wxProtoInfo(const wxChar *name, const wxChar *serv_name, const bool need_host1,
f4ada568
GL
57 wxClassInfo *info);
58};
59
60class WXDLLEXPORT wxProtocol : public wxSocketClient {
61 DECLARE_ABSTRACT_CLASS(wxProtocol)
62public:
63 wxProtocol();
64
65 bool Reconnect();
8a2c6ef8
JS
66 virtual bool Connect( const wxString& WXUNUSED(host) ) { return FALSE; }
67 virtual bool Connect( wxSockAddress& addr, bool WXUNUSED(wait) = TRUE) { return wxSocketClient::Connect(addr); }
f4ada568
GL
68
69 virtual bool Abort() = 0;
70 virtual wxInputStream *GetInputStream(const wxString& path) = 0;
71 virtual wxProtocolError GetError() = 0;
ce3ed50d 72 virtual wxString GetContentType() { return wxEmptyString; }
c058d771
RR
73 virtual void SetUser(const wxString& WXUNUSED(user)) {}
74 virtual void SetPassword(const wxString& WXUNUSED(passwd) ) {}
f4ada568
GL
75};
76
77wxProtocolError WXDLLEXPORT GetLine(wxSocketBase *sock, wxString& result);
78
79#endif