910310dcc1e4274facb7588b35c9aa31c8f40456
[olsrd.git] / gui / win32 / Main / FrontendDlg.h
1
2 /*
3  * The olsr.org Optimized Link-State Routing daemon (olsrd)
4  * Copyright (c) 2004, Thomas Lopatic (thomas@lopatic.de)
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * * Redistributions of source code must retain the above copyright
12  *   notice, this list of conditions and the following disclaimer.
13  * * Redistributions in binary form must reproduce the above copyright
14  *   notice, this list of conditions and the following disclaimer in
15  *   the documentation and/or other materials provided with the
16  *   distribution.
17  * * Neither the name of olsr.org, olsrd nor the names of its
18  *   contributors may be used to endorse or promote products derived
19  *   from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32  * POSSIBILITY OF SUCH DAMAGE.
33  *
34  * Visit http://www.olsr.org for more information.
35  *
36  * If you find this software useful feel free to make a donation
37  * to the project. For more information see the website or contact
38  * the copyright holders.
39  *
40  */
41
42 #if !defined(AFX_FRONTENDDLG_H__7D68FBC0_7448_479B_81F0_3FBBDE291395__INCLUDED_)
43 #define AFX_FRONTENDDLG_H__7D68FBC0_7448_479B_81F0_3FBBDE291395__INCLUDED_
44
45 #if defined _MSC_VER && _MSC_VER > 1000
46 #pragma once
47 #endif /* defined _MSC_VER && _MSC_VER > 1000 */
48
49 #include "MyTabCtrl.h"
50 #include "NodeEntry.h"
51
52 #define PIPE_MODE_RUN 0
53 #define PIPE_MODE_INT 1
54
55 class CFrontendDlg:public CDialog {
56 public:
57   CFrontendDlg(CWnd * pParent = NULL);
58
59   //{{AFX_DATA(CFrontendDlg)
60   enum { IDD = IDD_FRONTEND_DIALOG };
61   CButton m_StopButton;
62   CButton m_StartButton;
63   MyTabCtrl m_TabCtrl;
64   //}}AFX_DATA
65
66   unsigned int LogThreadFunc(void);
67   unsigned int NetThreadFunc(void);
68
69   CString ConfigFile;
70 protected:
71
72   //{{AFX_VIRTUAL(CFrontendDlg)
73     virtual void DoDataExchange(CDataExchange * pDX);
74   //}}AFX_VIRTUAL
75
76 public:
77   //{{AFX_MSG(CFrontendDlg)
78     virtual BOOL OnInitDialog();
79   afx_msg void OnOK();
80   afx_msg void OnCancel();
81   afx_msg void OnStartButton();
82   afx_msg void OnStopButton();
83   afx_msg void OnExitButton();
84   //}}AFX_MSG
85
86 protected:
87     DECLARE_MESSAGE_MAP() int StartOlsrd(void);
88   int StopOlsrd(void);
89
90   int GetInterfaces(void);
91
92   HANDLE Event;
93
94   CString StoredTempFile;
95
96   SOCKET SockHand;
97
98   int PipeMode;
99   int ExecutePipe(const char *, HANDLE *, HANDLE *, HANDLE *);
100
101   CWinThread *LogThread;
102   CWinThread *NetThread;
103
104   CStringArray Interfaces;
105   CStringArray Addresses;
106   CStringArray IsWlan;
107
108   HANDLE OutRead, InWrite;
109   HANDLE ShimProc;
110
111   void HandleIpcRoute(struct IpcRoute *);
112   void HandleIpcConfig(struct IpcConfig *);
113   void HandleOlsrHello(struct OlsrHello *, int);
114   void HandleOlsrTc(struct OlsrTc *, int);
115   void HandleOlsrMid(struct OlsrHeader *);
116   void HandleOlsrHna(struct OlsrHeader *);
117
118   void AddNode(unsigned int, unsigned int);
119   void AddMpr(unsigned int, unsigned int, unsigned int);
120   void AddMid(unsigned int, unsigned int, unsigned int);
121   void AddHna(unsigned int, unsigned int, unsigned int, unsigned int);
122
123     CList < class NodeEntry, class NodeEntry & >NodeList;
124
125   void Timeout(void);
126
127   unsigned __int64 Now;
128
129   unsigned int LocalHost;
130 };
131
132 //{{AFX_INSERT_LOCATION}}
133
134 #endif /* !defined(AFX_FRONTENDDLG_H__7D68FBC0_7448_479B_81F0_3FBBDE291395__INCLUDED_) */
135
136 /*
137  * Local Variables:
138  * c-basic-offset: 2
139  * indent-tabs-mode: nil
140  * End:
141  */