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
13namespace syncer {
14
15namespace syncable {
16class Directory;
17}
18
19// A UserShare encapsulates the syncable pieces that represent an authenticated
20// user and their data (share).
21// This encompasses all pieces required to build transaction objects on the
22// syncable share.
23struct SYNC_EXPORT_PRIVATE UserShare {
24  UserShare();
25  ~UserShare();
26
27  // The Directory itself, which is the parent of Transactions.
28  scoped_ptr<syncable::Directory> directory;
29};
30
31}  // namespace syncer
32
33#endif  // SYNC_INTERNAL_API_PUBLIC_USER_SHARE_H_
34