blob: e0e133f179df4dfb91983d5cf45d2494a08769e0 [file] [log] [blame]
// 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.
#ifndef COMPONENTS_DOM_DISTILLER_CORE_DOM_DISTILLER_SERVICE_ANDROID_H_
#define COMPONENTS_DOM_DISTILLER_CORE_DOM_DISTILLER_SERVICE_ANDROID_H_
#include <jni.h>
#include "base/android/scoped_java_ref.h"
#include "components/dom_distiller/core/dom_distiller_service.h"
namespace dom_distiller {
namespace android {
class DomDistillerServiceFactoryAndroid;
// Native implementation of DomDistillerService,
// provides access to Java DistilledPagePrefs.
class DomDistillerServiceAndroid {
public:
DomDistillerServiceAndroid(DomDistillerService* service);
virtual ~DomDistillerServiceAndroid();
// Returns native pointer to native DistilledPagePrefs registered with
// DomDistillerService.
jlong GetDistilledPagePrefsPtr(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
bool HasEntry(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
const base::android::JavaParamRef<jstring>& entry_id);
base::android::ScopedJavaLocalRef<jstring> GetUrlForEntry(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
const base::android::JavaParamRef<jstring>& entry_id);
private:
// Friend class so that DomDistillerServiceFactoryAndroid has access to
// private member object java_ref_.
friend class DomDistillerServiceFactoryAndroid;
// Points to a Java instance of DomDistillerService.
base::android::ScopedJavaGlobalRef<jobject> java_ref_;
DomDistillerService* service_;
};
} // namespace android
} // namespace dom_distiller
#endif // COMPONENTS_DOM_DISTILLER_CORE_DOM_DISTILLER_SERVICE_ANDROID_H