Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Side by Side Diff: chrome/browser/sync/engine/syncapi.h

Issue 2802015: Massively simplify the NetworkChangeNotifier infrastructure:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file defines the "sync API", an interface to the syncer 5 // This file defines the "sync API", an interface to the syncer
6 // backend that exposes (1) the core functionality of maintaining a consistent 6 // backend that exposes (1) the core functionality of maintaining a consistent
7 // local snapshot of a hierarchical object set; (2) a means to transactionally 7 // local snapshot of a hierarchical object set; (2) a means to transactionally
8 // access and modify those objects; (3) a means to control client/server 8 // access and modify those objects; (3) a means to control client/server
9 // synchronization tasks, namely: pushing local object modifications to a 9 // synchronization tasks, namely: pushing local object modifications to a
10 // server, pulling nonlocal object modifications from a server to this client, 10 // server, pulling nonlocal object modifications from a server to this client,
11 // and resolving conflicts that may arise between the two; and (4) an 11 // and resolving conflicts that may arise between the two; and (4) an
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 #include "googleurl/src/gurl.h" 53 #include "googleurl/src/gurl.h"
54 54
55 namespace browser_sync { 55 namespace browser_sync {
56 class ModelSafeWorkerRegistrar; 56 class ModelSafeWorkerRegistrar;
57 57
58 namespace sessions { 58 namespace sessions {
59 struct SyncSessionSnapshot; 59 struct SyncSessionSnapshot;
60 } 60 }
61 } 61 }
62 62
63 namespace chrome_common_net {
64 class NetworkChangeNotifierThread;
65 }
66
67 // Forward declarations of internal class types so that sync API objects 63 // Forward declarations of internal class types so that sync API objects
68 // may have opaque pointers to these types. 64 // may have opaque pointers to these types.
69 namespace syncable { 65 namespace syncable {
70 class BaseTransaction; 66 class BaseTransaction;
71 class DirectoryManager; 67 class DirectoryManager;
72 class Entry; 68 class Entry;
73 class MutableEntry; 69 class MutableEntry;
74 class ReadTransaction; 70 class ReadTransaction;
75 class ScopedDirLookup; 71 class ScopedDirLookup;
76 class WriteTransaction; 72 class WriteTransaction;
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 699
704 // Initialize the sync manager. |database_location| specifies the path of 700 // Initialize the sync manager. |database_location| specifies the path of
705 // the directory in which to locate a sqlite repository storing the syncer 701 // the directory in which to locate a sqlite repository storing the syncer
706 // backend state. Initialization will open the database, or create it if it 702 // backend state. Initialization will open the database, or create it if it
707 // does not already exist. Returns false on failure. 703 // does not already exist. Returns false on failure.
708 // |sync_server_and_path| and |sync_server_port| represent the Chrome sync 704 // |sync_server_and_path| and |sync_server_port| represent the Chrome sync
709 // server to use, and |use_ssl| specifies whether to communicate securely; 705 // server to use, and |use_ssl| specifies whether to communicate securely;
710 // the default is false. 706 // the default is false.
711 // |gaia_service_id| is the service id used for GAIA authentication. If it's 707 // |gaia_service_id| is the service id used for GAIA authentication. If it's
712 // null then default will be used. 708 // null then default will be used.
713 // |network_change_notifier_thread| (which we don't own) is the
714 // thread from which we get notifications regarding changes to the
715 // network state.
716 // |post_factory| will be owned internally and used to create 709 // |post_factory| will be owned internally and used to create
717 // instances of an HttpPostProvider. 710 // instances of an HttpPostProvider.
718 // |auth_post_factory| will be owned internally and used to create 711 // |auth_post_factory| will be owned internally and used to create
719 // instances of an HttpPostProvider for communicating with GAIA. 712 // instances of an HttpPostProvider for communicating with GAIA.
720 // TODO(timsteele): It seems like one factory should suffice, but for now to 713 // TODO(timsteele): It seems like one factory should suffice, but for now to
721 // avoid having to deal with threading issues since the auth code and syncer 714 // avoid having to deal with threading issues since the auth code and syncer
722 // code live on separate threads that run simultaneously, we just dedicate 715 // code live on separate threads that run simultaneously, we just dedicate
723 // one to each component. Long term we may want to reconsider the HttpBridge 716 // one to each component. Long term we may want to reconsider the HttpBridge
724 // API to take all the params in one chunk in a threadsafe manner.. which is 717 // API to take all the params in one chunk in a threadsafe manner.. which is
725 // still suboptimal as there will be high contention between the two threads 718 // still suboptimal as there will be high contention between the two threads
(...skipping 12 matching lines...) Expand all
738 // 731 //
739 // |invalidate_xmpp_auth_token| makes it so that any auth token 732 // |invalidate_xmpp_auth_token| makes it so that any auth token
740 // used to log into XMPP is invalidated. This is used for testing 733 // used to log into XMPP is invalidated. This is used for testing
741 // code paths related to authentication failures for XMPP only. 734 // code paths related to authentication failures for XMPP only.
742 bool Init(const FilePath& database_location, 735 bool Init(const FilePath& database_location,
743 const char* sync_server_and_path, 736 const char* sync_server_and_path,
744 int sync_server_port, 737 int sync_server_port,
745 const char* gaia_service_id, 738 const char* gaia_service_id,
746 const char* gaia_source, 739 const char* gaia_source,
747 bool use_ssl, 740 bool use_ssl,
748 chrome_common_net::NetworkChangeNotifierThread*
749 network_change_notifier_thread,
750 HttpPostProviderFactory* post_factory, 741 HttpPostProviderFactory* post_factory,
751 HttpPostProviderFactory* auth_post_factory, 742 HttpPostProviderFactory* auth_post_factory,
752 browser_sync::ModelSafeWorkerRegistrar* registrar, 743 browser_sync::ModelSafeWorkerRegistrar* registrar,
753 bool attempt_last_user_authentication, 744 bool attempt_last_user_authentication,
754 bool invalidate_last_user_auth_token, 745 bool invalidate_last_user_auth_token,
755 bool invalidate_xmpp_auth_token, 746 bool invalidate_xmpp_auth_token,
756 const char* user_agent, 747 const char* user_agent,
757 const char* lsid, 748 const char* lsid,
758 browser_sync::NotificationMethod notification_method); 749 browser_sync::NotificationMethod notification_method);
759 750
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 // This allows actual HttpPostProvider subclass implementations to be 901 // This allows actual HttpPostProvider subclass implementations to be
911 // reference counted, which is useful if a particular implementation uses 902 // reference counted, which is useful if a particular implementation uses
912 // multiple threads to serve network requests. 903 // multiple threads to serve network requests.
913 virtual void Destroy(HttpPostProviderInterface* http) = 0; 904 virtual void Destroy(HttpPostProviderInterface* http) = 0;
914 virtual ~HttpPostProviderFactory() { } 905 virtual ~HttpPostProviderFactory() { }
915 }; 906 };
916 907
917 } // namespace sync_api 908 } // namespace sync_api
918 909
919 #endif // CHROME_BROWSER_SYNC_ENGINE_SYNCAPI_H_ 910 #endif // CHROME_BROWSER_SYNC_ENGINE_SYNCAPI_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698