]>
Commit | Line | Data |
---|---|---|
23324ae1 FM |
1 | ///////////////////////////////////////////////////////////////////////////// |
2 | // Name: dialup.h | |
e54c96f1 | 3 | // Purpose: interface of wxDialUpManager |
23324ae1 FM |
4 | // Author: wxWidgets team |
5 | // RCS-ID: $Id$ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
9 | /** | |
10 | @class wxDialUpManager | |
11 | @wxheader{dialup.h} | |
7c913512 | 12 | |
23324ae1 FM |
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). | |
7c913512 | 17 | |
23324ae1 FM |
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. | |
7c913512 | 23 | |
23324ae1 | 24 | This class is different from other wxWidgets classes in that there is at most |
7c913512 | 25 | one instance of this class in the program accessed via |
23324ae1 FM |
26 | wxDialUpManager::Create and you can't |
27 | create the objects of this class directly. | |
7c913512 | 28 | |
23324ae1 FM |
29 | @library{wxcore} |
30 | @category{net} | |
7c913512 | 31 | |
e54c96f1 | 32 | @see @ref overview_sampledialup "dialup sample", wxDialUpEvent |
23324ae1 | 33 | */ |
7c913512 | 34 | class wxDialUpManager |
23324ae1 FM |
35 | { |
36 | public: | |
37 | /** | |
38 | Destructor. | |
39 | */ | |
40 | ~wxDialUpManager(); | |
41 | ||
42 | /** | |
7c913512 | 43 | Cancel dialing the number initiated with Dial() |
23324ae1 | 44 | with async parameter equal to @true. |
23324ae1 | 45 | Note that this won't result in DISCONNECTED event being sent. |
3c4f71cc | 46 | |
4cc4bfaf | 47 | @see IsDialing() |
23324ae1 FM |
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 | /** | |
4cc4bfaf | 59 | Dial the given ISP, use @a username and @a password to authenticate. |
7c913512 | 60 | The parameters are only used under Windows currently, for Unix you should use |
23324ae1 FM |
61 | SetConnectCommand() to customize this |
62 | functions behaviour. | |
4cc4bfaf | 63 | If no @a nameOfISP is given, the function will select the default one |
23324ae1 FM |
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. | |
4cc4bfaf | 67 | If @a async parameter is @false, the function waits until the end of dialing |
23324ae1 | 68 | and returns @true upon successful completion. |
4cc4bfaf | 69 | If @a async is @true, the function only initiates the connection and |
23324ae1 FM |
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, | |
4cc4bfaf | 76 | bool async = true); |
23324ae1 FM |
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 | /** | |
7c913512 | 85 | Enable automatic checks for the connection status and sending of |
23324ae1 FM |
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. | |
23324ae1 FM |
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. | |
23324ae1 FM |
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 | */ | |
328f5751 | 101 | size_t GetISPNames(wxArrayString& names) const; |
23324ae1 FM |
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. | |
1f1d2182 | 111 | @note this functions tries to guess the result and it is not always |
23324ae1 FM |
112 | guaranteed to be correct, so it is better to ask user for |
113 | confirmation or give him a possibility to override it. | |
114 | */ | |
328f5751 | 115 | bool IsAlwaysOnline() const; |
23324ae1 FM |
116 | |
117 | /** | |
118 | Returns @true if (async) dialing is in progress. | |
3c4f71cc | 119 | |
4cc4bfaf | 120 | @see Dial() |
23324ae1 | 121 | */ |
328f5751 | 122 | bool IsDialing() const; |
23324ae1 FM |
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 | */ | |
328f5751 | 130 | bool IsOk() const; |
23324ae1 FM |
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 | |
7c913512 | 135 | the "well-known host" (as specified by |
23324ae1 FM |
136 | wxDialUpManager::SetWellKnownHost) is reachable. |
137 | */ | |
328f5751 | 138 | bool IsOnline() const; |
23324ae1 FM |
139 | |
140 | /** | |
328f5751 | 141 | , wxString&@e commandHangup = wxT("/usr/bin/poff")) |
23324ae1 | 142 | This method is for Unix only. |
23324ae1 FM |
143 | Sets the commands to start up the network and to hang up again. |
144 | */ | |
328f5751 | 145 | void SetConnectCommand() const; |
23324ae1 FM |
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. | |
3c4f71cc | 152 | |
4cc4bfaf | 153 | @see IsOnline() |
23324ae1 | 154 | */ |
4cc4bfaf | 155 | void SetOnlineStatus(bool isOnline = true); |
23324ae1 FM |
156 | |
157 | /** | |
158 | This method is for Unix only. | |
23324ae1 FM |
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 | ||
e54c96f1 | 167 | |
23324ae1 FM |
168 | /** |
169 | @class wxDialUpEvent | |
170 | @wxheader{dialup.h} | |
7c913512 FM |
171 | |
172 | This is the event class for the dialup events sent by | |
23324ae1 | 173 | wxDialUpManager. |
7c913512 | 174 | |
23324ae1 FM |
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 | */ | |
328f5751 | 190 | bool IsConnectedEvent() const; |
23324ae1 FM |
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 | */ | |
328f5751 | 197 | bool IsOwnEvent() const; |
23324ae1 | 198 | }; |
e54c96f1 | 199 |