summaryrefslogtreecommitdiffstats
path: root/chrome/browser/api/webdata/web_data_results.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/api/webdata/web_data_results.h')
-rw-r--r--chrome/browser/api/webdata/web_data_results.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/chrome/browser/api/webdata/web_data_results.h b/chrome/browser/api/webdata/web_data_results.h
new file mode 100644
index 0000000..6d2d5b8
--- /dev/null
+++ b/chrome/browser/api/webdata/web_data_results.h
@@ -0,0 +1,89 @@
+// 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 CHROME_BROWSER_API_WEBDATA_WEB_DATA_RESULTS_H_
+#define CHROME_BROWSER_API_WEBDATA_WEB_DATA_RESULTS_H_
+
+#include "base/basictypes.h"
+
+//
+// Result types for WebDataService.
+//
+typedef enum {
+ BOOL_RESULT = 1, // WDResult<bool>
+ KEYWORDS_RESULT, // WDResult<WDKeywordsResult>
+ INT64_RESULT, // WDResult<int64>
+#if defined(OS_WIN)
+ PASSWORD_IE7_RESULT, // WDResult<IE7PasswordInfo>
+#endif
+ WEB_APP_IMAGES, // WDResult<WDAppImagesResult>
+ TOKEN_RESULT, // WDResult<std::vector<std::string>>
+ AUTOFILL_VALUE_RESULT, // WDResult<std::vector<string16>>
+ AUTOFILL_CHANGES, // WDResult<std::vector<AutofillChange>>
+ AUTOFILL_PROFILE_RESULT, // WDResult<AutofillProfile>
+ AUTOFILL_PROFILES_RESULT, // WDResult<std::vector<AutofillProfile*>>
+ AUTOFILL_CREDITCARD_RESULT, // WDResult<CreditCard>
+ AUTOFILL_CREDITCARDS_RESULT, // WDResult<std::vector<CreditCard*>>
+ WEB_INTENTS_RESULT, // WDResult<std::vector<WebIntentServiceData>>
+ WEB_INTENTS_DEFAULTS_RESULT, // WDResult<std::vector<DefaultWebIntentService>>
+} WDResultType;
+
+//
+// The top level class for a result.
+//
+class WDTypedResult {
+ public:
+ virtual ~WDTypedResult() {}
+
+ // Return the result type.
+ WDResultType GetType() const {
+ return type_;
+ }
+
+ protected:
+ explicit WDTypedResult(WDResultType type) : type_(type) {
+ }
+
+ private:
+ WDResultType type_;
+ DISALLOW_COPY_AND_ASSIGN(WDTypedResult);
+};
+
+// A result containing one specific pointer or literal value.
+template <class T> class WDResult : public WDTypedResult {
+ public:
+
+ WDResult(WDResultType type, const T& v) : WDTypedResult(type), value_(v) {
+ }
+
+ virtual ~WDResult() {
+ }
+
+ // Return a single value result.
+ T GetValue() const {
+ return value_;
+ }
+
+ private:
+ T value_;
+
+ DISALLOW_COPY_AND_ASSIGN(WDResult);
+};
+
+template <class T> class WDObjectResult : public WDTypedResult {
+ public:
+ explicit WDObjectResult(WDResultType type) : WDTypedResult(type) {
+ }
+
+ T* GetValue() const {
+ return &value_;
+ }
+
+ private:
+ // mutable to keep GetValue() const.
+ mutable T value_;
+ DISALLOW_COPY_AND_ASSIGN(WDObjectResult);
+};
+
+#endif // CHROME_BROWSER_API_WEBDATA_WEB_DATA_RESULTS_H_