| // Copyright 2013 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. |
| |
| #ifndef CHROME_BROWSER_INVALIDATION_INVALIDATION_CONTROLLER_ANDROID_H_ |
| #define CHROME_BROWSER_INVALIDATION_INVALIDATION_CONTROLLER_ANDROID_H_ |
| |
| #include <string> |
| |
| #include "base/android/jni_android.h" |
| #include "base/android/jni_weak_ref.h" |
| #include "sync/notifier/invalidation_util.h" |
| |
| namespace invalidation { |
| |
| // Controls invalidation registration on Android. This class is a wrapper for |
| // the Java class org.chromium.sync.notifier.InvalidationController. |
| class InvalidationControllerAndroid { |
| public: |
| InvalidationControllerAndroid(); |
| virtual ~InvalidationControllerAndroid(); |
| |
| // Sets object ids for which the invalidation client should register for |
| // notification. |
| virtual void SetRegisteredObjectIds(const syncer::ObjectIdSet& ids); |
| |
| // Asks the Java code to return the client ID it chose to use. |
| std::string GetInvalidatorClientId(); |
| |
| private: |
| // The Java invalidation controller. |
| base::android::ScopedJavaGlobalRef<jobject> invalidation_controller_; |
| |
| DISALLOW_COPY_AND_ASSIGN(InvalidationControllerAndroid); |
| }; |
| |
| bool RegisterInvalidationController(JNIEnv* env); |
| |
| } // namespace invalidation |
| |
| #endif // CHROME_BROWSER_INVALIDATION_INVALIDATION_CONTROLLER_ANDROID_H_ |