| Index: chrome/browser/sync/syncable/model_type.cc
|
| diff --git a/chrome/browser/sync/syncable/model_type.cc b/chrome/browser/sync/syncable/model_type.cc
|
| index f1accf59b7cd32493366bf6b2ea03b2eb64d009d..48b923ed26314870af1ef2e4997b392c981bcd2b 100644
|
| --- a/chrome/browser/sync/syncable/model_type.cc
|
| +++ b/chrome/browser/sync/syncable/model_type.cc
|
| @@ -363,6 +363,17 @@ std::string ModelTypeBitSetToString(const ModelTypeBitSet& model_types) {
|
| return result;
|
| }
|
|
|
| +std::string ModelEnumSetToString(ModelEnumSet model_types) {
|
| + std::string result;
|
| + for (ModelEnumSet::Iterator it = model_types.First(); it.Good(); it.Inc()) {
|
| + if (!result.empty()) {
|
| + result += ", ";
|
| + }
|
| + result += ModelTypeToString(it.Get());
|
| + }
|
| + return result;
|
| +}
|
| +
|
| ModelTypeBitSet ModelTypeBitSetFromSet(const ModelTypeSet& set) {
|
| ModelTypeBitSet bitset;
|
| for (ModelTypeSet::const_iterator iter = set.begin(); iter != set.end();
|
| @@ -383,6 +394,33 @@ ModelTypeSet ModelTypeBitSetToSet(const ModelTypeBitSet& bit_set) {
|
| return set;
|
| }
|
|
|
| +ModelEnumSet ModelTypeBitSetToEnumSet(const ModelTypeBitSet& bitset) {
|
| + ModelEnumSet enum_set;
|
| + for (int i = FIRST_REAL_MODEL_TYPE; i < MODEL_TYPE_COUNT; ++i) {
|
| + if (bitset[i]) {
|
| + enum_set.Put(syncable::ModelTypeFromInt(i));
|
| + }
|
| + }
|
| + return enum_set;
|
| +}
|
| +
|
| +ModelTypeSet ModelEnumSetToSet(ModelEnumSet enum_set) {
|
| + ModelTypeSet model_type_set;
|
| + for (ModelEnumSet::Iterator it = enum_set.First(); it.Good(); it.Inc()) {
|
| + model_type_set.insert(it.Get());
|
| + }
|
| + return model_type_set;
|
| +}
|
| +
|
| +ModelEnumSet ModelTypeSetToEnumSet(const ModelTypeSet& model_type_set) {
|
| + ModelEnumSet enum_set;
|
| + for (ModelTypeSet::const_iterator it = model_type_set.begin();
|
| + it != model_type_set.end(); ++it) {
|
| + enum_set.Put(*it);
|
| + }
|
| + return enum_set;
|
| +}
|
| +
|
| ListValue* ModelTypeBitSetToValue(const ModelTypeBitSet& model_types) {
|
| ListValue* value = new ListValue();
|
| for (int i = FIRST_REAL_MODEL_TYPE; i < MODEL_TYPE_COUNT; ++i) {
|
| @@ -394,6 +432,15 @@ ListValue* ModelTypeBitSetToValue(const ModelTypeBitSet& model_types) {
|
| return value;
|
| }
|
|
|
| +base::ListValue* ModelEnumSetToValue(ModelEnumSet model_types) {
|
| + ListValue* value = new ListValue();
|
| + for (ModelEnumSet::Iterator it = model_types.First(); it.Good(); it.Inc()) {
|
| + value->Append(
|
| + Value::CreateStringValue(ModelTypeToString(it.Get())));
|
| + }
|
| + return value;
|
| +}
|
| +
|
| ModelTypeBitSet ModelTypeBitSetFromValue(const base::ListValue& value) {
|
| ModelTypeBitSet result;
|
| for (ListValue::const_iterator i = value.begin(); i != value.end(); ++i) {
|
| @@ -419,6 +466,14 @@ ModelTypeSet ModelTypeSetFromValue(const base::ListValue& value) {
|
| return result;
|
| }
|
|
|
| +ModelEnumSet ModelEnumSetFromValue(const base::ListValue& value) {
|
| + ModelEnumSet result;
|
| + for (ListValue::const_iterator i = value.begin(); i != value.end(); ++i) {
|
| + result.Put(ModelTypeFromValue(**i));
|
| + }
|
| + return result;
|
| +}
|
| +
|
| // TODO(zea): remove all hardcoded tags in model associators and have them use
|
| // this instead.
|
| std::string ModelTypeToRootTag(ModelType type) {
|
|
|