1// Copyright (c) 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#include "sync/internal_api/public/base_transaction.h"
6
7#include "sync/syncable/directory.h"
8#include "sync/syncable/nigori_handler.h"
9#include "sync/util/cryptographer.h"
10
11namespace syncer {
12
13//////////////////////////////////////////////////////////////////////////
14// BaseTransaction member definitions
15BaseTransaction::BaseTransaction(UserShare* share)
16    : user_share_(share) {
17  DCHECK(share && share->directory.get());
18}
19
20BaseTransaction::~BaseTransaction() {
21}
22
23Cryptographer* BaseTransaction::GetCryptographer() const {
24  return GetDirectory()->GetCryptographer(this->GetWrappedTrans());
25}
26
27ModelTypeSet BaseTransaction::GetEncryptedTypes() const {
28  syncable::NigoriHandler* nigori_handler =
29      GetDirectory()->GetNigoriHandler();
30  return nigori_handler ?
31      nigori_handler->GetEncryptedTypes(this->GetWrappedTrans()) :
32      ModelTypeSet();
33}
34
35}  // namespace syncer
36