blob: 03b29f93e0ec5b9462cd2693de054dbb1ddaa3f1 [file] [log] [blame]
// 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_