diff options
author | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-13 01:33:18 +0000 |
---|---|---|
committer | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-13 01:33:18 +0000 |
commit | 09a1f4ad7e399b443d3c9103fa65116c86b8d9f9 (patch) | |
tree | 240aa4734c658d008790d0ac4dbea393cea20798 /ppapi/cpp | |
parent | f82752876b3e854b2529ff0dfaffe4323bbddf8a (diff) | |
download | chromium_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.cc | 4 | ||||
-rw-r--r-- | ppapi/cpp/extensions/dev/socket_dev.h | 10 | ||||
-rw-r--r-- | ppapi/cpp/extensions/from_var_converter.h | 38 | ||||
-rw-r--r-- | ppapi/cpp/var_array_buffer.cc | 25 | ||||
-rw-r--r-- | ppapi/cpp/var_array_buffer.h | 11 |
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 |