// Copyright (c) 2011 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_SYNC_NOTIFIER_FACTORY_H_ #define CHROME_BROWSER_SYNC_NOTIFIER_SYNC_NOTIFIER_FACTORY_H_ #include <string> #include "base/memory/ref_counted.h" class CommandLine; namespace net { class URLRequestContextGetter; } namespace sync_notifier { class SyncNotifier; // Class to instantiate various implementations of the SyncNotifier interface. class SyncNotifierFactory { public: // |client_info| is a string identifying the client, e.g. a user // agent string. explicit SyncNotifierFactory(const std::string& client_info); ~SyncNotifierFactory(); // Creates the appropriate sync notifier. The caller should take ownership // of the object returned and delete it when no longer used. SyncNotifier* CreateSyncNotifier( const CommandLine& command_line, const scoped_refptr<net::URLRequestContextGetter>& request_context_getter); private: const std::string client_info_; }; } // namespace sync_notifier #endif // CHROME_BROWSER_SYNC_NOTIFIER_SYNC_NOTIFIER_FACTORY_H_