git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        protocol.h
 | |
| // Purpose:     Protocol base class
 | |
| // Author:      Guilhem Lavaux
 | |
| // Modified by:
 | |
| // Created:     10/07/1997
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) 1997, 1998 Guilhem Lavaux
 | |
| // Licence:     wxWindows license
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| #ifndef _WX_PROTOCOL_PROTOCOL_H
 | |
| #define _WX_PROTOCOL_PROTOCOL_H
 | |
| 
 | |
| #ifdef __GNUG__
 | |
| #pragma interface
 | |
| #endif
 | |
| 
 | |
| #include "wx/object.h"
 | |
| #include "wx/string.h"
 | |
| #include "wx/stream.h"
 | |
| #include "wx/socket.h"
 | |
| 
 | |
| typedef enum {
 | |
|  wxPROTO_NOERR = 0,
 | |
|  wxPROTO_NETERR,
 | |
|  wxPROTO_PROTERR,
 | |
|  wxPROTO_CONNERR,
 | |
|  wxPROTO_INVVAL,
 | |
|  wxPROTO_NOHNDLR,
 | |
|  wxPROTO_NOFILE,
 | |
|  wxPROTO_ABRT,
 | |
|  wxPROTO_RCNCT,
 | |
|  wxPROTO_STREAMING 
 | |
| } wxProtocolError;
 | |
| 
 | |
| // For protocols
 | |
| #define DECLARE_PROTOCOL(class) \
 | |
| public: \
 | |
|   static wxProtoInfo g_proto_##class;
 | |
| 
 | |
| #define IMPLEMENT_PROTOCOL(class, name, serv, host) \
 | |
| wxProtoInfo class::g_proto_##class(name, serv, host, CLASSINFO(class));
 | |
| 
 | |
| class WXDLLEXPORT wxProtoInfo : public wxObject {
 | |
|   DECLARE_DYNAMIC_CLASS(wxProtoInfo)
 | |
| protected:
 | |
|   wxProtoInfo *next;
 | |
|   wxString m_protoname;
 | |
|   wxString prefix;
 | |
|   wxString m_servname;
 | |
|   wxClassInfo *m_cinfo;
 | |
|   bool m_needhost;
 | |
| 
 | |
|   friend class wxURL;
 | |
| public:
 | |
|   wxProtoInfo(const wxChar *name, const wxChar *serv_name, const bool need_host1,
 | |
|               wxClassInfo *info);
 | |
| };
 | |
| 
 | |
| class WXDLLEXPORT wxProtocol : public wxSocketClient {
 | |
|   DECLARE_ABSTRACT_CLASS(wxProtocol)
 | |
| public:
 | |
|   wxProtocol();
 | |
| 
 | |
|   bool Reconnect();
 | |
|   virtual bool Connect( const wxString& WXUNUSED(host) ) { return FALSE; }
 | |
|   virtual bool Connect( wxSockAddress& addr, bool WXUNUSED(wait) = TRUE) { return wxSocketClient::Connect(addr); }
 | |
| 
 | |
|   virtual bool Abort() = 0;
 | |
|   virtual wxInputStream *GetInputStream(const wxString& path) = 0;
 | |
|   virtual wxProtocolError GetError() = 0;
 | |
|   virtual wxString GetContentType() { return wxEmptyString; }
 | |
|   virtual void SetUser(const wxString& WXUNUSED(user)) {}
 | |
|   virtual void SetPassword(const wxString& WXUNUSED(passwd) ) {}
 | |
| };
 | |
| 
 | |
| wxProtocolError WXDLLEXPORT GetLine(wxSocketBase *sock, wxString& result);
 | |
| 
 | |
| #endif
 |