summaryrefslogtreecommitdiffstats
path: root/ppapi/cpp
diff options
context:
space:
mode:
authoryzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-13 01:33:18 +0000
committeryzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-13 01:33:18 +0000
commit09a1f4ad7e399b443d3c9103fa65116c86b8d9f9 (patch)
tree240aa4734c658d008790d0ac4dbea393cea20798 /ppapi/cpp
parentf82752876b3e854b2529ff0dfaffe4323bbddf8a (diff)
downloadchromium_src-09a1f4ad7e399b443d3c9103fa65116c86b8d9f9.zip
chromium_src-09a1f4ad7e399b443d3c9103fa65116c86b8d9f9.tar.gz
chromium_src-09a1f4ad7e399b443d3c9103fa65116c86b8d9f9.tar.bz2
Add a default constructor for VarArrayBuffer, so that it can be used by ext::DictField.
BUG=226303 TEST=None Review URL: https://chromiumcodereview.appspot.com/13985026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194066 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/cpp')
-rw-r--r--ppapi/cpp/extensions/dev/socket_dev.cc4
-rw-r--r--ppapi/cpp/extensions/dev/socket_dev.h10
-rw-r--r--ppapi/cpp/extensions/from_var_converter.h38
-rw-r--r--ppapi/cpp/var_array_buffer.cc25
-rw-r--r--ppapi/cpp/var_array_buffer.h11
5 files changed, 62 insertions, 26 deletions
diff --git a/ppapi/cpp/extensions/dev/socket_dev.cc b/ppapi/cpp/extensions/dev/socket_dev.cc
index a2e8830..735a328 100644
--- a/ppapi/cpp/extensions/dev/socket_dev.cc
+++ b/ppapi/cpp/extensions/dev/socket_dev.cc
@@ -374,7 +374,7 @@ int32_t Socket_Dev::Read(
int32_t Socket_Dev::Write(
int32_t socket_id,
- const Var& data,
+ const VarArrayBuffer& data,
const CompletionCallbackWithOutput<WriteInfo_Dev>& callback) {
if (!has_interface<PPB_Ext_Socket_Dev_0_1>())
return callback.MayForce(PP_ERROR_NOINTERFACE);
@@ -410,7 +410,7 @@ int32_t Socket_Dev::RecvFrom(
int32_t Socket_Dev::SendTo(
int32_t socket_id,
- const Var& data,
+ const VarArrayBuffer& data,
const std::string& address,
int32_t port,
const CompletionCallbackWithOutput<WriteInfo_Dev>& callback) {
diff --git a/ppapi/cpp/extensions/dev/socket_dev.h b/ppapi/cpp/extensions/dev/socket_dev.h
index 5d2e5be..098bb01 100644
--- a/ppapi/cpp/extensions/dev/socket_dev.h
+++ b/ppapi/cpp/extensions/dev/socket_dev.h
@@ -96,9 +96,7 @@ class ReadInfo_Dev : public internal::OutputObjectBase {
static const char* const kData;
DictField<int32_t> result_code;
- // TODO(yzshen): It is more natural to use VarArrayBuffer, but it doesn't have
- // a default constructor currently.
- DictField<Var> data;
+ DictField<VarArrayBuffer> data;
};
class WriteInfo_Dev : public internal::OutputObjectBase {
@@ -130,7 +128,7 @@ class RecvFromInfo_Dev : public internal::OutputObjectBase {
static const char* const kPort;
DictField<int32_t> result_code;
- DictField<Var> data;
+ DictField<VarArrayBuffer> data;
DictField<std::string> address;
DictField<int32_t> port;
};
@@ -199,14 +197,14 @@ class Socket_Dev {
const Optional<int32_t>& buffer_size,
const CompletionCallbackWithOutput<ReadInfo_Dev>& callback);
int32_t Write(int32_t socket_id,
- const Var& data,
+ const VarArrayBuffer& data,
const CompletionCallbackWithOutput<WriteInfo_Dev>& callback);
int32_t RecvFrom(
int32_t socket_id,
const Optional<int32_t>& buffer_size,
const CompletionCallbackWithOutput<RecvFromInfo_Dev>& callback);
int32_t SendTo(int32_t socket_id,
- const Var& data,
+ const VarArrayBuffer& data,
const std::string& address,
int32_t port,
const CompletionCallbackWithOutput<WriteInfo_Dev>& callback);
diff --git a/ppapi/cpp/extensions/from_var_converter.h b/ppapi/cpp/extensions/from_var_converter.h
index ddafe1d..094f0c4 100644
--- a/ppapi/cpp/extensions/from_var_converter.h
+++ b/ppapi/cpp/extensions/from_var_converter.h
@@ -13,6 +13,7 @@
#include "ppapi/cpp/extensions/optional.h"
#include "ppapi/cpp/logging.h"
#include "ppapi/cpp/var.h"
+#include "ppapi/cpp/var_array_buffer.h"
namespace pp {
namespace ext {
@@ -42,7 +43,7 @@ class FromVarConverter : public FromVarConverterBase<T> {
FromVarConverter() {
}
- FromVarConverter(const PP_Var& var) {
+ explicit FromVarConverter(const PP_Var& var) {
Set(var);
}
@@ -64,7 +65,7 @@ class FromVarConverter<Optional<T> >
FromVarConverter() {
}
- FromVarConverter(const PP_Var& var) {
+ explicit FromVarConverter(const PP_Var& var) {
Set(var);
}
@@ -87,7 +88,7 @@ class FromVarConverter<bool> : public FromVarConverterBase<bool> {
FromVarConverter() {
}
- FromVarConverter(const PP_Var& var) {
+ explicit FromVarConverter(const PP_Var& var) {
Set(var);
}
@@ -105,7 +106,7 @@ class FromVarConverter<int32_t> : public FromVarConverterBase<int32_t> {
FromVarConverter() {
}
- FromVarConverter(const PP_Var& var) {
+ explicit FromVarConverter(const PP_Var& var) {
Set(var);
}
@@ -123,7 +124,7 @@ class FromVarConverter<double> : public FromVarConverterBase<double> {
FromVarConverter() {
}
- FromVarConverter(const PP_Var& var) {
+ explicit FromVarConverter(const PP_Var& var) {
Set(var);
}
@@ -141,7 +142,7 @@ class FromVarConverter<std::string> : public FromVarConverterBase<std::string> {
FromVarConverter() {
}
- FromVarConverter(const PP_Var& var) {
+ explicit FromVarConverter(const PP_Var& var) {
Set(var);
}
@@ -159,7 +160,7 @@ class FromVarConverter<Var> : public FromVarConverterBase<Var> {
FromVarConverter() {
}
- FromVarConverter(const PP_Var& var) {
+ explicit FromVarConverter(const PP_Var& var) {
Set(var);
}
@@ -178,7 +179,7 @@ class FromVarConverter<VarArray_Dev>
FromVarConverter() {
}
- FromVarConverter(const PP_Var& var) {
+ explicit FromVarConverter(const PP_Var& var) {
Set(var);
}
@@ -197,7 +198,7 @@ class FromVarConverter<VarDictionary_Dev>
FromVarConverter() {
}
- FromVarConverter(const PP_Var& var) {
+ explicit FromVarConverter(const PP_Var& var) {
Set(var);
}
@@ -209,6 +210,25 @@ class FromVarConverter<VarDictionary_Dev>
}
};
+template <>
+class FromVarConverter<VarArrayBuffer>
+ : public FromVarConverterBase<VarArrayBuffer> {
+ public:
+ FromVarConverter() {
+ }
+
+ explicit FromVarConverter(const PP_Var& var) {
+ Set(var);
+ }
+
+ ~FromVarConverter() {
+ }
+
+ void Set(const PP_Var& var) {
+ FromVarConverterBase<VarArrayBuffer>::value_ = Var(var);
+ }
+};
+
} // namespace internal
} // namespace ext
} // namespace pp
diff --git a/ppapi/cpp/var_array_buffer.cc b/ppapi/cpp/var_array_buffer.cc
index c05a8eb..0bc8ea5 100644
--- a/ppapi/cpp/var_array_buffer.cc
+++ b/ppapi/cpp/var_array_buffer.cc
@@ -20,6 +20,10 @@ template <> const char* interface_name<PPB_VarArrayBuffer_1_0>() {
} // namespace
+VarArrayBuffer::VarArrayBuffer() {
+ ConstructWithSize(0);
+}
+
VarArrayBuffer::VarArrayBuffer(const Var& var) : Var(var) {
if (!var.is_array_buffer()) {
PP_NOTREACHED();
@@ -28,13 +32,7 @@ VarArrayBuffer::VarArrayBuffer(const Var& var) : Var(var) {
}
VarArrayBuffer::VarArrayBuffer(uint32_t size_in_bytes) {
- if (has_interface<PPB_VarArrayBuffer_1_0>()) {
- var_ = get_interface<PPB_VarArrayBuffer_1_0>()->Create(size_in_bytes);
- } else {
- PP_NOTREACHED();
- var_ = PP_MakeNull();
- }
- is_managed_ = true;
+ ConstructWithSize(size_in_bytes);
}
pp::VarArrayBuffer& VarArrayBuffer::operator=(const VarArrayBuffer& other) {
@@ -74,4 +72,17 @@ void VarArrayBuffer::Unmap() {
PP_NOTREACHED();
}
+
+void VarArrayBuffer::ConstructWithSize(uint32_t size_in_bytes) {
+ PP_DCHECK(is_undefined());
+
+ if (has_interface<PPB_VarArrayBuffer_1_0>()) {
+ var_ = get_interface<PPB_VarArrayBuffer_1_0>()->Create(size_in_bytes);
+ } else {
+ PP_NOTREACHED();
+ var_ = PP_MakeNull();
+ }
+ is_managed_ = true;
+}
+
} // namespace pp
diff --git a/ppapi/cpp/var_array_buffer.h b/ppapi/cpp/var_array_buffer.h
index fd2b05b0..7d1f9ad 100644
--- a/ppapi/cpp/var_array_buffer.h
+++ b/ppapi/cpp/var_array_buffer.h
@@ -19,6 +19,10 @@ namespace pp {
/// <code>HandleMessage</code> functions of <code>Instance</code>.
class VarArrayBuffer : public Var {
public:
+ /// The default constructor constructs a <code>VarArrayBuffer</code> which is
+ /// 0 byte long.
+ VarArrayBuffer();
+
/// Construct a <code>VarArrayBuffer</code> given a var for which
/// is_array_buffer() is true. This will refer to the same
/// <code>ArrayBuffer</code> as var, but allows you to access methods
@@ -27,7 +31,7 @@ class VarArrayBuffer : public Var {
/// @param[in] var An <code>ArrayBuffer</code> var.
explicit VarArrayBuffer(const Var& var);
- /// Construct a new <code>VarArrayBuffer_Dev</code> which is
+ /// Construct a new <code>VarArrayBuffer</code> which is
/// <code>size_in_bytes</code> bytes long and initialized to zero.
///
/// @param[in] size_in_bytes The size of the constructed
@@ -50,7 +54,7 @@ class VarArrayBuffer : public Var {
/// This function assigns one <code>VarArrayBuffer</code> to another
/// <code>VarArrayBuffer</code>. A Var's assignment operator is overloaded
/// here so that we can check for assigning a non-ArrayBuffer var to a
- /// <code>VarArrayBuffer_Dev</code>.
+ /// <code>VarArrayBuffer</code>.
///
/// @param[in] other The <code>VarArrayBuffer</code> to be assigned.
///
@@ -90,6 +94,9 @@ class VarArrayBuffer : public Var {
/// space. Use this if you want to save memory but might want to call Map()
/// to map the buffer again later.
void Unmap();
+
+ private:
+ void ConstructWithSize(uint32_t size_in_bytes);
};
} // namespace pp