Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Side by Side Diff: webkit/glue/cpp_variant.h

Issue 6254018: Allow chrome.send to pass number, boolean, null and arrays of those (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use base::strdup instead of strdup Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /* 5 /*
6 This file contains the declaration for CppVariant, a type used by C++ classes 6 This file contains the declaration for CppVariant, a type used by C++ classes
7 that are to be bound to JavaScript objects. 7 that are to be bound to JavaScript objects.
8 8
9 CppVariant exists primarily as an interface between C++ callers and the 9 CppVariant exists primarily as an interface between C++ callers and the
10 corresponding NPVariant type. CppVariant also provides a number of 10 corresponding NPVariant type. CppVariant also provides a number of
11 convenience constructors and accessors, so that the NPVariantType values 11 convenience constructors and accessors, so that the NPVariantType values
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 bool isInt32() const { return (type == NPVariantType_Int32); } 82 bool isInt32() const { return (type == NPVariantType_Int32); }
83 bool isDouble() const { return (type == NPVariantType_Double); } 83 bool isDouble() const { return (type == NPVariantType_Double); }
84 bool isNumber() const { return (isInt32() || isDouble()); } 84 bool isNumber() const { return (isInt32() || isDouble()); }
85 bool isString() const { return (type == NPVariantType_String); } 85 bool isString() const { return (type == NPVariantType_String); }
86 bool isVoid() const { return (type == NPVariantType_Void); } 86 bool isVoid() const { return (type == NPVariantType_Void); }
87 bool isNull() const { return (type == NPVariantType_Null); } 87 bool isNull() const { return (type == NPVariantType_Null); }
88 bool isEmpty() const { return (isVoid() || isNull()); } 88 bool isEmpty() const { return (isVoid() || isNull()); }
89 bool isObject() const { return (type == NPVariantType_Object); } 89 bool isObject() const { return (type == NPVariantType_Object); }
90 90
91 // Converters. The CppVariant must be of a type convertible to these values. 91 // Converters. The CppVariant must be of a type convertible to these values.
92 // For example, ToInteger() works only if isNumber() is true. 92 // For example, ToInt32() works only if isNumber() is true.
93 std::string ToString() const; 93 std::string ToString() const;
94 int32_t ToInt32() const; 94 int32_t ToInt32() const;
95 double ToDouble() const; 95 double ToDouble() const;
96 bool ToBoolean() const; 96 bool ToBoolean() const;
97 // Returns a vector of strings for the specified argument. This is useful 97 // Returns a vector of CppVariant for the specified variant. This should only
98 // for converting a JavaScript array of strings into a vector of strings. 98 // be called on an Object. If the object has no "length" property an empty
99 std::vector<std::string> ToStringVector() const; 99 // vector is returned.
100 std::vector<CppVariant> ToVector() const;
100 101
101 // Invoke method of the given name on an object with the supplied arguments. 102 // Invoke method of the given name on an object with the supplied arguments.
102 // The first argument should be the object on which the method is to be 103 // The first argument should be the object on which the method is to be
103 // invoked. Returns whether the method was successfully invoked. If the 104 // invoked. Returns whether the method was successfully invoked. If the
104 // method was invoked successfully, any return value is stored in the 105 // method was invoked successfully, any return value is stored in the
105 // CppVariant specified by result. 106 // CppVariant specified by result.
106 bool Invoke(const std::string& method, const CppVariant* args, 107 bool Invoke(const std::string& method, const CppVariant* args,
107 uint32 arg_count, CppVariant& result) const; 108 uint32 arg_count, CppVariant& result) const;
108 }; 109 };
109 110
110 #endif // WEBKIT_GLUE_CPP_VARIANT_H__ 111 #endif // WEBKIT_GLUE_CPP_VARIANT_H__
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698