| Index: chrome/browser/sync/notifier/communicator/xmpp_connection_generator.h
|
| ===================================================================
|
| --- chrome/browser/sync/notifier/communicator/xmpp_connection_generator.h (revision 0)
|
| +++ chrome/browser/sync/notifier/communicator/xmpp_connection_generator.h (revision 0)
|
| @@ -0,0 +1,81 @@
|
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CHROME_BROWSER_SYNC_NOTIFIER_COMMUNICATOR_XMPP_CONNECTION_GENERATOR_H_
|
| +#define CHROME_BROWSER_SYNC_NOTIFIER_COMMUNICATOR_XMPP_CONNECTION_GENERATOR_H_
|
| +#include <vector>
|
| +
|
| +#include "talk/base/scoped_ptr.h"
|
| +#include "talk/base/sigslot.h"
|
| +#include "talk/base/socketaddress.h"
|
| +
|
| +namespace talk_base {
|
| +class AutoDetectProxy;
|
| +struct ProxyInfo;
|
| +class SignalThread;
|
| +class Task;
|
| +}
|
| +
|
| +namespace notifier {
|
| +class AsyncDNSLookup;
|
| +class ConnectionOptions;
|
| +class ConnectionSettings;
|
| +class ConnectionSettingsList;
|
| +
|
| +struct ServerInformation {
|
| + talk_base::SocketAddress server;
|
| + bool special_port_magic;
|
| +};
|
| +
|
| +// Resolves dns names and iterates through the various ip address
|
| +// and transport combinations.
|
| +class XmppConnectionGenerator : public sigslot::has_slots<> {
|
| + public:
|
| + // parent is the parent for any tasks needed during this operation
|
| + // proxy_only indicates if true connections are only attempted using the proxy
|
| + // server_list is the list of connections to attempt in priority order
|
| + // server_count is the number of items in the server list
|
| + XmppConnectionGenerator(talk_base::Task* parent,
|
| + const ConnectionOptions* options,
|
| + bool proxy_only,
|
| + const ServerInformation* server_list,
|
| + int server_count);
|
| + ~XmppConnectionGenerator();
|
| +
|
| + // Only call this once. Create a new XmppConnectionGenerator and
|
| + // delete the current one if the process needs to start again.
|
| + void StartGenerating();
|
| +
|
| + void UseNextConnection();
|
| + void UseCurrentConnection();
|
| +
|
| + const talk_base::ProxyInfo& proxy() const;
|
| +
|
| + sigslot::signal1<const ConnectionSettings&> SignalNewSettings;
|
| +
|
| + // SignalExhaustedSettings(bool successfully_resolved_dns,
|
| + // int first_dns_error);
|
| + sigslot::signal2<bool, int> SignalExhaustedSettings;
|
| +
|
| + private:
|
| + void OnProxyDetect(talk_base::AutoDetectProxy* proxy_detect);
|
| + void OnServerDNSResolved(AsyncDNSLookup* dns_lookup);
|
| + void HandleExhaustedConnections();
|
| +
|
| + talk_base::scoped_ptr<ConnectionSettingsList> settings_list_;
|
| + int settings_index_; // the setting that is currently being used
|
| + talk_base::scoped_array<ServerInformation> server_list_;
|
| + int server_count_;
|
| + int server_index_; // the server that is current being used
|
| + bool proxy_only_;
|
| + bool successfully_resolved_dns_;
|
| + int first_dns_error_;
|
| + const ConnectionOptions* options_;
|
| +
|
| + talk_base::Task* parent_;
|
| + DISALLOW_COPY_AND_ASSIGN(XmppConnectionGenerator);
|
| +};
|
| +} // namespace notifier
|
| +
|
| +#endif // CHROME_BROWSER_SYNC_NOTIFIER_COMMUNICATOR_XMPP_CONNECTION_GENERATOR_H_
|
|
|
| Property changes on: chrome\browser\sync\notifier\communicator\xmpp_connection_generator.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|