You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/11/10 05:27:31 UTC
[05/21] ignite git commit: IGNITE-1846: CPP: "portable" -> "binary",
"metadata" -> "type".
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/include/ignite/portable/portable_reader.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/portable/portable_reader.h b/modules/platforms/cpp/core/include/ignite/portable/portable_reader.h
deleted file mode 100644
index d0533fd..0000000
--- a/modules/platforms/cpp/core/include/ignite/portable/portable_reader.h
+++ /dev/null
@@ -1,384 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _IGNITE_PORTABLE_READER
-#define _IGNITE_PORTABLE_READER
-
-#include <stdint.h>
-#include <string>
-
-#include <ignite/common/common.h>
-
-#include "ignite/portable/portable_raw_reader.h"
-#include "ignite/guid.h"
-
-namespace ignite
-{
- namespace portable
- {
- /**
- * Portable reader.
- */
- class IGNITE_IMPORT_EXPORT PortableReader
- {
- public:
- /**
- * Constructor.
- *
- * @param impl Implementation.
- */
- PortableReader(ignite::impl::portable::PortableReaderImpl* impl);
-
- /**
- * Read 8-byte signed integer. Maps to "byte" type in Java.
- *
- * @param fieldName Field name.
- * @param fieldName Field name.
- * @return Result.
- */
- int8_t ReadInt8(const char* fieldName);
-
- /**
- * Read array of 8-byte signed integers. Maps to "byte[]" type in Java.
- *
- * @param fieldName Field name.
- * @param res Array to store data to.
- * @param len Expected length of array.
- * @return Actual amount of elements read. If "len" argument is less than actual
- * array size or resulting array is set to null, nothing will be written
- * to resulting array and returned value will contain required array length.
- * -1 will be returned in case array in stream was null.
- */
- int32_t ReadInt8Array(const char* fieldName, int8_t* res, int32_t len);
-
- /**
- * Read bool. Maps to "short" type in Java.
- *
- * @param fieldName Field name.
- * @return Result.
- */
- bool ReadBool(const char* fieldName);
-
- /**
- * Read array of bools. Maps to "bool[]" type in Java.
- *
- * @param fieldName Field name.
- * @param res Array to store data to.
- * @param len Expected length of array.
- * @return Actual amount of elements read. If "len" argument is less than actual
- * array size or resulting array is set to null, nothing will be written
- * to resulting array and returned value will contain required array length.
- * -1 will be returned in case array in stream was null.
- */
- int32_t ReadBoolArray(const char* fieldName, bool* res, int32_t len);
-
- /**
- * Read 16-byte signed integer. Maps to "short" type in Java.
- *
- * @param fieldName Field name.
- * @return Result.
- */
- int16_t ReadInt16(const char* fieldName);
-
- /**
- * Read array of 16-byte signed integers. Maps to "short[]" type in Java.
- *
- * @param fieldName Field name.
- * @param res Array to store data to.
- * @param len Expected length of array.
- * @return Actual amount of elements read. If "len" argument is less than actual
- * array size or resulting array is set to null, nothing will be written
- * to resulting array and returned value will contain required array length.
- * -1 will be returned in case array in stream was null.
- */
- int32_t ReadInt16Array(const char* fieldName, int16_t* res, int32_t len);
-
- /**
- * Read 16-byte unsigned integer. Maps to "char" type in Java.
- *
- * @param fieldName Field name.
- * @return Result.
- */
- uint16_t ReadUInt16(const char* fieldName);
-
- /**
- * Read array of 16-byte unsigned integers. Maps to "char[]" type in Java.
- *
- * @param fieldName Field name.
- * @param res Array to store data to.
- * @param len Expected length of array.
- * @return Actual amount of elements read. If "len" argument is less than actual
- * array size or resulting array is set to null, nothing will be written
- * to resulting array and returned value will contain required array length.
- * -1 will be returned in case array in stream was null.
- */
- int32_t ReadUInt16Array(const char* fieldName, uint16_t* res, int32_t len);
-
- /**
- * Read 32-byte signed integer. Maps to "int" type in Java.
- *
- * @param fieldName Field name.
- * @return Result.
- */
- int32_t ReadInt32(const char* fieldName);
-
- /**
- * Read array of 32-byte signed integers. Maps to "int[]" type in Java.
- *
- * @param fieldName Field name.
- * @param res Array to store data to.
- * @param len Expected length of array.
- * @return Actual amount of elements read. If "len" argument is less than actual
- * array size or resulting array is set to null, nothing will be written
- * to resulting array and returned value will contain required array length.
- * -1 will be returned in case array in stream was null.
- */
- int32_t ReadInt32Array(const char* fieldName, int32_t* res, int32_t len);
-
- /**
- * Read 64-byte signed integer. Maps to "long" type in Java.
- *
- * @param fieldName Field name.
- * @return Result.
- */
- int64_t ReadInt64(const char* fieldName);
-
- /**
- * Read array of 64-byte signed integers. Maps to "long[]" type in Java.
- *
- * @param fieldName Field name.
- * @param res Array to store data to.
- * @param len Expected length of array.
- * @return Actual amount of elements read. If "len" argument is less than actual
- * array size or resulting array is set to null, nothing will be written
- * to resulting array and returned value will contain required array length.
- * -1 will be returned in case array in stream was null.
- */
- int32_t ReadInt64Array(const char* fieldName, int64_t* res, int32_t len);
-
- /**
- * Read float. Maps to "float" type in Java.
- *
- * @param fieldName Field name.
- * @return Result.
- */
- float ReadFloat(const char* fieldName);
-
- /**
- * Read array of floats. Maps to "float[]" type in Java.
- *
- * @param fieldName Field name.
- * @param res Array to store data to.
- * @param len Expected length of array.
- * @return Actual amount of elements read. If "len" argument is less than actual
- * array size or resulting array is set to null, nothing will be written
- * to resulting array and returned value will contain required array length.
- * -1 will be returned in case array in stream was null.
- */
- int32_t ReadFloatArray(const char* fieldName, float* res, int32_t len);
-
- /**
- * Read double. Maps to "double" type in Java.
- *
- * @param fieldName Field name.
- * @return Result.
- */
- double ReadDouble(const char* fieldName);
-
- /**
- * Read array of doubles. Maps to "double[]" type in Java.
- *
- * @param fieldName Field name.
- * @param res Array to store data to.
- * @param len Expected length of array.
- * @return Actual amount of elements read. If "len" argument is less than actual
- * array size or resulting array is set to null, nothing will be written
- * to resulting array and returned value will contain required array length.
- * -1 will be returned in case array in stream was null.
- */
- int32_t ReadDoubleArray(const char* fieldName, double* res, int32_t len);
-
- /**
- * Read Guid. Maps to "UUID" type in Java.
- *
- * @param fieldName Field name.
- * @return Result.
- */
- Guid ReadGuid(const char* fieldName);
-
- /**
- * Read array of Guids. Maps to "UUID[]" type in Java.
- *
- * @param fieldName Field name.
- * @param res Array to store data to.
- * @param len Expected length of array.
- * @return Actual amount of elements read. If "len" argument is less than actual
- * array size or resulting array is set to null, nothing will be written
- * to resulting array and returned value will contain required array length.
- * -1 will be returned in case array in stream was null.
- */
- int32_t ReadGuidArray(const char* fieldName, Guid* res, int32_t len);
-
- /**
- * Read string.
- *
- * @param fieldName Field name.
- * @param res Array to store data to.
- * @param len Expected length of string. NULL terminator will be set in case len is
- * greater than real string length.
- * @return Actual amount of elements read. If "len" argument is less than actual
- * array size or resulting array is set to null, nothing will be written
- * to resulting array and returned value will contain required array length.
- * -1 will be returned in case array in stream was null.
- */
- int32_t ReadString(const char* fieldName, char* res, int32_t len);
-
- /**
- * Read string from the stream.
- *
- * @param fieldName Field name.
- * @return String.
- */
- std::string ReadString(const char* fieldName)
- {
- int32_t len = ReadString(fieldName, NULL, 0);
-
- if (len != -1)
- {
- ignite::impl::utils::SafeArray<char> arr(len + 1);
-
- ReadString(fieldName, arr.target, len + 1);
-
- return std::string(arr.target);
- }
- else
- return std::string();
- }
-
- /**
- * Start string array read.
- *
- * @param fieldName Field name.
- * @return String array reader.
- */
- PortableStringArrayReader ReadStringArray(const char* fieldName);
-
- /**
- * Start array read.
- *
- * @param fieldName Field name.
- * @return Array reader.
- */
- template<typename T>
- PortableArrayReader<T> ReadArray(const char* fieldName)
- {
- int32_t size;
-
- int32_t id = impl->ReadArray(fieldName, &size);
-
- return PortableArrayReader<T>(impl, id, size);
- }
-
- /**
- * Start collection read.
- *
- * @param fieldName Field name.
- * @return Collection reader.
- */
- template<typename T>
- PortableCollectionReader<T> ReadCollection(const char* fieldName)
- {
- CollectionType typ;
- int32_t size;
-
- int32_t id = impl->ReadCollection(fieldName, &typ, &size);
-
- return PortableCollectionReader<T>(impl, id, typ, size);
- }
-
- /**
- * Read values and insert them to specified position.
- *
- * @param fieldName Field name.
- * @param out Output iterator to the initial position in the destination sequence.
- * @return Number of elements that have been read.
- */
- template<typename T, typename OutputIterator>
- int32_t ReadCollection(const char* fieldName, OutputIterator out)
- {
- return impl->ReadCollection<T>(fieldName, out);
- }
-
- /**
- * Start map read.
- *
- * @param fieldName Field name.
- * @return Map reader.
- */
- template<typename K, typename V>
- PortableMapReader<K, V> ReadMap(const char* fieldName)
- {
- MapType typ;
- int32_t size;
-
- int32_t id = impl->ReadMap(fieldName, &typ, &size);
-
- return PortableMapReader<K, V>(impl, id, typ, size);
- }
-
- /**
- * Read type of the collection.
- *
- * @param fieldName Field name.
- * @return Collection type.
- */
- CollectionType ReadCollectionType(const char* fieldName);
-
- /**
- * Read type of the collection.
- *
- * @param fieldName Field name.
- * @return Collection size.
- */
- int32_t ReadCollectionSize(const char* fieldName);
-
- /**
- * Read object.
- *
- * @param fieldName Field name.
- * @return Object.
- */
- template<typename T>
- T ReadObject(const char* fieldName)
- {
- return impl->ReadObject<T>(fieldName);
- }
-
- /**
- * Get raw reader for this reader.
- *
- * @return Raw reader.
- */
- PortableRawReader RawReader();
- private:
- /** Implementation delegate. */
- ignite::impl::portable::PortableReaderImpl* impl;
- };
- }
-}
-
-#endif
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/include/ignite/portable/portable_type.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/portable/portable_type.h b/modules/platforms/cpp/core/include/ignite/portable/portable_type.h
deleted file mode 100644
index fb086ef..0000000
--- a/modules/platforms/cpp/core/include/ignite/portable/portable_type.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _IGNITE_PORTABLE_TYPE
-#define _IGNITE_PORTABLE_TYPE
-
-#include <stdint.h>
-
-#include <ignite/common/common.h>
-
-#include "ignite/ignite_error.h"
-
-/**
- * Start portable type definition.
- */
-#define IGNITE_PORTABLE_TYPE_START(T) \
-template<> \
-struct PortableType<T> \
-{
-
-/**
- * End portable type definition.
- */
-#define IGNITE_PORTABLE_TYPE_END \
-};
-
-/**
- * Implementation of GetTypeId() which returns predefined constant.
- */
-#define IGNITE_PORTABLE_GET_TYPE_ID_AS_CONST(id) \
-int32_t GetTypeId() \
-{ \
- return id; \
-}
-
-/**
- * Implementation of GetTypeId() which returns hash of passed type name.
- */
-#define IGNITE_PORTABLE_GET_TYPE_ID_AS_HASH(typeName) \
-int32_t GetTypeId() \
-{ \
- return GetPortableStringHashCode(#typeName); \
-}
-
-/**
- * Implementation of GetTypeName() which returns type name as is.
- */
-#define IGNITE_PORTABLE_GET_TYPE_NAME_AS_IS(typeName) \
-std::string GetTypeName() \
-{ \
- return #typeName; \
-}
-
-/**
- * Default implementation of GetFieldId() function which returns Java-way hash code of the string.
- */
-#define IGNITE_PORTABLE_GET_FIELD_ID_AS_HASH \
-int32_t GetFieldId(const char* name) \
-{ \
- return GetPortableStringHashCode(name); \
-}
-
-/**
- * Implementation of GetHashCode() function which always returns 0.
- */
-#define IGNITE_PORTABLE_GET_HASH_CODE_ZERO(T) \
-int32_t GetHashCode(const T& obj) \
-{ \
- return 0; \
-}
-
-/**
- * Implementation of IsNull() function which always returns false.
- */
-#define IGNITE_PORTABLE_IS_NULL_FALSE(T) \
-bool IsNull(const T& obj) \
-{ \
- return false; \
-}
-
-/**
- * Implementation of IsNull() function which return true if passed object is null pointer.
- */
-#define IGNITE_PORTABLE_IS_NULL_IF_NULLPTR(T) \
-bool IsNull(const T& obj) \
-{ \
- return obj; \
-}
-
-/**
- * Implementation of GetNull() function which returns an instance created with defult constructor.
- */
-#define IGNITE_PORTABLE_GET_NULL_DEFAULT_CTOR(T) \
-T GetNull() \
-{ \
- return T(); \
-}
-
-/**
- * Implementation of GetNull() function which returns NULL pointer.
- */
-#define IGNITE_PORTABLE_GET_NULL_NULLPTR(T) \
-T GetNull() \
-{ \
- return NULL; \
-}
-
-namespace ignite
-{
- namespace portable
- {
- class PortableWriter;
- class PortableReader;
-
- /**
- * Get portable string hash code.
- *
- * @param val Value.
- * @return Hash code.
- */
- IGNITE_IMPORT_EXPORT int32_t GetPortableStringHashCode(const char* val);
-
- /**
- * Portable type structure. Defines a set of functions required for type to be serialized and deserialized.
- */
- template<typename T>
- struct IGNITE_IMPORT_EXPORT PortableType
- {
- /**
- * Get portable object type ID.
- *
- * @return Type ID.
- */
- int32_t GetTypeId()
- {
- IGNITE_ERROR_1(IgniteError::IGNITE_ERR_PORTABLE, "GetTypeId function is not defined for portable type.");
- }
-
- /**
- * Get portable object type name.
- *
- * @return Type name.
- */
- std::string GetTypeName()
- {
- IGNITE_ERROR_1(IgniteError::IGNITE_ERR_PORTABLE, "GetTypeName function is not defined for portable type.");
- }
-
- /**
- * Get portable object field ID.
- *
- * @param name Field name.
- * @return Field ID.
- */
- int32_t GetFieldId(const char* name)
- {
- return GetPortableStringHashCode(name);
- }
-
- /**
- * Get portable object hash code.
- *
- * @param obj Portable object.
- * @return Hash code.
- */
- int32_t GetHashCode(const T& obj)
- {
- return 0;
- }
-
- /**
- * Write portable object.
- *
- * @param writer Writer.
- * @param obj Object.
- */
- void Write(PortableWriter& writer, const T& obj)
- {
- IGNITE_ERROR_1(IgniteError::IGNITE_ERR_PORTABLE, "Write function is not defined for portable type.");
- }
-
- /**
- * Read portable object.
- *
- * @param reader Reader.
- * @return Object.
- */
- T Read(PortableReader& reader)
- {
- IGNITE_ERROR_1(IgniteError::IGNITE_ERR_PORTABLE, "Read function is not defined for portable type.");
- }
-
- /**
- * Check whether passed portable object should be interpreted as NULL.
- *
- * @param obj Portable object to test.
- * @return True if portable object should be interpreted as NULL.
- */
- bool IsNull(const T& obj)
- {
- return false;
- }
-
- /**
- * Get NULL value for the given portable type.
- *
- * @return NULL value.
- */
- T GetNull()
- {
- IGNITE_ERROR_1(IgniteError::IGNITE_ERR_PORTABLE, "GetNull function is not defined for portable type.");
- }
- };
-
- /*
- * Templated portable type for pointers.
- */
- template <typename T>
- struct IGNITE_IMPORT_EXPORT PortableType<T*>
- {
- /** Actual type. */
- PortableType<T> typ;
-
- /**
- * Constructor.
- */
- PortableType()
- {
- typ = PortableType<T>();
- }
-
- int32_t GetTypeId()
- {
- return typ.GetTypeId();
- }
-
- std::string GetTypeName()
- {
- return typ.GetTypeName();
- }
-
- int32_t GetFieldId(const char* name)
- {
- return typ.GetFieldId(name);
- }
-
- int32_t GetHashCode(T* const& obj)
- {
- return typ.GetHashCode(*obj);
- }
-
- void Write(PortableWriter& writer, T* const& obj)
- {
- typ.Write(writer, *obj);
- }
-
- T* Read(PortableReader& reader)
- {
- T* res = new T();
-
- *res = typ.Read(reader);
-
- return res;
- }
-
- bool IsNull(T* const& obj)
- {
- return !obj || typ.IsNull(*obj);
- }
-
- T* GetNull()
- {
- return NULL;
- }
- };
- }
-}
-
-#endif
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/include/ignite/portable/portable_writer.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/include/ignite/portable/portable_writer.h b/modules/platforms/cpp/core/include/ignite/portable/portable_writer.h
deleted file mode 100644
index c225340..0000000
--- a/modules/platforms/cpp/core/include/ignite/portable/portable_writer.h
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _IGNITE_PORTABLE_WRITER
-#define _IGNITE_PORTABLE_WRITER
-
-#include <string>
-#include <stdint.h>
-
-#include <ignite/common/common.h>
-
-#include "ignite/portable/portable_raw_writer.h"
-
-namespace ignite
-{
- namespace portable
- {
- /**
- * Portable writer.
- */
- class IGNITE_IMPORT_EXPORT PortableWriter
- {
- public:
- /**
- * Constructor.
- *
- * @param impl Implementation.
- */
- PortableWriter(ignite::impl::portable::PortableWriterImpl* impl);
-
- /**
- * Write 8-byte signed integer. Maps to "byte" type in Java.
- *
- * @param fieldName Field name.
- * @param val Value.
- */
- void WriteInt8(const char* fieldName, int8_t val);
-
- /**
- * Write array of 8-byte signed integers. Maps to "byte[]" type in Java.
- *
- * @param fieldName Field name.
- * @param val Array.
- * @param len Array length.
- */
- void WriteInt8Array(const char* fieldName, const int8_t* val, int32_t len);
-
- /**
- * Write bool. Maps to "short" type in Java.
- *
- * @param fieldName Field name.
- * @param val Value.
- */
- void WriteBool(const char* fieldName, bool val);
-
- /**
- * Write array of bools. Maps to "bool[]" type in Java.
- *
- * @param fieldName Field name.
- * @param val Array.
- * @param len Array length.
- */
- void WriteBoolArray(const char* fieldName, const bool* val, int32_t len);
-
- /**
- * Write 16-byte signed integer. Maps to "short" type in Java.
- *
- * @param fieldName Field name.
- * @param val Value.
- */
- void WriteInt16(const char* fieldName, int16_t val);
-
- /**
- * Write array of 16-byte signed integers. Maps to "short[]" type in Java.
- *
- * @param fieldName Field name.
- * @param val Array.
- * @param len Array length.
- */
- void WriteInt16Array(const char* fieldName, const int16_t* val, int32_t len);
-
- /**
- * Write 16-byte unsigned integer. Maps to "char" type in Java.
- *
- * @param fieldName Field name.
- * @param val Value.
- */
- void WriteUInt16(const char* fieldName, uint16_t val);
-
- /**
- * Write array of 16-byte unsigned integers. Maps to "char[]" type in Java.
- *
- * @param fieldName Field name.
- * @param val Array.
- * @param len Array length.
- */
- void WriteUInt16Array(const char* fieldName, const uint16_t* val, int32_t len);
-
- /**
- * Write 32-byte signed integer. Maps to "int" type in Java.
- *
- * @param fieldName Field name.
- * @param val Value.
- */
- void WriteInt32(const char* fieldName, int32_t val);
-
- /**
- * Write array of 32-byte signed integers. Maps to "int[]" type in Java.
- *
- * @param fieldName Field name.
- * @param val Array.
- * @param len Array length.
- */
- void WriteInt32Array(const char* fieldName, const int32_t* val, int32_t len);
-
- /**
- * Write 64-byte signed integer. Maps to "long" type in Java.
- *
- * @param fieldName Field name.
- * @param val Value.
- */
- void WriteInt64(const char* fieldName, int64_t val);
-
- /**
- * Write array of 64-byte signed integers. Maps to "long[]" type in Java.
- *
- * @param fieldName Field name.
- * @param val Array.
- * @param len Array length.
- */
- void WriteInt64Array(const char* fieldName, const int64_t* val, int32_t len);
-
- /**
- * Write float. Maps to "float" type in Java.
- *
- * @param fieldName Field name.
- * @param val Value.
- */
- void WriteFloat(const char* fieldName, float val);
-
- /**
- * Write array of floats. Maps to "float[]" type in Java.
- *
- * @param fieldName Field name.
- * @param val Array.
- * @param len Array length.
- */
- void WriteFloatArray(const char* fieldName, const float* val, int32_t len);
-
- /**
- * Write double. Maps to "double" type in Java.
- *
- * @param fieldName Field name.
- * @param val Value.
- */
- void WriteDouble(const char* fieldName, double val);
-
- /**
- * Write array of doubles. Maps to "double[]" type in Java.
- *
- * @param fieldName Field name.
- * @param val Array.
- * @param len Array length.
- */
- void WriteDoubleArray(const char* fieldName, const double* val, int32_t len);
-
- /**
- * Write Guid. Maps to "UUID" type in Java.
- *
- * @param fieldName Field name.
- * @param val Value.
- */
- void WriteGuid(const char* fieldName, const Guid& val);
-
- /**
- * Write array of Guids. Maps to "UUID[]" type in Java.
- *
- * @param fieldName Field name.
- * @param val Array.
- * @param len Array length.
- */
- void WriteGuidArray(const char* fieldName, const Guid* val, int32_t len);
-
- /**
- * Write string.
- *
- * @param fieldName Field name.
- * @param val Null-terminated character sequence.
- */
- void WriteString(const char* fieldName, const char* val);
-
- /**
- * Write string.
- *
- * @param fieldName Field name.
- * @param val String.
- * @param len String length (characters).
- */
- void WriteString(const char* fieldName, const char* val, int32_t len);
-
- /**
- * Write string.
- *
- * @param fieldName Field name.
- * @param val String.
- */
- void WriteString(const char* fieldName, const std::string& val)
- {
- WriteString(fieldName, val.c_str());
- }
-
- /**
- * Start string array write.
- *
- * @param fieldName Field name.
- * @return String array writer.
- */
- PortableStringArrayWriter WriteStringArray(const char* fieldName);
-
- /**
- * Write NULL value.
- *
- * @param fieldName Field name.
- */
- void WriteNull(const char* fieldName);
-
- /**
- * Start array write.
- *
- * @param fieldName Field name.
- * @return Array writer.
- */
- template<typename T>
- PortableArrayWriter<T> WriteArray(const char* fieldName)
- {
- int32_t id = impl->WriteArray(fieldName);
-
- return PortableArrayWriter<T>(impl, id);
- }
-
- /**
- * Start collection write.
- *
- * @param fieldName Field name.
- * @return Collection writer.
- */
- template<typename T>
- PortableCollectionWriter<T> WriteCollection(const char* fieldName)
- {
- return WriteCollection<T>(fieldName, IGNITE_COLLECTION_UNDEFINED);
- }
-
- /**
- * Start collection write.
- *
- * @param fieldName Field name.
- * @param type Collection type.
- * @return Collection writer.
- */
- template<typename T>
- PortableCollectionWriter<T> WriteCollection(const char* fieldName, ignite::portable::CollectionType typ)
- {
- int32_t id = impl->WriteCollection(fieldName, typ);
-
- return PortableCollectionWriter<T>(impl, id);
- }
-
- /**
- * Write values in interval [first, last).
- *
- * @param fieldName Field name.
- * @param first Iterator pointing to the beginning of the interval.
- * @param last Iterator pointing to the end of the interval.
- */
- template<typename InputIterator>
- void WriteCollection(const char* fieldName, InputIterator first, InputIterator last)
- {
- WriteCollection(fieldName, first, last, IGNITE_COLLECTION_UNDEFINED);
- }
-
- /**
- * Write values in interval [first, last).
- *
- * @param fieldName Field name.
- * @param first Iterator pointing to the beginning of the interval.
- * @param last Iterator pointing to the end of the interval.
- * @param typ Collection type.
- */
- template<typename InputIterator>
- void WriteCollection(const char* fieldName, InputIterator first, InputIterator last, CollectionType typ)
- {
- impl->WriteCollection(fieldName, first, last, typ);
- }
-
- /**
- * Start map write.
- *
- * @param fieldName Field name.
- * @param typ Map type.
- * @return Map writer.
- */
- template<typename K, typename V>
- PortableMapWriter<K, V> WriteMap(const char* fieldName)
- {
- return WriteMap<K, V>(fieldName, IGNITE_MAP_UNDEFINED);
- }
-
- /**
- * Start map write.
- *
- * @param fieldName Field name.
- * @param typ Map type.
- * @return Map writer.
- */
- template<typename K, typename V>
- PortableMapWriter<K, V> WriteMap(const char* fieldName, ignite::portable::MapType typ)
- {
- int32_t id = impl->WriteMap(fieldName, typ);
-
- return PortableMapWriter<K, V>(impl, id);
- }
-
- /**
- * Write object.
- *
- * @param fieldName Field name.
- * @param val Value.
- */
- template<typename T>
- void WriteObject(const char* fieldName, T val)
- {
- impl->WriteObject<T>(fieldName, val);
- }
-
- /**
- * Get raw writer for this reader.
- *
- * @return Raw writer.
- */
- PortableRawWriter RawWriter();
- private:
- /** Implementation delegate. */
- ignite::impl::portable::PortableWriterImpl* impl;
- };
- }
-}
-
-#endif
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/project/vs/core.vcxproj
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/project/vs/core.vcxproj b/modules/platforms/cpp/core/project/vs/core.vcxproj
index 93ac836..cb66d28 100644
--- a/modules/platforms/cpp/core/project/vs/core.vcxproj
+++ b/modules/platforms/cpp/core/project/vs/core.vcxproj
@@ -217,25 +217,25 @@
<ClInclude Include="..\..\include\ignite\impl\interop\interop_output_stream.h" />
<ClInclude Include="..\..\include\ignite\impl\interop\interop_stream_position_guard.h" />
<ClInclude Include="..\..\include\ignite\impl\operations.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_common.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_id_resolver.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_metadata_handler.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_metadata_manager.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_metadata_snapshot.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_metadata_updater.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_metadata_updater_impl.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_reader_impl.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_schema.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_utils.h" />
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_writer_impl.h" />
- <ClInclude Include="..\..\include\ignite\portable\portable.h" />
- <ClInclude Include="..\..\include\ignite\portable\portable_consts.h" />
- <ClInclude Include="..\..\include\ignite\portable\portable_containers.h" />
- <ClInclude Include="..\..\include\ignite\portable\portable_type.h" />
- <ClInclude Include="..\..\include\ignite\portable\portable_raw_reader.h" />
- <ClInclude Include="..\..\include\ignite\portable\portable_raw_writer.h" />
- <ClInclude Include="..\..\include\ignite\portable\portable_reader.h" />
- <ClInclude Include="..\..\include\ignite\portable\portable_writer.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_common.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_id_resolver.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_type_handler.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_type_manager.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_type_snapshot.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_type_updater.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_type_updater_impl.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_reader_impl.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_schema.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_utils.h" />
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_writer_impl.h" />
+ <ClInclude Include="..\..\include\ignite\binary\binary.h" />
+ <ClInclude Include="..\..\include\ignite\binary\binary_consts.h" />
+ <ClInclude Include="..\..\include\ignite\binary\binary_containers.h" />
+ <ClInclude Include="..\..\include\ignite\binary\binary_type.h" />
+ <ClInclude Include="..\..\include\ignite\binary\binary_raw_reader.h" />
+ <ClInclude Include="..\..\include\ignite\binary\binary_raw_writer.h" />
+ <ClInclude Include="..\..\include\ignite\binary\binary_reader.h" />
+ <ClInclude Include="..\..\include\ignite\binary\binary_writer.h" />
<ClInclude Include="..\..\os\win\include\ignite\impl\utils.h" />
</ItemGroup>
<ItemGroup>
@@ -252,21 +252,21 @@
<ClCompile Include="..\..\src\impl\interop\interop_input_stream.cpp" />
<ClCompile Include="..\..\src\impl\interop\interop_memory.cpp" />
<ClCompile Include="..\..\src\impl\interop\interop_output_stream.cpp" />
- <ClCompile Include="..\..\src\impl\portable\portable_metadata_handler.cpp" />
- <ClCompile Include="..\..\src\impl\portable\portable_metadata_manager.cpp" />
- <ClCompile Include="..\..\src\impl\portable\portable_metadata_snapshot.cpp" />
- <ClCompile Include="..\..\src\impl\portable\portable_metadata_updater.cpp" />
- <ClCompile Include="..\..\src\impl\portable\portable_metadata_updater_impl.cpp" />
- <ClCompile Include="..\..\src\impl\portable\portable_reader_impl.cpp" />
- <ClCompile Include="..\..\src\impl\portable\portable_schema.cpp" />
- <ClCompile Include="..\..\src\impl\portable\portable_utils.cpp" />
- <ClCompile Include="..\..\src\impl\portable\portable_writer_impl.cpp" />
- <ClCompile Include="..\..\src\portable\portable_containers.cpp" />
- <ClCompile Include="..\..\src\portable\portable_type.cpp" />
- <ClCompile Include="..\..\src\portable\portable_raw_reader.cpp" />
- <ClCompile Include="..\..\src\portable\portable_raw_writer.cpp" />
- <ClCompile Include="..\..\src\portable\portable_reader.cpp" />
- <ClCompile Include="..\..\src\portable\portable_writer.cpp" />
+ <ClCompile Include="..\..\src\impl\binary\binary_type_handler.cpp" />
+ <ClCompile Include="..\..\src\impl\binary\binary_type_manager.cpp" />
+ <ClCompile Include="..\..\src\impl\binary\binary_type_snapshot.cpp" />
+ <ClCompile Include="..\..\src\impl\binary\binary_type_updater.cpp" />
+ <ClCompile Include="..\..\src\impl\binary\binary_type_updater_impl.cpp" />
+ <ClCompile Include="..\..\src\impl\binary\binary_reader_impl.cpp" />
+ <ClCompile Include="..\..\src\impl\binary\binary_schema.cpp" />
+ <ClCompile Include="..\..\src\impl\binary\binary_utils.cpp" />
+ <ClCompile Include="..\..\src\impl\binary\binary_writer_impl.cpp" />
+ <ClCompile Include="..\..\src\binary\binary_containers.cpp" />
+ <ClCompile Include="..\..\src\binary\binary_type.cpp" />
+ <ClCompile Include="..\..\src\binary\binary_raw_reader.cpp" />
+ <ClCompile Include="..\..\src\binary\binary_raw_writer.cpp" />
+ <ClCompile Include="..\..\src\binary\binary_reader.cpp" />
+ <ClCompile Include="..\..\src\binary\binary_writer.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\common\project\vs\common.vcxproj">
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/project/vs/core.vcxproj.filters
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/project/vs/core.vcxproj.filters b/modules/platforms/cpp/core/project/vs/core.vcxproj.filters
index da00df3..9bdece4 100644
--- a/modules/platforms/cpp/core/project/vs/core.vcxproj.filters
+++ b/modules/platforms/cpp/core/project/vs/core.vcxproj.filters
@@ -19,30 +19,6 @@
<ClCompile Include="..\..\src\impl\ignite_impl.cpp">
<Filter>Code\impl</Filter>
</ClCompile>
- <ClCompile Include="..\..\src\portable\portable_containers.cpp">
- <Filter>Code\portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\portable\portable_raw_reader.cpp">
- <Filter>Code\portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\portable\portable_raw_writer.cpp">
- <Filter>Code\portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\portable\portable_reader.cpp">
- <Filter>Code\portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\portable\portable_writer.cpp">
- <Filter>Code\portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\impl\portable\portable_reader_impl.cpp">
- <Filter>Code\impl\portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\impl\portable\portable_utils.cpp">
- <Filter>Code\impl\portable</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\impl\portable\portable_writer_impl.cpp">
- <Filter>Code\impl\portable</Filter>
- </ClCompile>
<ClCompile Include="..\..\os\win\src\impl\utils.cpp">
<Filter>Code\impl</Filter>
</ClCompile>
@@ -64,26 +40,50 @@
<ClCompile Include="..\..\src\impl\cache\query\query_impl.cpp">
<Filter>Code\impl\cache\query</Filter>
</ClCompile>
- <ClCompile Include="..\..\src\impl\portable\portable_metadata_snapshot.cpp">
- <Filter>Code\impl\portable</Filter>
+ <ClCompile Include="..\..\src\impl\binary\binary_utils.cpp">
+ <Filter>Code\impl\binary</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\src\impl\binary\binary_writer_impl.cpp">
+ <Filter>Code\impl\binary</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\src\impl\binary\binary_schema.cpp">
+ <Filter>Code\impl\binary</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\src\impl\binary\binary_reader_impl.cpp">
+ <Filter>Code\impl\binary</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\src\binary\binary_containers.cpp">
+ <Filter>Code\binary</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\src\binary\binary_raw_reader.cpp">
+ <Filter>Code\binary</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\src\binary\binary_raw_writer.cpp">
+ <Filter>Code\binary</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\src\binary\binary_reader.cpp">
+ <Filter>Code\binary</Filter>
</ClCompile>
- <ClCompile Include="..\..\src\impl\portable\portable_metadata_handler.cpp">
- <Filter>Code\impl\portable</Filter>
+ <ClCompile Include="..\..\src\binary\binary_type.cpp">
+ <Filter>Code\binary</Filter>
</ClCompile>
- <ClCompile Include="..\..\src\portable\portable_type.cpp">
- <Filter>Code\portable</Filter>
+ <ClCompile Include="..\..\src\binary\binary_writer.cpp">
+ <Filter>Code\binary</Filter>
</ClCompile>
- <ClCompile Include="..\..\src\impl\portable\portable_metadata_manager.cpp">
- <Filter>Code\impl\portable</Filter>
+ <ClCompile Include="..\..\src\impl\binary\binary_type_updater_impl.cpp">
+ <Filter>Code\impl\binary</Filter>
</ClCompile>
- <ClCompile Include="..\..\src\impl\portable\portable_metadata_updater.cpp">
- <Filter>Code\impl\portable</Filter>
+ <ClCompile Include="..\..\src\impl\binary\binary_type_updater.cpp">
+ <Filter>Code\impl\binary</Filter>
</ClCompile>
- <ClCompile Include="..\..\src\impl\portable\portable_metadata_updater_impl.cpp">
- <Filter>Code\impl\portable</Filter>
+ <ClCompile Include="..\..\src\impl\binary\binary_type_snapshot.cpp">
+ <Filter>Code\impl\binary</Filter>
</ClCompile>
- <ClCompile Include="..\..\src\impl\portable\portable_schema.cpp">
- <Filter>Code\impl\portable</Filter>
+ <ClCompile Include="..\..\src\impl\binary\binary_type_manager.cpp">
+ <Filter>Code\impl\binary</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\src\impl\binary\binary_type_handler.cpp">
+ <Filter>Code\impl\binary</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
@@ -117,42 +117,6 @@
<ClInclude Include="..\..\include\ignite\impl\operations.h">
<Filter>Code\impl</Filter>
</ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_common.h">
- <Filter>Code\impl\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\portable\portable_consts.h">
- <Filter>Code\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\portable\portable.h">
- <Filter>Code\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\portable\portable_containers.h">
- <Filter>Code\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_id_resolver.h">
- <Filter>Code\impl\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\portable\portable_raw_reader.h">
- <Filter>Code\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\portable\portable_raw_writer.h">
- <Filter>Code\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\portable\portable_reader.h">
- <Filter>Code\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\portable\portable_writer.h">
- <Filter>Code\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_reader_impl.h">
- <Filter>Code\impl\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_utils.h">
- <Filter>Code\impl\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_writer_impl.h">
- <Filter>Code\impl\portable</Filter>
- </ClInclude>
<ClInclude Include="..\..\os\win\include\ignite\impl\utils.h">
<Filter>Code\impl</Filter>
</ClInclude>
@@ -180,24 +144,6 @@
<ClInclude Include="..\..\include\ignite\impl\cache\query\query_impl.h">
<Filter>Code\impl\cache\query</Filter>
</ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_metadata_snapshot.h">
- <Filter>Code\impl\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_metadata_handler.h">
- <Filter>Code\impl\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_metadata_manager.h">
- <Filter>Code\impl\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\portable\portable_type.h">
- <Filter>Code\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_metadata_updater.h">
- <Filter>Code\impl\portable</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_metadata_updater_impl.h">
- <Filter>Code\impl\portable</Filter>
- </ClInclude>
<ClInclude Include="..\..\include\ignite\cache\query\query_argument.h">
<Filter>Code\cache\query</Filter>
</ClInclude>
@@ -231,8 +177,62 @@
<ClInclude Include="..\..\include\ignite\impl\interop\interop_stream_position_guard.h">
<Filter>Code\impl\interop</Filter>
</ClInclude>
- <ClInclude Include="..\..\include\ignite\impl\portable\portable_schema.h">
- <Filter>Code\impl\portable</Filter>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_common.h">
+ <Filter>Code\impl\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_id_resolver.h">
+ <Filter>Code\impl\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_utils.h">
+ <Filter>Code\impl\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_writer_impl.h">
+ <Filter>Code\impl\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_schema.h">
+ <Filter>Code\impl\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_reader_impl.h">
+ <Filter>Code\impl\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\binary\binary.h">
+ <Filter>Code\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\binary\binary_consts.h">
+ <Filter>Code\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\binary\binary_containers.h">
+ <Filter>Code\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\binary\binary_raw_reader.h">
+ <Filter>Code\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\binary\binary_raw_writer.h">
+ <Filter>Code\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\binary\binary_reader.h">
+ <Filter>Code\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\binary\binary_type.h">
+ <Filter>Code\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\binary\binary_writer.h">
+ <Filter>Code\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_type_updater_impl.h">
+ <Filter>Code\impl\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_type_updater.h">
+ <Filter>Code\impl\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_type_snapshot.h">
+ <Filter>Code\impl\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_type_manager.h">
+ <Filter>Code\impl\binary</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ignite\impl\binary\binary_type_handler.h">
+ <Filter>Code\impl\binary</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
@@ -245,23 +245,23 @@
<Filter Include="Code\impl\cache">
<UniqueIdentifier>{b013b0f6-c4b8-4b88-89bc-8b394971788e}</UniqueIdentifier>
</Filter>
- <Filter Include="Code\impl\portable">
- <UniqueIdentifier>{883773bd-085d-4eb5-81ee-f11188134faf}</UniqueIdentifier>
- </Filter>
<Filter Include="Code\impl\interop">
<UniqueIdentifier>{d4cc8aeb-6e7b-47e6-9b83-cba925844d96}</UniqueIdentifier>
</Filter>
<Filter Include="Code\cache">
<UniqueIdentifier>{8b7e32c0-e222-4f3a-af31-19df380c369f}</UniqueIdentifier>
</Filter>
- <Filter Include="Code\portable">
- <UniqueIdentifier>{24b7134c-9335-44e1-9604-4093d0e3bbf5}</UniqueIdentifier>
- </Filter>
<Filter Include="Code\cache\query">
<UniqueIdentifier>{4658a0ff-0d2d-45a6-b8de-93eeec0cc081}</UniqueIdentifier>
</Filter>
<Filter Include="Code\impl\cache\query">
<UniqueIdentifier>{b6e57294-120a-46f2-b0ad-c3595e2cf789}</UniqueIdentifier>
</Filter>
+ <Filter Include="Code\binary">
+ <UniqueIdentifier>{24b7134c-9335-44e1-9604-4093d0e3bbf5}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Code\impl\binary">
+ <UniqueIdentifier>{883773bd-085d-4eb5-81ee-f11188134faf}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
</Project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/src/binary/binary_containers.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/binary/binary_containers.cpp b/modules/platforms/cpp/core/src/binary/binary_containers.cpp
new file mode 100644
index 0000000..91645cc
--- /dev/null
+++ b/modules/platforms/cpp/core/src/binary/binary_containers.cpp
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "ignite/binary/binary_containers.h"
+
+using namespace ignite::impl::binary;
+
+namespace ignite
+{
+ namespace binary
+ {
+ BinaryStringArrayWriter::BinaryStringArrayWriter(BinaryWriterImpl* impl, int32_t id) :
+ impl(impl), id(id)
+ {
+ // No-op.
+ }
+
+ void BinaryStringArrayWriter::Write(const char* val)
+ {
+ if (val)
+ Write(val, static_cast<int32_t>(strlen(val)));
+ else
+ Write(NULL, -1);
+ }
+
+ void BinaryStringArrayWriter::Write(const char* val, int32_t len)
+ {
+ impl->WriteStringElement(id, val, len);
+ }
+
+ void BinaryStringArrayWriter::Close()
+ {
+ impl->CommitContainer(id);
+ }
+
+ BinaryStringArrayReader::BinaryStringArrayReader(impl::binary::BinaryReaderImpl* impl,
+ int32_t id, int32_t size) : impl(impl), id(id), size(size)
+ {
+ // No-op.
+ }
+
+ bool BinaryStringArrayReader::HasNext()
+ {
+ return impl->HasNextElement(id);
+ }
+
+ int32_t BinaryStringArrayReader::GetNext(char* res, int32_t len)
+ {
+ return impl->ReadStringElement(id, res, len);
+ }
+
+ int32_t BinaryStringArrayReader::GetSize() const
+ {
+ return size;
+ }
+
+ bool BinaryStringArrayReader::IsNull() const
+ {
+ return size == -1;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/src/binary/binary_raw_reader.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/binary/binary_raw_reader.cpp b/modules/platforms/cpp/core/src/binary/binary_raw_reader.cpp
new file mode 100644
index 0000000..61105e0
--- /dev/null
+++ b/modules/platforms/cpp/core/src/binary/binary_raw_reader.cpp
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "ignite/impl/binary/binary_reader_impl.h"
+#include "ignite/binary/binary_raw_reader.h"
+
+using namespace ignite::impl::binary;
+
+namespace ignite
+{
+ namespace binary
+ {
+ BinaryRawReader::BinaryRawReader(BinaryReaderImpl* impl) : impl(impl)
+ {
+ // No-op.
+ }
+
+ int8_t BinaryRawReader::ReadInt8()
+ {
+ return impl->ReadInt8();
+ }
+
+ int32_t BinaryRawReader::ReadInt8Array(int8_t* res, const int32_t len)
+ {
+ return impl->ReadInt8Array(res, len);
+ }
+
+ bool BinaryRawReader::ReadBool()
+ {
+ return impl->ReadBool();
+ }
+
+ int32_t BinaryRawReader::ReadBoolArray(bool* res, const int32_t len)
+ {
+ return impl->ReadBoolArray(res, len);
+ }
+
+ int16_t BinaryRawReader::ReadInt16()
+ {
+ return impl->ReadInt16();
+ }
+
+ int32_t BinaryRawReader::ReadInt16Array(int16_t* res, const int32_t len)
+ {
+ return impl->ReadInt16Array(res, len);
+ }
+
+ uint16_t BinaryRawReader::ReadUInt16()
+ {
+ return impl->ReadUInt16();
+ }
+
+ int32_t BinaryRawReader::ReadUInt16Array(uint16_t* res, const int32_t len)
+ {
+ return impl->ReadUInt16Array(res, len);
+ }
+
+ int32_t BinaryRawReader::ReadInt32()
+ {
+ return impl->ReadInt32();
+ }
+
+ int32_t BinaryRawReader::ReadInt32Array(int32_t* res, const int32_t len)
+ {
+ return impl->ReadInt32Array(res, len);
+ }
+
+ int64_t BinaryRawReader::ReadInt64()
+ {
+ return impl->ReadInt64();
+ }
+
+ int32_t BinaryRawReader::ReadInt64Array(int64_t* res, const int32_t len)
+ {
+ return impl->ReadInt64Array(res, len);
+ }
+
+ float BinaryRawReader::ReadFloat()
+ {
+ return impl->ReadFloat();
+ }
+
+ int32_t BinaryRawReader::ReadFloatArray(float* res, const int32_t len)
+ {
+ return impl->ReadFloatArray(res, len);
+ }
+
+ double BinaryRawReader::ReadDouble()
+ {
+ return impl->ReadDouble();
+ }
+
+ int32_t BinaryRawReader::ReadDoubleArray(double* res, const int32_t len)
+ {
+ return impl->ReadDoubleArray(res, len);
+ }
+
+ Guid BinaryRawReader::ReadGuid()
+ {
+ return impl->ReadGuid();
+ }
+
+ int32_t BinaryRawReader::ReadGuidArray(Guid* res, const int32_t len)
+ {
+ return impl->ReadGuidArray(res, len);
+ }
+
+ int32_t BinaryRawReader::ReadString(char* res, const int32_t len)
+ {
+ return impl->ReadString(res, len);
+ }
+
+ BinaryStringArrayReader BinaryRawReader::ReadStringArray()
+ {
+ int32_t size;
+
+ int32_t id = impl->ReadStringArray(&size);
+
+ return BinaryStringArrayReader(impl, id, size);
+ }
+
+ CollectionType BinaryRawReader::ReadCollectionType()
+ {
+ return impl->ReadCollectionType();
+ }
+
+ int32_t BinaryRawReader::ReadCollectionSize()
+ {
+ return impl->ReadCollectionSize();
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/src/binary/binary_raw_writer.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/binary/binary_raw_writer.cpp b/modules/platforms/cpp/core/src/binary/binary_raw_writer.cpp
new file mode 100644
index 0000000..31f29a9
--- /dev/null
+++ b/modules/platforms/cpp/core/src/binary/binary_raw_writer.cpp
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "ignite/impl/binary/binary_writer_impl.h"
+#include "ignite/binary/binary_raw_writer.h"
+
+using namespace ignite::impl::binary;
+
+namespace ignite
+{
+ namespace binary
+ {
+ BinaryRawWriter::BinaryRawWriter(BinaryWriterImpl* impl) : impl(impl)
+ {
+ // No-op.
+ }
+
+ void BinaryRawWriter::WriteInt8(int8_t val)
+ {
+ impl->WriteInt8(val);
+ }
+
+ void BinaryRawWriter::WriteInt8Array(const int8_t* val, int32_t len)
+ {
+ impl->WriteInt8Array(val, len);
+ }
+
+ void BinaryRawWriter::WriteBool(bool val)
+ {
+ impl->WriteBool(val);
+ }
+
+ void BinaryRawWriter::WriteBoolArray(const bool* val, int32_t len)
+ {
+ impl->WriteBoolArray(val, len);
+ }
+
+ void BinaryRawWriter::WriteInt16(int16_t val)
+ {
+ impl->WriteInt16(val);
+ }
+
+ void BinaryRawWriter::WriteInt16Array(const int16_t* val, int32_t len)
+ {
+ impl->WriteInt16Array(val, len);
+ }
+
+ void BinaryRawWriter::WriteUInt16(uint16_t val)
+ {
+ impl->WriteUInt16(val);
+ }
+
+ void BinaryRawWriter::WriteUInt16Array(const uint16_t* val, int32_t len)
+ {
+ impl->WriteUInt16Array(val, len);
+ }
+
+ void BinaryRawWriter::WriteInt32(int32_t val)
+ {
+ impl->WriteInt32(val);
+ }
+
+ void BinaryRawWriter::WriteInt32Array(const int32_t* val, int32_t len)
+ {
+ impl->WriteInt32Array(val, len);
+ }
+
+ void BinaryRawWriter::WriteInt64(int64_t val)
+ {
+ impl->WriteInt64(val);
+ }
+
+ void BinaryRawWriter::WriteInt64Array(const int64_t* val, int32_t len)
+ {
+ impl->WriteInt64Array(val, len);
+ }
+
+ void BinaryRawWriter::WriteFloat(float val)
+ {
+ impl->WriteFloat(val);
+ }
+
+ void BinaryRawWriter::WriteFloatArray(const float* val, int32_t len)
+ {
+ impl->WriteFloatArray(val, len);
+ }
+
+ void BinaryRawWriter::WriteDouble(double val)
+ {
+ impl->WriteDouble(val);
+ }
+
+ void BinaryRawWriter::WriteDoubleArray(const double* val, int32_t len)
+ {
+ impl->WriteDoubleArray(val, len);
+ }
+
+ void BinaryRawWriter::WriteGuid(const Guid& val)
+ {
+ impl->WriteGuid(val);
+ }
+
+ void BinaryRawWriter::WriteGuidArray(const Guid* val, int32_t len)
+ {
+ impl->WriteGuidArray(val, len);
+ }
+
+ void BinaryRawWriter::WriteString(const char* val)
+ {
+ if (val)
+ WriteString(val, static_cast<int32_t>(strlen(val)));
+ else
+ WriteNull();
+ }
+
+ void BinaryRawWriter::WriteString(const char* val, int32_t len)
+ {
+ impl->WriteString(val, len);
+ }
+
+ BinaryStringArrayWriter BinaryRawWriter::WriteStringArray()
+ {
+ int32_t id = impl->WriteStringArray();
+
+ return BinaryStringArrayWriter(impl, id);
+ }
+
+ void BinaryRawWriter::WriteNull()
+ {
+ impl->WriteNull();
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/src/binary/binary_reader.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/binary/binary_reader.cpp b/modules/platforms/cpp/core/src/binary/binary_reader.cpp
new file mode 100644
index 0000000..b3fe4ee
--- /dev/null
+++ b/modules/platforms/cpp/core/src/binary/binary_reader.cpp
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "ignite/impl/binary/binary_reader_impl.h"
+#include "ignite/binary/binary_reader.h"
+
+using namespace ignite::impl::binary;
+
+namespace ignite
+{
+ namespace binary
+ {
+ BinaryReader::BinaryReader(BinaryReaderImpl* impl) : impl(impl)
+ {
+ // No-op.
+ }
+
+ int8_t BinaryReader::ReadInt8(const char* fieldName)
+ {
+ return impl->ReadInt8(fieldName);
+ }
+
+ int32_t BinaryReader::ReadInt8Array(const char* fieldName, int8_t* res, int32_t len)
+ {
+ return impl->ReadInt8Array(fieldName, res, len);
+ }
+
+ bool BinaryReader::ReadBool(const char* fieldName)
+ {
+ return impl->ReadBool(fieldName);
+ }
+
+ int32_t BinaryReader::ReadBoolArray(const char* fieldName, bool* res, int32_t len)
+ {
+ return impl->ReadBoolArray(fieldName, res, len);
+ }
+
+ int16_t BinaryReader::ReadInt16(const char* fieldName)
+ {
+ return impl->ReadInt16(fieldName);
+ }
+
+ int32_t BinaryReader::ReadInt16Array(const char* fieldName, int16_t* res, int32_t len)
+ {
+ return impl->ReadInt16Array(fieldName, res, len);
+ }
+
+ uint16_t BinaryReader::ReadUInt16(const char* fieldName)
+ {
+ return impl->ReadUInt16(fieldName);
+ }
+
+ int32_t BinaryReader::ReadUInt16Array(const char* fieldName, uint16_t* res, int32_t len)
+ {
+ return impl->ReadUInt16Array(fieldName, res, len);
+ }
+
+ int32_t BinaryReader::ReadInt32(const char* fieldName)
+ {
+ return impl->ReadInt32(fieldName);
+ }
+
+ int32_t BinaryReader::ReadInt32Array(const char* fieldName, int32_t* res, int32_t len)
+ {
+ return impl->ReadInt32Array(fieldName, res, len);
+ }
+
+ int64_t BinaryReader::ReadInt64(const char* fieldName)
+ {
+ return impl->ReadInt64(fieldName);
+ }
+
+ int32_t BinaryReader::ReadInt64Array(const char* fieldName, int64_t* res, int32_t len)
+ {
+ return impl->ReadInt64Array(fieldName, res, len);
+ }
+
+ float BinaryReader::ReadFloat(const char* fieldName)
+ {
+ return impl->ReadFloat(fieldName);
+ }
+
+ int32_t BinaryReader::ReadFloatArray(const char* fieldName, float* res, int32_t len)
+ {
+ return impl->ReadFloatArray(fieldName, res, len);
+ }
+
+ double BinaryReader::ReadDouble(const char* fieldName)
+ {
+ return impl->ReadDouble(fieldName);
+ }
+
+ int32_t BinaryReader::ReadDoubleArray(const char* fieldName, double* res, int32_t len)
+ {
+ return impl->ReadDoubleArray(fieldName, res, len);
+ }
+
+ Guid BinaryReader::ReadGuid(const char* fieldName)
+ {
+ return impl->ReadGuid(fieldName);
+ }
+
+ int32_t BinaryReader::ReadGuidArray(const char* fieldName, Guid* res, int32_t len)
+ {
+ return impl->ReadGuidArray(fieldName, res, len);
+ }
+
+ int32_t BinaryReader::ReadString(const char* fieldName, char* res, int32_t len)
+ {
+ return impl->ReadString(fieldName, res, len);
+ }
+
+ BinaryStringArrayReader BinaryReader::ReadStringArray(const char* fieldName)
+ {
+ int32_t size;
+
+ int32_t id = impl->ReadStringArray(fieldName, &size);
+
+ return BinaryStringArrayReader(impl, id, size);
+ }
+
+ CollectionType BinaryReader::ReadCollectionType(const char* fieldName)
+ {
+ return impl->ReadCollectionType(fieldName);
+ }
+
+ int32_t BinaryReader::ReadCollectionSize(const char* fieldName)
+ {
+ return impl->ReadCollectionSize(fieldName);
+ }
+
+ BinaryRawReader BinaryReader::RawReader()
+ {
+ impl->SetRawMode();
+
+ return BinaryRawReader(impl);
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/src/binary/binary_type.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/binary/binary_type.cpp b/modules/platforms/cpp/core/src/binary/binary_type.cpp
new file mode 100644
index 0000000..19d906d
--- /dev/null
+++ b/modules/platforms/cpp/core/src/binary/binary_type.cpp
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "ignite/binary/binary_type.h"
+
+namespace ignite
+{
+ namespace binary
+ {
+ int32_t GetBinaryStringHashCode(const char* val)
+ {
+ if (val)
+ {
+ int32_t hash = 0;
+
+ int i = 0;
+
+ while (true)
+ {
+ char c = *(val + i++);
+
+ if (c == '\0')
+ break;
+
+ if ('A' <= c && c <= 'Z')
+ c = c | 0x20;
+
+ hash = 31 * hash + c;
+ }
+
+ return hash;
+ }
+ else
+ return 0;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/303d79eb/modules/platforms/cpp/core/src/binary/binary_writer.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/core/src/binary/binary_writer.cpp b/modules/platforms/cpp/core/src/binary/binary_writer.cpp
new file mode 100644
index 0000000..3247e66
--- /dev/null
+++ b/modules/platforms/cpp/core/src/binary/binary_writer.cpp
@@ -0,0 +1,154 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "ignite/impl/binary/binary_writer_impl.h"
+#include "ignite/binary/binary_writer.h"
+
+using namespace ignite::impl::binary;
+
+namespace ignite
+{
+ namespace binary
+ {
+ BinaryWriter::BinaryWriter(BinaryWriterImpl* impl) : impl(impl)
+ {
+ // No-op.
+ }
+
+ void BinaryWriter::WriteInt8(const char* fieldName, int8_t val)
+ {
+ impl->WriteInt8(fieldName, val);
+ }
+
+ void BinaryWriter::WriteInt8Array(const char* fieldName, const int8_t* val, int32_t len)
+ {
+ impl->WriteInt8Array(fieldName, val, len);
+ }
+
+ void BinaryWriter::WriteBool(const char* fieldName, bool val)
+ {
+ impl->WriteBool(fieldName, val);
+ }
+
+ void BinaryWriter::WriteBoolArray(const char* fieldName, const bool* val, int32_t len)
+ {
+ impl->WriteBoolArray(fieldName, val, len);
+ }
+
+ void BinaryWriter::WriteInt16(const char* fieldName, int16_t val)
+ {
+ impl->WriteInt16(fieldName, val);
+ }
+
+ void BinaryWriter::WriteInt16Array(const char* fieldName, const int16_t* val, int32_t len)
+ {
+ impl->WriteInt16Array(fieldName, val, len);
+ }
+
+ void BinaryWriter::WriteUInt16(const char* fieldName, uint16_t val)
+ {
+ impl->WriteUInt16(fieldName, val);
+ }
+
+ void BinaryWriter::WriteUInt16Array(const char* fieldName, const uint16_t* val, int32_t len)
+ {
+ impl->WriteUInt16Array(fieldName, val, len);
+ }
+
+ void BinaryWriter::WriteInt32(const char* fieldName, int32_t val)
+ {
+ impl->WriteInt32(fieldName, val);
+ }
+
+ void BinaryWriter::WriteInt32Array(const char* fieldName, const int32_t* val, int32_t len)
+ {
+ impl->WriteInt32Array(fieldName, val, len);
+ }
+
+ void BinaryWriter::WriteInt64(const char* fieldName, const int64_t val)
+ {
+ impl->WriteInt64(fieldName, val);
+ }
+
+ void BinaryWriter::WriteInt64Array(const char* fieldName, const int64_t* val, int32_t len)
+ {
+ impl->WriteInt64Array(fieldName, val, len);
+ }
+
+ void BinaryWriter::WriteFloat(const char* fieldName, float val)
+ {
+ impl->WriteFloat(fieldName, val);
+ }
+
+ void BinaryWriter::WriteFloatArray(const char* fieldName, const float* val, int32_t len)
+ {
+ impl->WriteFloatArray(fieldName, val, len);
+ }
+
+ void BinaryWriter::WriteDouble(const char* fieldName, double val)
+ {
+ impl->WriteDouble(fieldName, val);
+ }
+
+ void BinaryWriter::WriteDoubleArray(const char* fieldName, const double* val, int32_t len)
+ {
+ impl->WriteDoubleArray(fieldName, val, len);
+ }
+
+ void BinaryWriter::WriteGuid(const char* fieldName, const Guid& val)
+ {
+ impl->WriteGuid(fieldName, val);
+ }
+
+ void BinaryWriter::WriteGuidArray(const char* fieldName, const Guid* val, const int32_t len)
+ {
+ impl->WriteGuidArray(fieldName, val, len);
+ }
+
+ void BinaryWriter::WriteString(const char* fieldName, const char* val)
+ {
+ if (val)
+ WriteString(fieldName, val, static_cast<int32_t>(strlen(val)));
+ else
+ WriteNull(fieldName);
+ }
+
+ void BinaryWriter::WriteString(const char* fieldName, const char* val, int32_t len)
+ {
+ impl->WriteString(fieldName, val, len);
+ }
+
+ BinaryStringArrayWriter BinaryWriter::WriteStringArray(const char* fieldName)
+ {
+ int32_t id = impl->WriteStringArray(fieldName);
+
+ return BinaryStringArrayWriter(impl, id);
+ }
+
+ void BinaryWriter::WriteNull(const char* fieldName)
+ {
+ impl->WriteNull(fieldName);
+ }
+
+ BinaryRawWriter BinaryWriter::RawWriter()
+ {
+ impl->SetRawMode();
+
+ return BinaryRawWriter(impl);
+ }
+ }
+}
\ No newline at end of file