1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef REMOTING_BASE_SERVICE_URLS_H_
6#define REMOTING_BASE_SERVICE_URLS_H_
7
8#include <string>
9
10#include "base/basictypes.h"
11#include "base/memory/singleton.h"
12
13namespace remoting {
14
15// This class contains the URLs to the services used by the host (except for
16// Gaia, which has its own GaiaUrls class. In debug builds, it allows these URLs
17// to be overriden by command line switches, allowing the host process to be
18// pointed at alternate/test servers.
19class ServiceUrls {
20 public:
21  static ServiceUrls* GetInstance();
22
23  // Remoting directory REST API URLs.
24  const std::string& directory_base_url() const;
25  const std::string& directory_hosts_url() const;
26
27  // XMPP Server configuration.
28  const std::string& xmpp_server_address() const;
29  bool xmpp_server_use_tls() const;
30
31  // Remoting directory bot JID (for registering hosts, logging, heartbeats).
32  const std::string& directory_bot_jid() const;
33
34 private:
35  friend struct DefaultSingletonTraits<ServiceUrls>;
36
37  ServiceUrls();
38  virtual ~ServiceUrls();
39
40  std::string directory_base_url_;
41  std::string directory_hosts_url_;
42  std::string xmpp_server_address_;
43  bool xmpp_server_use_tls_;
44  std::string directory_bot_jid_;
45
46  DISALLOW_COPY_AND_ASSIGN(ServiceUrls);
47};
48
49}  // namespace remoting
50
51#endif  // REMOTING_BASE_SERVICE_URLS_H_
52