Home | History | Annotate | Download | only in internal_api
      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 
     15 ChangeRecord::ChangeRecord()
     16     : id(kInvalidId), action(ACTION_ADD) {}
     17 
     18 ChangeRecord::~ChangeRecord() {}
     19 
     20 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 
     49 ExtraPasswordChangeRecordData::ExtraPasswordChangeRecordData() {}
     50 
     51 ExtraPasswordChangeRecordData::ExtraPasswordChangeRecordData(
     52     const sync_pb::PasswordSpecificsData& data)
     53     : unencrypted_(data) {
     54 }
     55 
     56 ExtraPasswordChangeRecordData::~ExtraPasswordChangeRecordData() {}
     57 
     58 base::DictionaryValue* ExtraPasswordChangeRecordData::ToValue() const {
     59   return PasswordSpecificsDataToValue(unencrypted_);
     60 }
     61 
     62 const sync_pb::PasswordSpecificsData&
     63     ExtraPasswordChangeRecordData::unencrypted() const {
     64   return unencrypted_;
     65 }
     66 
     67 }  // namespace syncer
     68