Home | History | Annotate | Download | only in public
      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