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 14namespace syncer { 15 16namespace syncable { 17class 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. 24struct 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