| Index: components/invalidation/invalidation_service_android.cc
|
| diff --git a/components/invalidation/invalidation_service_android.cc b/components/invalidation/invalidation_service_android.cc
|
| deleted file mode 100644
|
| index b91f8e881600680fe4b67ada92be15a2acf085e7..0000000000000000000000000000000000000000
|
| --- a/components/invalidation/invalidation_service_android.cc
|
| +++ /dev/null
|
| @@ -1,171 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "components/invalidation/invalidation_service_android.h"
|
| -
|
| -#include "base/android/jni_android.h"
|
| -#include "base/android/jni_array.h"
|
| -#include "base/android/jni_string.h"
|
| -#include "base/callback.h"
|
| -#include "components/invalidation/object_id_invalidation_map.h"
|
| -#include "google/cacheinvalidation/types.pb.h"
|
| -#include "jni/InvalidationService_jni.h"
|
| -
|
| -using base::android::ConvertJavaStringToUTF8;
|
| -using base::android::ConvertUTF8ToJavaString;
|
| -
|
| -namespace invalidation {
|
| -
|
| -InvalidationServiceAndroid::InvalidationServiceAndroid(jobject context)
|
| - : invalidator_state_(syncer::INVALIDATIONS_ENABLED),
|
| - logger_() {
|
| - DCHECK(CalledOnValidThread());
|
| - JNIEnv* env = base::android::AttachCurrentThread();
|
| - base::android::ScopedJavaLocalRef<jobject> local_java_ref =
|
| - Java_InvalidationService_create(env,
|
| - context,
|
| - reinterpret_cast<intptr_t>(this));
|
| - java_ref_.Reset(env, local_java_ref.obj());
|
| -}
|
| -
|
| -InvalidationServiceAndroid::~InvalidationServiceAndroid() { }
|
| -
|
| -void InvalidationServiceAndroid::RegisterInvalidationHandler(
|
| - syncer::InvalidationHandler* handler) {
|
| - DCHECK(CalledOnValidThread());
|
| - invalidator_registrar_.RegisterHandler(handler);
|
| - logger_.OnRegistration(handler->GetOwnerName());
|
| -}
|
| -
|
| -bool InvalidationServiceAndroid::UpdateRegisteredInvalidationIds(
|
| - syncer::InvalidationHandler* handler,
|
| - const syncer::ObjectIdSet& ids) {
|
| - DCHECK(CalledOnValidThread());
|
| - JNIEnv* env = base::android::AttachCurrentThread();
|
| - DCHECK(env);
|
| -
|
| - if (!invalidator_registrar_.UpdateRegisteredIds(handler, ids))
|
| - return false;
|
| - const syncer::ObjectIdSet& registered_ids =
|
| - invalidator_registrar_.GetAllRegisteredIds();
|
| -
|
| - // To call the corresponding method on the Java invalidation service, split
|
| - // the object ids into object source and object name arrays.
|
| - std::vector<int> sources;
|
| - std::vector<std::string> names;
|
| - syncer::ObjectIdSet::const_iterator id;
|
| - for (id = registered_ids.begin(); id != registered_ids.end(); ++id) {
|
| - sources.push_back(id->source());
|
| - names.push_back(id->name());
|
| - }
|
| -
|
| - Java_InvalidationService_setRegisteredObjectIds(
|
| - env,
|
| - java_ref_.obj(),
|
| - base::android::ToJavaIntArray(env, sources).obj(),
|
| - base::android::ToJavaArrayOfStrings(env, names).obj());
|
| -
|
| - logger_.OnUpdateIds(invalidator_registrar_.GetSanitizedHandlersIdsMap());
|
| - return true;
|
| -}
|
| -
|
| -void InvalidationServiceAndroid::UnregisterInvalidationHandler(
|
| - syncer::InvalidationHandler* handler) {
|
| - DCHECK(CalledOnValidThread());
|
| - invalidator_registrar_.UnregisterHandler(handler);
|
| - logger_.OnUnregistration(handler->GetOwnerName());
|
| -}
|
| -
|
| -syncer::InvalidatorState
|
| -InvalidationServiceAndroid::GetInvalidatorState() const {
|
| - DCHECK(CalledOnValidThread());
|
| - return invalidator_state_;
|
| -}
|
| -
|
| -std::string InvalidationServiceAndroid::GetInvalidatorClientId() const {
|
| - DCHECK(CalledOnValidThread());
|
| - JNIEnv* env = base::android::AttachCurrentThread();
|
| - DCHECK(env);
|
| -
|
| - // Ask the Java code to for the invalidator ID it's currently using.
|
| - base::android::ScopedJavaLocalRef<_jbyteArray*> id_bytes_java =
|
| - Java_InvalidationService_getInvalidatorClientId(env, java_ref_.obj());
|
| -
|
| - // Convert it into a more convenient format for C++.
|
| - std::vector<uint8_t> id_bytes;
|
| - base::android::JavaByteArrayToByteVector(env, id_bytes_java.obj(), &id_bytes);
|
| - std::string id(id_bytes.begin(), id_bytes.end());
|
| -
|
| - return id;
|
| -}
|
| -
|
| -InvalidationLogger* InvalidationServiceAndroid::GetInvalidationLogger() {
|
| - return &logger_;
|
| -}
|
| -
|
| -void InvalidationServiceAndroid::RequestDetailedStatus(
|
| - base::Callback<void(const base::DictionaryValue&)> return_callback) const {
|
| -}
|
| -
|
| -IdentityProvider* InvalidationServiceAndroid::GetIdentityProvider() {
|
| - return NULL;
|
| -}
|
| -
|
| -void InvalidationServiceAndroid::TriggerStateChangeForTest(
|
| - syncer::InvalidatorState state) {
|
| - DCHECK(CalledOnValidThread());
|
| - invalidator_state_ = state;
|
| - invalidator_registrar_.UpdateInvalidatorState(invalidator_state_);
|
| -}
|
| -
|
| -void InvalidationServiceAndroid::Invalidate(JNIEnv* env,
|
| - jobject obj,
|
| - jint object_source,
|
| - jstring java_object_id,
|
| - jlong version,
|
| - jstring java_payload) {
|
| - syncer::ObjectIdInvalidationMap object_invalidation_map;
|
| - if (!java_object_id) {
|
| - syncer::ObjectIdSet sync_ids;
|
| - if (object_source == 0) {
|
| - sync_ids = invalidator_registrar_.GetAllRegisteredIds();
|
| - } else {
|
| - for (const auto& id : invalidator_registrar_.GetAllRegisteredIds()) {
|
| - if (id.source() == object_source)
|
| - sync_ids.insert(id);
|
| - }
|
| - }
|
| - object_invalidation_map =
|
| - syncer::ObjectIdInvalidationMap::InvalidateAll(sync_ids);
|
| - } else {
|
| - invalidation::ObjectId object_id(
|
| - object_source, ConvertJavaStringToUTF8(env, java_object_id));
|
| -
|
| - if (version == ipc::invalidation::Constants::UNKNOWN) {
|
| - object_invalidation_map.Insert(
|
| - syncer::Invalidation::InitUnknownVersion(object_id));
|
| - } else {
|
| - ObjectIdVersionMap::iterator it =
|
| - max_invalidation_versions_.find(object_id);
|
| - if ((it != max_invalidation_versions_.end()) && (version <= it->second)) {
|
| - DVLOG(1) << "Dropping redundant invalidation with version " << version;
|
| - return;
|
| - }
|
| - max_invalidation_versions_[object_id] = version;
|
| - object_invalidation_map.Insert(syncer::Invalidation::Init(
|
| - object_id, version, ConvertJavaStringToUTF8(env, java_payload)));
|
| - }
|
| - }
|
| -
|
| - invalidator_registrar_.DispatchInvalidationsToHandlers(
|
| - object_invalidation_map);
|
| - logger_.OnInvalidation(object_invalidation_map);
|
| -}
|
| -
|
| -// static
|
| -bool InvalidationServiceAndroid::RegisterJni(JNIEnv* env) {
|
| - return RegisterNativesImpl(env);
|
| -}
|
| -
|
| -} // namespace invalidation
|
|
|