1 // Copyright 2012 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 SYNC_INTERNAL_API_PUBLIC_USER_SHARE_H_ 6 #define SYNC_INTERNAL_API_PUBLIC_USER_SHARE_H_ 7 8 #include <string> 9 10 #include "base/memory/scoped_ptr.h" 11 #include "sync/base/sync_export.h" 12 #include "sync/internal_api/public/sync_manager.h" 13 14 namespace syncer { 15 16 namespace syncable { 17 class Directory; 18 } 19 20 // A UserShare encapsulates the syncable pieces that represent an authenticated 21 // user and their data (share). 22 // This encompasses all pieces required to build transaction objects on the 23 // syncable share. 24 struct SYNC_EXPORT_PRIVATE UserShare { 25 UserShare(); 26 ~UserShare(); 27 28 // The Directory itself, which is the parent of Transactions. 29 scoped_ptr<syncable::Directory> directory; 30 31 // The credentials used by sync when talking to the sync server. 32 // 33 // Note: some or all of the sync_credentials fields may be empty. 34 SyncCredentials sync_credentials; 35 }; 36 37 } // namespace syncer 38 39 #endif // SYNC_INTERNAL_API_PUBLIC_USER_SHARE_H_ 40