]> git.saurik.com Git - wxWidgets.git/blob - samples/ipc/server.h
cleaned IPC samples a bit
[wxWidgets.git] / samples / ipc / server.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: server.h
3 // Purpose: DDE sample: server
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 25/01/99
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 // Define a new application
13 class MyServer;
14 class MyApp : public wxApp
15 {
16 public:
17 virtual bool OnInit();
18 virtual int OnExit();
19
20 private:
21 MyServer *m_server;
22 };
23
24 DECLARE_APP(MyApp)
25
26 // Define a new frame
27 class MyFrame : public wxFrame
28 {
29 public:
30 MyFrame(wxFrame *frame, const wxString& title);
31
32 void OnListBoxClick(wxCommandEvent& event);
33
34 private:
35 wxPanel *panel;
36
37 DECLARE_EVENT_TABLE()
38 };
39
40 class IPCDialogBox;
41 class MyConnection : public wxConnection
42 {
43 public:
44 MyConnection(char *buf, int size);
45 ~MyConnection();
46
47 bool OnExecute(const wxString& topic, char *data, int size, wxIPCFormat format);
48 char *OnRequest(const wxString& topic, const wxString& item, int *size, wxIPCFormat format);
49 bool OnPoke(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format);
50 bool OnStartAdvise(const wxString& topic, const wxString& item);
51
52 private:
53 IPCDialogBox *dialog;
54 };
55
56 class MyServer: public wxServer
57 {
58 public:
59 wxConnectionBase *OnAcceptConnection(const wxString& topic);
60 };
61
62 class IPCDialogBox: public wxDialog
63 {
64 public:
65 IPCDialogBox(wxWindow *parent,
66 const wxString& title,
67 const wxPoint& pos,
68 const wxSize& size,
69 MyConnection *the_connection);
70
71 void OnQuit(wxCommandEvent& event);
72
73 private:
74 MyConnection *m_connection;
75
76 DECLARE_EVENT_TABLE()
77 };
78
79 #define SERVER_QUIT wxID_EXIT
80 #define SERVER_LISTBOX 500
81 #define SERVER_QUIT_BUTTON 501