summaryrefslogtreecommitdiff
path: root/chromium/extensions/browser/api/alarms/alarms_api.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/extensions/browser/api/alarms/alarms_api.h')
-rw-r--r--chromium/extensions/browser/api/alarms/alarms_api.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/chromium/extensions/browser/api/alarms/alarms_api.h b/chromium/extensions/browser/api/alarms/alarms_api.h
new file mode 100644
index 00000000000..837da909620
--- /dev/null
+++ b/chromium/extensions/browser/api/alarms/alarms_api.h
@@ -0,0 +1,93 @@
+// Copyright (c) 2012 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 EXTENSIONS_BROWSER_API_ALARMS_ALARMS_API_H_
+#define EXTENSIONS_BROWSER_API_ALARMS_ALARMS_API_H_
+
+#include <vector>
+
+#include "extensions/browser/extension_function.h"
+
+namespace base {
+class Clock;
+} // namespace base
+
+namespace extensions {
+struct Alarm;
+typedef std::vector<Alarm> AlarmList;
+
+class AlarmsCreateFunction : public AsyncExtensionFunction {
+ public:
+ AlarmsCreateFunction();
+ // Use |clock| instead of the default clock. Does not take ownership
+ // of |clock|. Used for testing.
+ explicit AlarmsCreateFunction(base::Clock* clock);
+
+ protected:
+ ~AlarmsCreateFunction() override;
+
+ // ExtensionFunction:
+ bool RunAsync() override;
+ DECLARE_EXTENSION_FUNCTION("alarms.create", ALARMS_CREATE)
+ private:
+ void Callback();
+
+ base::Clock* const clock_;
+ // Whether or not we own |clock_|. This is needed because we own it
+ // when we create it ourselves, but not when it's passed in for
+ // testing.
+ bool owns_clock_;
+};
+
+class AlarmsGetFunction : public AsyncExtensionFunction {
+ protected:
+ ~AlarmsGetFunction() override {}
+
+ // ExtensionFunction:
+ bool RunAsync() override;
+
+ private:
+ void Callback(const std::string& name, Alarm* alarm);
+ DECLARE_EXTENSION_FUNCTION("alarms.get", ALARMS_GET)
+};
+
+class AlarmsGetAllFunction : public AsyncExtensionFunction {
+ protected:
+ ~AlarmsGetAllFunction() override {}
+
+ // ExtensionFunction:
+ bool RunAsync() override;
+
+ private:
+ void Callback(const AlarmList* alarms);
+ DECLARE_EXTENSION_FUNCTION("alarms.getAll", ALARMS_GETALL)
+};
+
+class AlarmsClearFunction : public AsyncExtensionFunction {
+ protected:
+ ~AlarmsClearFunction() override {}
+
+ // ExtensionFunction:
+ bool RunAsync() override;
+
+ private:
+ void Callback(const std::string& name, bool success);
+ DECLARE_EXTENSION_FUNCTION("alarms.clear", ALARMS_CLEAR)
+};
+
+class AlarmsClearAllFunction : public AsyncExtensionFunction {
+ protected:
+ ~AlarmsClearAllFunction() override {}
+
+ // ExtensionFunction:
+ bool RunAsync() override;
+
+ private:
+ void Callback();
+ DECLARE_EXTENSION_FUNCTION("alarms.clearAll", ALARMS_CLEARALL)
+};
+
+} // namespace extensions
+
+#endif // EXTENSIONS_BROWSER_API_ALARMS_ALARMS_API_H_