]>
Commit | Line | Data |
---|---|---|
1 | ///////////////////////////////////////////////////////////////////////////// | |
2 | // Name: dialup.h | |
3 | // Purpose: interface of wxDialUpManager | |
4 | // Author: wxWidgets team | |
5 | // RCS-ID: $Id$ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
9 | /** | |
10 | @class wxDialUpManager | |
11 | @wxheader{dialup.h} | |
12 | ||
13 | This class encapsulates functions dealing with verifying the connection status | |
14 | of the workstation (connected to the Internet via a direct connection, | |
15 | connected through a modem or not connected at all) and to establish this | |
16 | connection if possible/required (i.e. in the case of the modem). | |
17 | ||
18 | The program may also wish to be notified about the change in the connection | |
19 | status (for example, to perform some action when the user connects to the | |
20 | network the next time or, on the contrary, to stop receiving data from the net | |
21 | when the user hangs up the modem). For this, you need to use one of the event | |
22 | macros described below. | |
23 | ||
24 | This class is different from other wxWidgets classes in that there is at most | |
25 | one instance of this class in the program accessed via | |
26 | wxDialUpManager::Create and you can't | |
27 | create the objects of this class directly. | |
28 | ||
29 | @library{wxcore} | |
30 | @category{net} | |
31 | ||
32 | @see @ref overview_sampledialup "dialup sample", wxDialUpEvent | |
33 | */ | |
34 | class wxDialUpManager | |
35 | { | |
36 | public: | |
37 | /** | |
38 | Destructor. | |
39 | */ | |
40 | ~wxDialUpManager(); | |
41 | ||
42 | /** | |
43 | Cancel dialing the number initiated with Dial() | |
44 | with async parameter equal to @true. | |
45 | Note that this won't result in DISCONNECTED event being sent. | |
46 | ||
47 | @see IsDialing() | |
48 | */ | |
49 | bool CancelDialing(); | |
50 | ||
51 | /** | |
52 | This function should create and return the object of the platform-specific | |
53 | class derived from wxDialUpManager. You should delete the pointer when you are | |
54 | done with it. | |
55 | */ | |
56 | wxDialUpManager* Create(); | |
57 | ||
58 | /** | |
59 | Dial the given ISP, use @a username and @a password to authenticate. | |
60 | The parameters are only used under Windows currently, for Unix you should use | |
61 | SetConnectCommand() to customize this | |
62 | functions behaviour. | |
63 | If no @a nameOfISP is given, the function will select the default one | |
64 | (proposing the user to choose among all connections defined on this machine) | |
65 | and if no username and/or password are given, the function will try to do | |
66 | without them, but will ask the user if really needed. | |
67 | If @a async parameter is @false, the function waits until the end of dialing | |
68 | and returns @true upon successful completion. | |
69 | If @a async is @true, the function only initiates the connection and | |
70 | returns immediately - the result is reported via events (an event is sent | |
71 | anyhow, but if dialing failed it will be a DISCONNECTED one). | |
72 | */ | |
73 | bool Dial(const wxString& nameOfISP = wxEmptyString, | |
74 | const wxString& username = wxEmptyString, | |
75 | const wxString& password = wxEmptyString, | |
76 | bool async = true); | |
77 | ||
78 | /** | |
79 | Disable automatic check for connection status change - notice that the | |
80 | @c wxEVT_DIALUP_XXX events won't be sent any more neither. | |
81 | */ | |
82 | void DisableAutoCheckOnlineStatus(); | |
83 | ||
84 | /** | |
85 | Enable automatic checks for the connection status and sending of | |
86 | @c wxEVT_DIALUP_CONNECTED/wxEVT_DIALUP_DISCONNECTED events. The interval | |
87 | parameter is only for Unix where we do the check manually and specifies how | |
88 | often should we repeat the check (each minute by default). Under Windows, the | |
89 | notification about the change of connection status is sent by the system and so | |
90 | we don't do any polling and this parameter is ignored. | |
91 | Returns @false if couldn't set up automatic check for online status. | |
92 | */ | |
93 | bool EnableAutoCheckOnlineStatus(size_t nSeconds = 60); | |
94 | ||
95 | /** | |
96 | This function is only implemented under Windows. | |
97 | Fills the array with the names of all possible values for the first | |
98 | parameter to Dial() on this machine and returns | |
99 | their number (may be 0). | |
100 | */ | |
101 | size_t GetISPNames(wxArrayString& names) const; | |
102 | ||
103 | /** | |
104 | Hang up the currently active dial up connection. | |
105 | */ | |
106 | bool HangUp(); | |
107 | ||
108 | /** | |
109 | Returns @true if the computer has a permanent network connection (i.e. is | |
110 | on a LAN) and so there is no need to use Dial() function to go online. | |
111 | @note this functions tries to guess the result and it is not always | |
112 | guaranteed to be correct, so it is better to ask user for | |
113 | confirmation or give him a possibility to override it. | |
114 | */ | |
115 | bool IsAlwaysOnline() const; | |
116 | ||
117 | /** | |
118 | Returns @true if (async) dialing is in progress. | |
119 | ||
120 | @see Dial() | |
121 | */ | |
122 | bool IsDialing() const; | |
123 | ||
124 | /** | |
125 | Returns @true if the dialup manager was initialized correctly. If this | |
126 | function returns @false, no other functions will work neither, so it is a | |
127 | good idea to call this function and check its result before calling any other | |
128 | wxDialUpManager methods | |
129 | */ | |
130 | bool IsOk() const; | |
131 | ||
132 | /** | |
133 | Returns @true if the computer is connected to the network: under Windows, | |
134 | this just means that a RAS connection exists, under Unix we check that | |
135 | the "well-known host" (as specified by | |
136 | wxDialUpManager::SetWellKnownHost) is reachable. | |
137 | */ | |
138 | bool IsOnline() const; | |
139 | ||
140 | /** | |
141 | , wxString&@e commandHangup = wxT("/usr/bin/poff")) | |
142 | This method is for Unix only. | |
143 | Sets the commands to start up the network and to hang up again. | |
144 | */ | |
145 | void SetConnectCommand() const; | |
146 | ||
147 | /** | |
148 | Sometimes the built-in logic for determining the online status may fail, | |
149 | so, in general, the user should be allowed to override it. This function | |
150 | allows to forcefully set the online status - whatever our internal | |
151 | algorithm may think about it. | |
152 | ||
153 | @see IsOnline() | |
154 | */ | |
155 | void SetOnlineStatus(bool isOnline = true); | |
156 | ||
157 | /** | |
158 | This method is for Unix only. | |
159 | Under Unix, the value of well-known host is used to check whether we're | |
160 | connected to the internet. It is unused under Windows, but this function | |
161 | is always safe to call. The default value is @c www.yahoo.com:80. | |
162 | */ | |
163 | void SetWellKnownHost(const wxString& hostname, int portno = 80); | |
164 | }; | |
165 | ||
166 | ||
167 | ||
168 | /** | |
169 | @class wxDialUpEvent | |
170 | @wxheader{dialup.h} | |
171 | ||
172 | This is the event class for the dialup events sent by | |
173 | wxDialUpManager. | |
174 | ||
175 | @library{wxcore} | |
176 | @category{events} | |
177 | */ | |
178 | class wxDialUpEvent : public wxEvent | |
179 | { | |
180 | public: | |
181 | /** | |
182 | Constructor is only used by wxDialUpManager. | |
183 | */ | |
184 | wxDialUpEvent(bool isConnected, bool isOwnEvent); | |
185 | ||
186 | /** | |
187 | Is this a @c CONNECTED or @c DISCONNECTED event? In other words, does it | |
188 | notify about transition from offline to online state or vice versa? | |
189 | */ | |
190 | bool IsConnectedEvent() const; | |
191 | ||
192 | /** | |
193 | Does this event come from wxDialUpManager::Dial() or from some extrenal | |
194 | process (i.e. does it result from our own attempt to establish the | |
195 | connection)? | |
196 | */ | |
197 | bool IsOwnEvent() const; | |
198 | }; | |
199 |