• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/change_record.h"
6 
7 #include "base/strings/string_number_conversions.h"
8 #include "base/values.h"
9 #include "sync/internal_api/public/base_node.h"
10 #include "sync/internal_api/public/read_node.h"
11 #include "sync/protocol/proto_value_conversions.h"
12 
13 namespace syncer {
14 
ChangeRecord()15 ChangeRecord::ChangeRecord()
16     : id(kInvalidId), action(ACTION_ADD) {}
17 
~ChangeRecord()18 ChangeRecord::~ChangeRecord() {}
19 
ToValue() const20 base::DictionaryValue* ChangeRecord::ToValue() const {
21   base::DictionaryValue* value = new base::DictionaryValue();
22   std::string action_str;
23   switch (action) {
24     case ACTION_ADD:
25       action_str = "Add";
26       break;
27     case ACTION_DELETE:
28       action_str = "Delete";
29       break;
30     case ACTION_UPDATE:
31       action_str = "Update";
32       break;
33     default:
34       NOTREACHED();
35       action_str = "Unknown";
36       break;
37   }
38   value->SetString("action", action_str);
39   value->SetString("id", base::Int64ToString(id));
40   if (action == ACTION_DELETE) {
41     if (extra.get()) {
42       value->Set("extra", extra->ToValue());
43     }
44     value->Set("specifics", EntitySpecificsToValue(specifics));
45   }
46   return value;
47 }
48 
ExtraPasswordChangeRecordData()49 ExtraPasswordChangeRecordData::ExtraPasswordChangeRecordData() {}
50 
ExtraPasswordChangeRecordData(const sync_pb::PasswordSpecificsData & data)51 ExtraPasswordChangeRecordData::ExtraPasswordChangeRecordData(
52     const sync_pb::PasswordSpecificsData& data)
53     : unencrypted_(data) {
54 }
55 
~ExtraPasswordChangeRecordData()56 ExtraPasswordChangeRecordData::~ExtraPasswordChangeRecordData() {}
57 
ToValue() const58 base::DictionaryValue* ExtraPasswordChangeRecordData::ToValue() const {
59   return PasswordSpecificsDataToValue(unencrypted_);
60 }
61 
62 const sync_pb::PasswordSpecificsData&
unencrypted() const63     ExtraPasswordChangeRecordData::unencrypted() const {
64   return unencrypted_;
65 }
66 
67 }  // namespace syncer
68