]>
git.saurik.com Git - wxWidgets.git/blob - samples/ipc/client.h
   1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     DDE sample: client 
   4 // Author:      Julian Smart 
   8 // Copyright:   (c) Julian Smart 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  12 #define ID_START         10000 
  13 #define ID_DISCONNECT    10001 
  14 #define ID_STARTADVISE    10002 
  16 #define ID_SERVERNAME    10004 
  17 #define ID_STOPADVISE    10005 
  19 #define ID_REQUEST        10007 
  20 #define ID_EXECUTE        10008 
  21 #define ID_TOPIC        10009 
  22 #define ID_HOSTNAME        10010 
  24 // Define a new application 
  29 class MyApp
: public wxApp
 
  32     virtual bool OnInit(); 
  34     MyFrame 
*GetFrame() { return m_frame
; }; 
  41 class MyFrame
: public wxFrame
 
  44     MyFrame(wxFrame 
*frame
, const wxString
& title
); 
  46     void OnExit(wxCommandEvent
& event
); 
  47     void OnClose(wxCloseEvent
& event
); 
  48     void EnableControls(); 
  52     wxButton
* GetStart()  { return (wxButton
*) FindWindow( ID_START 
); } 
  53     wxChoice
* GetServername()  { return (wxChoice
*) FindWindow( ID_SERVERNAME 
); } 
  54     wxChoice
* GetHostname()  { return (wxChoice
*) FindWindow( ID_HOSTNAME 
); } 
  55     wxChoice
* GetTopic()  { return (wxChoice
*) FindWindow( ID_TOPIC 
); } 
  56     wxButton
* GetDisconnect()  { return (wxButton
*) FindWindow( ID_DISCONNECT 
); } 
  57     wxButton
* GetStartAdvise()  { return (wxButton
*) FindWindow( ID_STARTADVISE 
); } 
  58     wxButton
* GetStopAdvise()  { return (wxButton
*) FindWindow( ID_STOPADVISE 
); } 
  59     wxButton
* GetRequest()  { return (wxButton
*) FindWindow( ID_REQUEST 
); } 
  60     wxButton
* GetPoke()  { return (wxButton
*) FindWindow( ID_POKE 
); } 
  61     wxButton
* GetExecute()  { return (wxButton
*) FindWindow( ID_EXECUTE 
); } 
  62     wxTextCtrl
* GetLog()  { return (wxTextCtrl
*) FindWindow( ID_LOG 
); } 
  66     void OnStart( wxCommandEvent 
&event 
); 
  67     void OnServername( wxCommandEvent 
&event 
); 
  68     void OnHostname( wxCommandEvent 
&event 
); 
  69     void OnTopic( wxCommandEvent 
&event 
); 
  70     void OnDisconnect( wxCommandEvent 
&event 
); 
  71     void OnStartAdvise( wxCommandEvent 
&event 
); 
  72     void OnStopAdvise( wxCommandEvent 
&event 
); 
  73     void OnExecute(wxCommandEvent
& event
); 
  74     void OnPoke(wxCommandEvent
& event
); 
  75     void OnRequest(wxCommandEvent
& event
); 
  81 class MyConnection
: public wxConnection
 
  84     virtual bool Execute(const wxChar 
*data
, int size 
= -1, wxIPCFormat format 
= wxIPC_TEXT
); 
  85     virtual wxChar 
*Request(const wxString
& item
, int *size 
= NULL
, wxIPCFormat format 
= wxIPC_TEXT
); 
  86     virtual bool Poke(const wxString
& item
, wxChar 
*data
, int size 
= -1, wxIPCFormat format 
= wxIPC_TEXT
); 
  87     virtual bool OnAdvise(const wxString
& topic
, const wxString
& item
, wxChar 
*data
, int size
, wxIPCFormat format
); 
  88     virtual bool OnDisconnect(); 
  90     void Log(const wxString
& command
, const wxString
& topic
, 
  91         const wxString
& item
, wxChar 
*data
, int size
, wxIPCFormat format
); 
  94 class MyClient
: public wxClient
 
  99     bool Connect(const wxString
& sHost
, const wxString
& sService
, const wxString
& sTopic
); 
 101     wxConnectionBase 
*OnMakeConnection(); 
 102     bool IsConnected() { return m_connection 
!= NULL
; }; 
 103     MyConnection 
*GetConnection() { return m_connection
; }; 
 106     MyConnection     
*m_connection
;