Merge branch 'master' of git.ucc.asn.au:/matches/honours
[matches/honours.git] / research / transmission_spectroscopy / TOF / Win32++ / samples / Networking / ServerDlg / SvrDialog.h
1 ///////////////////////////////////////\r
2 // SvrDialog.h\r
3 \r
4 #ifndef SVRDIALOG_H\r
5 #define SVRDIALOG_H\r
6 \r
7 \r
8 #include "Server.h"\r
9 \r
10 \r
11 class CServerSocket;\r
12 class CTCPClientDlg;\r
13 \r
14 typedef Shared_Ptr<CServerSocket> ServerSocketPtr;\r
15 typedef Shared_Ptr<CTCPClientDlg> TCPClientDlgPtr;\r
16 \r
17 // Declaration of the CTCPClientDlg class\r
18 class CTCPClientDlg : public CDialog\r
19 {\r
20 public:\r
21         CTCPClientDlg(UINT nResID, CWnd* pParent = NULL);\r
22         virtual ~CTCPClientDlg() {}\r
23         virtual INT_PTR DialogProc (UINT uMsg, WPARAM wParam, LPARAM lParam);\r
24         virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);\r
25         virtual BOOL OnInitDialog();\r
26         void Append(int nID, LPCTSTR buf);\r
27         void Receive();\r
28         void Send();\r
29 \r
30         ServerSocketPtr m_pSocket;\r
31 \r
32 private:\r
33         // Nested classes for this dialog's child windows\r
34         // Nesting is optional. Its done to keep the IDE's class view tidy.\r
35         class CEditSend : public CEdit {};\r
36         class CEditReceive : public CEdit {};\r
37         class CButtonSend : public CButton {};\r
38 \r
39         CEditSend       m_EditSend;\r
40         CEditReceive m_EditReceive;\r
41         CButtonSend     m_ButtonSend;\r
42 };\r
43 \r
44 \r
45 // Declaration of the CSvrDialog class\r
46 class CSvrDialog : public CDialog\r
47 {\r
48 public:\r
49         CSvrDialog(UINT nResID, CWnd* pParent = NULL);\r
50         virtual ~CSvrDialog();\r
51         void Append(int nID, LPCTSTR buf);\r
52         void LoadCommonControlsEx();\r
53         void OnSocketDisconnect(CServerSocket* pClient);\r
54         void OnSocketReceive(CServerSocket* pClient);\r
55         void OnSocketAccept();\r
56         void OnSend();\r
57         void OnStartServer();\r
58         BOOL StartServer();\r
59         void StopServer();\r
60 \r
61 protected:\r
62         virtual BOOL OnInitDialog();\r
63         virtual INT_PTR DialogProc(UINT uMsg, WPARAM wParam, LPARAM lParam);\r
64         virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);\r
65 \r
66 private:\r
67         CServerSocket m_MainSocket;\r
68         std::map<ServerSocketPtr, TCPClientDlgPtr> m_ConnectedClients;// Stores TCP client sockets and TCP client dialogs\r
69         BOOL m_bServerStarted;\r
70         int  m_SocketType;                              // either SOCK_STREAM or SOCK_DGRAM\r
71         sockaddr_in6  m_saUDPClient;    // connected UPD client's sockaddr      \r
72 \r
73         // Nested classes for this dialog's child windows\r
74         // Nesting is optional. Its done to keep the IDE's class view tidy.\r
75         class CIP4Address : public CWnd {};\r
76         class CEditIP6Address : public CEdit {};\r
77         class CEditStatus : public CEdit {};\r
78         class CEditPort : public CEdit {};\r
79         class CEditSend : public CEdit {};\r
80         class CEditReceive : public CEdit {};\r
81         class CButtonStart : public CButton {};\r
82         class CButtonSend : public CButton {};\r
83         class CRadioIP4 : public CButton {};\r
84         class CRadioIP6 : public CButton {};\r
85         class CRadioTCP : public CButton {};\r
86         class CRadioUDP : public CButton {};\r
87 \r
88         CIP4Address     m_IP4Address;\r
89         CEditIP6Address m_EditIP6Address;\r
90         CEditStatus m_EditStatus;\r
91         CEditPort       m_EditPort;\r
92         CEditSend       m_EditSend;\r
93         CEditReceive m_EditReceive;\r
94         CButtonStart m_ButtonStart;\r
95         CButtonSend     m_ButtonSend;\r
96         CRadioIP4       m_RadioIP4;\r
97         CRadioIP6       m_RadioIP6;\r
98         CRadioTCP       m_RadioTCP;\r
99         CRadioUDP       m_RadioUDP;\r
100 \r
101 };\r
102 \r
103 #endif //SVRDIALOG_H\r
104 \r

UCC git Repository :: git.ucc.asn.au