http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/impl/portable/portable_utils.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/impl/portable/portable_utils.h b/modules/platform/src/main/cpp/core/include/ignite/impl/portable/portable_utils.h deleted file mode 100644 index dd16686..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/impl/portable/portable_utils.h +++ /dev/null @@ -1,344 +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_IMPL_PORTABLE_UTILS -#define _IGNITE_IMPL_PORTABLE_UTILS - -#include <stdint.h> - -#include "ignite/guid.h" - -namespace ignite -{ - namespace impl - { - namespace interop - { - class InteropInputStream; - class InteropOutputStream; - } - - namespace portable - { - /** - * Portable uilts. - */ - class IGNITE_IMPORT_EXPORT PortableUtils - { - public: - /** - * Utility method to read signed 8-bit integer from stream. - * - * @param stream Stream. - * @return Value. - */ - static int8_t ReadInt8(interop::InteropInputStream* stream); - - /** - * Utility method to write signed 8-bit integer to stream. - * - * @param stream Stream. - * @param val Value. - */ - static void WriteInt8(interop::InteropOutputStream* stream, int8_t val); - - /** - * Utility method to read signed 8-bit integer array from stream. - * - * @param stream Stream. - * @param res Target array. - * @param len Array length. - */ - static void ReadInt8Array(interop::InteropInputStream* stream, int8_t* res, const int32_t len); - - /** - * Utility method to write signed 8-bit integer array to stream. - * - * @param stream Stream. - * @param val Value. - * @param len Array length. - */ - static void WriteInt8Array(interop::InteropOutputStream* stream, const int8_t* val, const int32_t len); - - /** - * Utility method to read boolean from stream. - * - * @param stream Stream. - * @return Value. - */ - static bool ReadBool(interop::InteropInputStream* stream); - - /** - * Utility method to write bool to stream. - * - * @param stream Stream. - * @param val Value. - */ - static void WriteBool(interop::InteropOutputStream* stream, bool val); - - /** - * Utility method to read bool array from stream. - * - * @param stream Stream. - * @param res Target array. - * @param len Array length. - */ - static void ReadBoolArray(interop::InteropInputStream* stream, bool* res, const int32_t len); - - /** - * Utility method to write bool array to stream. - * - * @param stream Stream. - * @param val Value. - * @param len Array length. - */ - static void WriteBoolArray(interop::InteropOutputStream* stream, const bool* val, const int32_t len); - - /** - * Utility method to read signed 16-bit integer from stream. - * - * @param stream Stream. - * @return Value. - */ - static int16_t ReadInt16(interop::InteropInputStream* stream); - - /** - * Utility method to write signed 16-bit integer to stream. - * - * @param stream Stream. - * @param val Value. - */ - static void WriteInt16(interop::InteropOutputStream* stream, int16_t val); - - /** - * Utility method to read signed 16-bit integer array from stream. - * - * @param stream Stream. - * @param res Target array. - * @param len Array length. - */ - static void ReadInt16Array(interop::InteropInputStream* stream, int16_t* res, const int32_t len); - - /** - * Utility method to write signed 16-bit integer array to stream. - * - * @param stream Stream. - * @param val Value. - * @param len Array length. - */ - static void WriteInt16Array(interop::InteropOutputStream* stream, const int16_t* val, const int32_t len); - - /** - * Utility method to read unsigned 16-bit integer from stream. - * - * @param stream Stream. - * @return Value. - */ - static uint16_t ReadUInt16(interop::InteropInputStream* stream); - - /** - * Utility method to write unsigned 16-bit integer to stream. - * - * @param stream Stream. - * @param val Value. - */ - static void WriteUInt16(interop::InteropOutputStream* stream, uint16_t val); - - /** - * Utility method to read unsigned 16-bit integer array from stream. - * - * @param stream Stream. - * @param res Target array. - * @param len Array length. - */ - static void ReadUInt16Array(interop::InteropInputStream* stream, uint16_t* res, const int32_t len); - - /** - * Utility method to write unsigned 16-bit integer array to stream. - * - * @param stream Stream. - * @param val Value. - * @param len Array length. - */ - static void WriteUInt16Array(interop::InteropOutputStream* stream, const uint16_t* val, const int32_t len); - - /** - * Utility method to read signed 32-bit integer from stream. - * - * @param stream Stream. - * @return Value. - */ - static int32_t ReadInt32(interop::InteropInputStream* stream); - - /** - * Utility method to write signed 32-bit integer to stream. - * - * @param stream Stream. - * @param val Value. - */ - static void WriteInt32(interop::InteropOutputStream* stream, int32_t val); - - /** - * Utility method to read signed 32-bit integer array from stream. - * - * @param stream Stream. - * @param res Target array. - * @param len Array length. - */ - static void ReadInt32Array(interop::InteropInputStream* stream, int32_t* res, const int32_t len); - - /** - * Utility method to write signed 32-bit integer array to stream. - * - * @param stream Stream. - * @param val Value. - * @param len Array length. - */ - static void WriteInt32Array(interop::InteropOutputStream* stream, const int32_t* val, const int32_t len); - - /** - * Utility method to read signed 64-bit integer from stream. - * - * @param stream Stream. - * @return Value. - */ - static int64_t ReadInt64(interop::InteropInputStream* stream); - - /** - * Utility method to write signed 64-bit integer to stream. - * - * @param stream Stream. - * @param val Value. - */ - static void WriteInt64(interop::InteropOutputStream* stream, int64_t val); - - /** - * Utility method to read signed 64-bit integer array from stream. - * - * @param stream Stream. - * @param res Target array. - * @param len Array length. - */ - static void ReadInt64Array(interop::InteropInputStream* stream, int64_t* res, const int32_t len); - - /** - * Utility method to write signed 64-bit integer array to stream. - * - * @param stream Stream. - * @param val Value. - * @param len Array length. - */ - static void WriteInt64Array(interop::InteropOutputStream* stream, const int64_t* val, const int32_t len); - - /** - * Utility method to read float from stream. - * - * @param stream Stream. - * @return Value. - */ - static float ReadFloat(interop::InteropInputStream* stream); - - /** - * Utility method to write float to stream. - * - * @param stream Stream. - * @param val Value. - */ - static void WriteFloat(interop::InteropOutputStream* stream, float val); - - /** - * Utility method to read float array from stream. - * - * @param stream Stream. - * @param res Target array. - * @param len Array length. - */ - static void ReadFloatArray(interop::InteropInputStream* stream, float* res, const int32_t len); - - /** - * Utility method to write float array to stream. - * - * @param stream Stream. - * @param val Value. - * @param len Array length. - */ - static void WriteFloatArray(interop::InteropOutputStream* stream, const float* val, const int32_t len); - - /** - * Utility method to read double from stream. - * - * @param stream Stream. - * @return Value. - */ - static double ReadDouble(interop::InteropInputStream* stream); - - /** - * Utility method to write double to stream. - * - * @param stream Stream. - * @param val Value. - */ - static void WriteDouble(interop::InteropOutputStream* stream, double val); - - /** - * Utility method to read double array from stream. - * - * @param stream Stream. - * @param res Target array. - * @param len Array length. - */ - static void ReadDoubleArray(interop::InteropInputStream* stream, double* res, const int32_t len); - - /** - * Utility method to write double array to stream. - * - * @param stream Stream. - * @param val Value. - * @param len Array length. - */ - static void WriteDoubleArray(interop::InteropOutputStream* stream, const double* val, const int32_t len); - - /** - * Utility method to read Guid from stream. - * - * @param stream Stream. - * @param res Value. - */ - static Guid ReadGuid(interop::InteropInputStream* stream); - - /** - * Utility method to write Guid to stream. - * - * @param stream Stream. - * @param val Value. - */ - static void WriteGuid(interop::InteropOutputStream* stream, const Guid val); - - /** - * Utility method to write string to stream. - * - * @param stream Stream. - * @param val Value. - * @param len Length. - */ - static void WriteString(interop::InteropOutputStream* stream, const char* val, const int32_t len); - }; - } - } -} - -#endif \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/impl/portable/portable_writer_impl.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/impl/portable/portable_writer_impl.h b/modules/platform/src/main/cpp/core/include/ignite/impl/portable/portable_writer_impl.h deleted file mode 100644 index b38dc1f..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/impl/portable/portable_writer_impl.h +++ /dev/null @@ -1,859 +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_IMPL_PORTABLE_WRITER -#define _IGNITE_IMPL_PORTABLE_WRITER - -#include <cstring> -#include <string> -#include <stdint.h> - -#include <ignite/common/common.h> -#include <ignite/common/concurrent.h> - -#include "ignite/impl/interop/interop_output_stream.h" -#include "ignite/impl/portable/portable_common.h" -#include "ignite/impl/portable/portable_id_resolver.h" -#include "ignite/impl/portable/portable_metadata_manager.h" -#include "ignite/impl/portable/portable_utils.h" -#include "ignite/portable/portable_consts.h" -#include "ignite/portable/portable_type.h" -#include "ignite/guid.h" - -namespace ignite -{ - namespace impl - { - namespace portable - { - /** - * Internal implementation of portable reader. - */ - class IGNITE_IMPORT_EXPORT PortableWriterImpl - { - public: - /** - * Constructor. - * - * @param stream Interop stream. - * @param idRslvr Portable ID resolver. - * @param metaMgr Metadata manager. - * @param metaHnd Metadata handler. - */ - PortableWriterImpl(ignite::impl::interop::InteropOutputStream* stream, PortableIdResolver* idRslvr, - PortableMetadataManager* metaMgr, PortableMetadataHandler* metaHnd); - - /** - * Constructor used to construct light-weight writer allowing only raw operations - * and primitive objects. - * - * @param stream Interop stream. - * @param metaMgr Metadata manager. - */ - PortableWriterImpl(ignite::impl::interop::InteropOutputStream* stream, PortableMetadataManager* metaMgr); - - /** - * Write 8-byte signed integer. Maps to "byte" type in Java. - * - * @param val Value. - */ - void WriteInt8(const int8_t val); - - /** - * Write array of 8-byte signed integers. Maps to "byte[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteInt8Array(const int8_t* val, const int32_t len); - - /** - * Write 8-byte signed integer. Maps to "byte" type in Java. - * - * @param fieldName Field name. - * @param val Value. - */ - void WriteInt8(const char* fieldName, const 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, const int32_t len); - - /** - * Write bool. Maps to "short" type in Java. - * - * @param val Value. - */ - void WriteBool(const bool val); - - /** - * Write array of bools. Maps to "bool[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteBoolArray(const bool* val, const int32_t len); - - /** - * Write bool. Maps to "short" type in Java. - * - * @param fieldName Field name. - * @param val Value. - */ - void WriteBool(const char* fieldName, const 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, const int32_t len); - - /** - * Write 16-byte signed integer. Maps to "short" type in Java. - * - * @param val Value. - */ - void WriteInt16(const int16_t val); - - /** - * Write array of 16-byte signed integers. Maps to "short[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteInt16Array(const int16_t* val, const 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, const 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, const int32_t len); - - /** - * Write 16-byte unsigned integer. Maps to "char" type in Java. - * - * @param val Value. - */ - void WriteUInt16(const uint16_t val); - - /** - * Write array of 16-byte unsigned integers. Maps to "char[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteUInt16Array(const uint16_t* val, const 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, const 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, const int32_t len); - - /** - * Write 32-byte signed integer. Maps to "int" type in Java. - * - * @param val Value. - */ - void WriteInt32(const int32_t val); - - /** - * Write array of 32-byte signed integers. Maps to "int[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteInt32Array(const int32_t* val, const 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, const 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, const int32_t len); - - /** - * Write 64-byte signed integer. Maps to "long" type in Java. - * - * @param val Value. - */ - void WriteInt64(const int64_t val); - - /** - * Write array of 64-byte signed integers. Maps to "long[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteInt64Array(const int64_t* val, const 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, const 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, const int32_t len); - - /** - * Write float. Maps to "float" type in Java. - * - * @param val Value. - */ - void WriteFloat(const float val); - - /** - * Write array of floats. Maps to "float[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteFloatArray(const float* val, const int32_t len); - - /** - * Write float. Maps to "float" type in Java. - * - * @param fieldName Field name. - * @param val Value. - */ - void WriteFloat(const char* fieldName, const 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, const int32_t len); - - /** - * Write double. Maps to "double" type in Java. - * - * @param val Value. - */ - void WriteDouble(const double val); - - /** - * Write array of doubles. Maps to "double[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteDoubleArray(const double* val, const int32_t len); - - /** - * Write double. Maps to "double" type in Java. - * - * @param fieldName Field name. - * @param val Value. - */ - void WriteDouble(const char* fieldName, const 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, const int32_t len); - - /** - * Write Guid. Maps to "UUID" type in Java. - * - * @param val Value. - */ - void WriteGuid(const Guid val); - - /** - * Write array of Guids. Maps to "UUID[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteGuidArray(const Guid* val, const 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, const int32_t len); - - /** - * Write string. - * - * @param val String. - * @param len String length (characters). - */ - void WriteString(const char* val, const int32_t len); - - /** - * Write string. - * - * @param fieldName Field name. - * @param val String. - * @param len String length (characters). - */ - void WriteString(const char* fieldName, const char* val, const int32_t len); - - /** - * Start string array write. - * - * @param typ Collection type. - * @return Session ID. - */ - int32_t WriteStringArray(); - - /** - * Start string array write. - * - * @param fieldName Field name. - * @return Session ID. - */ - int32_t WriteStringArray(const char* fieldName); - - /** - * Write string element. - * - * @param id Session ID. - * @param val Value. - * @param len Length. - */ - void WriteStringElement(int32_t id, const char* val, int32_t len); - - /** - * Write NULL value. - */ - void WriteNull(); - - /** - * Write NULL value. - * - * @param fieldName Field name. - */ - void WriteNull(const char* fieldName); - - /** - * Start array write. - * - * @param typ Collection type. - * @return Session ID. - */ - int32_t WriteArray(); - - /** - * Start array write. - * - * @param fieldName Field name. - * @return Session ID. - */ - int32_t WriteArray(const char* fieldName); - - /** - * Start collection write. - * - * @param typ Collection type. - * @return Session ID. - */ - int32_t WriteCollection(ignite::portable::CollectionType typ); - - /** - * Start collection write. - * - * @param fieldName Field name. - * @param typ Collection type. - * @return Session ID. - */ - int32_t WriteCollection(const char* fieldName, ignite::portable::CollectionType typ); - - /** - * Start map write. - * - * @param typ Map type. - * @return Session ID. - */ - int32_t WriteMap(ignite::portable::MapType typ); - - /** - * Start map write. - * - * @param fieldName Field name. - * @param typ Map type. - * @return Session ID. - */ - int32_t WriteMap(const char* fieldName, ignite::portable::MapType typ); - - /** - * Write collection element. - * - * @param id Session ID. - * @param val Value. - */ - template<typename T> - void WriteElement(int32_t id, T val) - { - CheckSession(id); - - WriteTopObject<T>(val); - - elemCnt++; - } - - /** - * Write map element. - * - * @param id Session ID. - * @param key Key. - * @param val Value. - */ - template<typename K, typename V> - void WriteElement(int32_t id, K key, V val) - { - CheckSession(id); - - WriteTopObject<K>(key); - WriteTopObject<V>(val); - - elemCnt++; - } - - /** - * Commit container write session. - * - * @param id Session ID. - */ - void CommitContainer(int32_t id); - - /** - * Write object. - * - * @param val Object. - */ - template<typename T> - void WriteObject(T val) - { - CheckRawMode(true); - - WriteTopObject(val); - } - - /** - * Write object. - * - * @param fieldName Field name. - * @param val Object. - */ - template<typename T> - void WriteObject(const char* fieldName, T val) - { - CheckRawMode(false); - - // 1. Write field ID. - WriteFieldId(fieldName, IGNITE_TYPE_OBJECT); - - // 2. Preserve space for length. - int32_t lenPos = stream->Position(); - stream->Position(lenPos + 4); - - // 3. Actual write. - WriteTopObject(val); - - // 4. Write field length. - int32_t len = stream->Position() - lenPos - 4; - stream->WriteInt32(lenPos, len); - } - - /** - * Set raw mode. - */ - void SetRawMode(); - - /** - * Get raw position. - */ - int32_t GetRawPosition(); - - /** - * Write object. - * - * @param obj Object to write. - */ - template<typename T> - void WriteTopObject(const T& obj) - { - ignite::portable::PortableType<T> type; - - if (type.IsNull(obj)) - stream->WriteInt8(IGNITE_HDR_NULL); - else - { - TemplatedPortableIdResolver<T> idRslvr(type); - ignite::common::concurrent::SharedPointer<PortableMetadataHandler> metaHnd; - - if (metaMgr) - metaHnd = metaMgr->GetHandler(idRslvr.GetTypeId()); - - PortableWriterImpl writerImpl(stream, &idRslvr, metaMgr, metaHnd.Get()); - ignite::portable::PortableWriter writer(&writerImpl); - - int32_t pos = stream->Position(); - - stream->WriteInt8(IGNITE_HDR_FULL); - stream->WriteBool(true); - stream->WriteInt32(idRslvr.GetTypeId()); - stream->WriteInt32(type.GetHashCode(obj)); - - stream->Position(pos + IGNITE_FULL_HDR_LEN); - - type.Write(writer, obj); - - int32_t len = stream->Position() - pos; - - stream->WriteInt32(pos + 10, len); - stream->WriteInt32(pos + 14, writerImpl.GetRawPosition() - pos); - - if (metaMgr) - metaMgr->SubmitHandler(type.GetTypeName(), idRslvr.GetTypeId(), metaHnd.Get()); - } - } - - /** - * Get underlying stream. - * - * @return Stream. - */ - impl::interop::InteropOutputStream* GetStream(); - private: - /** Underlying stream. */ - ignite::impl::interop::InteropOutputStream* stream; - - /** ID resolver. */ - PortableIdResolver* idRslvr; - - /** Metadata manager. */ - PortableMetadataManager* metaMgr; - - /** Metadata handler. */ - PortableMetadataHandler* metaHnd; - - /** Type ID. */ - int32_t typeId; - - /** Elements write session ID generator. */ - int32_t elemIdGen; - - /** Elements write session ID. */ - int32_t elemId; - - /** Elements count. */ - int32_t elemCnt; - - /** Elements start position. */ - int32_t elemPos; - - /** Raw data offset. */ - int32_t rawPos; - - IGNITE_NO_COPY_ASSIGNMENT(PortableWriterImpl) - - /** - * Write a primitive value to stream in raw mode. - * - * @param val Value. - * @param func Stream function. - */ - template<typename T> - void WritePrimitiveRaw( - const T val, - void(*func)(interop::InteropOutputStream*, T) - ) - { - CheckRawMode(true); - CheckSingleMode(true); - - func(stream, val); - } - - /** - * Write a primitive array to stream in raw mode. - * - * @param val Value. - * @param len Array length. - * @param func Stream function. - * @param hdr Header. - */ - template<typename T> - void WritePrimitiveArrayRaw( - const T* val, - const int32_t len, - void(*func)(interop::InteropOutputStream*, const T*, const int32_t), - const int8_t hdr - ) - { - CheckRawMode(true); - CheckSingleMode(true); - - if (val) - { - stream->WriteInt8(hdr); - stream->WriteInt32(len); - func(stream, val, len); - } - else - stream->WriteInt8(IGNITE_HDR_NULL); - } - - /** - * Write a primitive value to stream. - * - * @param fieldName Field name. - * @param val Value. - * @param func Stream function. - * @param typ Field type ID. - * @param len Field length. - */ - template<typename T> - void WritePrimitive( - const char* fieldName, - const T val, - void(*func)(interop::InteropOutputStream*, T), - const int8_t typ, - const int32_t len - ) - { - CheckRawMode(false); - CheckSingleMode(true); - - WriteFieldId(fieldName, typ); - - stream->WriteInt32(1 + len); - stream->WriteInt8(typ); - - func(stream, val); - } - - /** - * Write a primitive array to stream. - * - * @param fieldName Field name. - * @param val Value. - * @param len Array length. - * @param func Stream function. - * @param hdr Header. - * @param lenShift Length shift. - */ - template<typename T> - void WritePrimitiveArray( - const char* fieldName, - const T* val, - const int32_t len, - void(*func)(interop::InteropOutputStream*, const T*, const int32_t), - const int8_t hdr, - const int32_t lenShift - ) - { - CheckRawMode(false); - CheckSingleMode(true); - - WriteFieldId(fieldName, hdr); - - if (val) - { - stream->WriteInt32(5 + (len << lenShift)); - stream->WriteInt8(hdr); - stream->WriteInt32(len); - func(stream, val, len); - } - else - { - stream->WriteInt32(1); - stream->WriteInt8(IGNITE_HDR_NULL); - } - } - - /** - * Check raw mode. - * - * @param expected Expected raw mode of the reader. - */ - void CheckRawMode(bool expected); - - /** - * Check whether writer is currently operating in single mode. - * - * @param expected Expected value. - */ - void CheckSingleMode(bool expected); - - /** - * Start new container writer session. - * - * @param expRawMode Expected raw mode. - */ - void StartContainerSession(bool expRawMode); - - /** - * Check whether session ID matches. - * - * @param ses Expected session ID. - */ - void CheckSession(int32_t expSes); - - /** - * Write field ID. - * - * @param fieldName Field name. - * @param fieldTypeId Field type ID. - */ - void WriteFieldId(const char* fieldName, int32_t fieldTypeId); - - /** - * Write field ID and skip field length. - * - * @param fieldName Field name. - * @param fieldTypeId Field type ID. - */ - void WriteFieldIdSkipLength(const char* fieldName, int32_t fieldTypeId); - - /** - * Write field ID and length. - * - * @param fieldName Field name. - * @param fieldTypeId Field type ID. - * @param len Length. - */ - void WriteFieldIdAndLength(const char* fieldName, int32_t fieldTypeId, int32_t len); - - /** - * Write primitive value. - * - * @param obj Value. - * @param func Stream function. - * @param hdr Header. - */ - template<typename T> - void WriteTopObject0(const T obj, void(*func)(impl::interop::InteropOutputStream*, T), const int8_t hdr) - { - stream->WriteInt8(hdr); - func(stream, obj); - } - }; - - template<> - void IGNITE_IMPORT_EXPORT PortableWriterImpl::WriteTopObject(const int8_t& obj); - - template<> - void IGNITE_IMPORT_EXPORT PortableWriterImpl::WriteTopObject(const bool& obj); - - template<> - void IGNITE_IMPORT_EXPORT PortableWriterImpl::WriteTopObject(const int16_t& obj); - - template<> - void IGNITE_IMPORT_EXPORT PortableWriterImpl::WriteTopObject(const uint16_t& obj); - - template<> - void IGNITE_IMPORT_EXPORT PortableWriterImpl::WriteTopObject(const int32_t& obj); - - template<> - void IGNITE_IMPORT_EXPORT PortableWriterImpl::WriteTopObject(const int64_t& obj); - - template<> - void IGNITE_IMPORT_EXPORT PortableWriterImpl::WriteTopObject(const float& obj); - - template<> - void IGNITE_IMPORT_EXPORT PortableWriterImpl::WriteTopObject(const double& obj); - - template<> - void IGNITE_IMPORT_EXPORT PortableWriterImpl::WriteTopObject(const Guid& obj); - - template<> - inline void IGNITE_IMPORT_EXPORT PortableWriterImpl::WriteTopObject(const std::string& obj) - { - const char* obj0 = obj.c_str(); - - int32_t len = static_cast<int32_t>(strlen(obj0)); - - stream->WriteInt8(IGNITE_TYPE_STRING); - - PortableUtils::WriteString(stream, obj0, len); - } - } - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/portable/portable.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/portable/portable.h b/modules/platform/src/main/cpp/core/include/ignite/portable/portable.h deleted file mode 100644 index 1a7c3dd..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/portable/portable.h +++ /dev/null @@ -1,29 +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 -#define _IGNITE_PORTABLE - -#include "ignite/portable/portable_consts.h" -#include "ignite/portable/portable_containers.h" -#include "ignite/portable/portable_type.h" -#include "ignite/portable/portable_raw_reader.h" -#include "ignite/portable/portable_raw_writer.h" -#include "ignite/portable/portable_reader.h" -#include "ignite/portable/portable_writer.h" - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/portable/portable_consts.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/portable/portable_consts.h b/modules/platform/src/main/cpp/core/include/ignite/portable/portable_consts.h deleted file mode 100644 index ef6db45..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/portable/portable_consts.h +++ /dev/null @@ -1,106 +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_CONSTS -#define _IGNITE_PORTABLE_CONSTS - -#include <ignite/common/common.h> - -namespace ignite -{ - namespace portable - { - /** - * Portable collection types. - */ - enum CollectionType - { - /** - * Undefined. Maps to ArrayList in Java. - */ - IGNITE_COLLECTION_UNDEFINED = 0, - - /** - * Array list. Maps to ArrayList in Java. - */ - IGNITE_COLLECTION_ARRAY_LIST = 1, - - /** - * Linked list. Maps to LinkedList in Java. - */ - IGNITE_COLLECTION_LINKED_LIST = 2, - - /** - * Hash set. Maps to HashSet in Java. - */ - IGNITE_COLLECTION_HASH_SET = 3, - - /** - * Linked hash set. Maps to LinkedHashSet in Java. - */ - IGNITE_COLLECTION_LINKED_HASH_SET = 4, - - /** - * Tree set. Maps to TreeSet in Java. - */ - IGNITE_COLLECTION_TREE_SET = 5, - - /** - * Concurrent skip list set. Maps to ConcurrentSkipListSet in Java. - */ - IGNITE_COLLECTION_CONCURRENT_SKIP_LIST_SET = 6 - }; - - /** - * Portable map types. - */ - enum MapType - { - /** - * Undefined. Maps to HashMap in Java. - */ - IGNITE_MAP_UNDEFINED = 0, - - /** - * Hash map. Maps to HashMap in Java. - */ - IGNITE_MAP_HASH_MAP = 1, - - /** - * Linked hash map. Maps to LinkedHashMap in Java. - */ - IGNITE_MAP_LINKED_HASH_MAP = 2, - - /** - * Tree map. Maps to TreeMap in Java. - */ - IGNITE_MAP_TREE_MAP = 3, - - /** - * Concurrent hash map. Maps to ConcurrentHashMap in Java. - */ - IGNITE_MAP_CONCURRENT_HASH_MAP = 4, - - /** - * Properties map. Maps to Properties in Java. - */ - IGNITE_MAP_PROPERTIES_MAP = 5 - }; - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/portable/portable_containers.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/portable/portable_containers.h b/modules/platform/src/main/cpp/core/include/ignite/portable/portable_containers.h deleted file mode 100644 index f93a11a..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/portable/portable_containers.h +++ /dev/null @@ -1,525 +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_CONTAINERS -#define _IGNITE_PORTABLE_CONTAINERS - -#include <stdint.h> - -#include "ignite/impl/portable/portable_writer_impl.h" -#include "ignite/impl/portable/portable_reader_impl.h" -#include "ignite/impl/utils.h" -#include "ignite/portable/portable_consts.h" - -namespace ignite -{ - namespace portable - { - /** - * Portable string array writer. - */ - class IGNITE_IMPORT_EXPORT PortableStringArrayWriter - { - public: - /** - * Constructor. - * - * @param id Identifier. - * @param impl Writer. - */ - PortableStringArrayWriter(impl::portable::PortableWriterImpl* impl, const int32_t id); - - /** - * Write string. - * - * @param val Null-terminated character sequence. - */ - void Write(const char* val); - - /** - * Write string. - * - * @param val String. - * @param len String length (characters). - */ - void Write(const char* val, const int32_t len); - - /** - * Write string. - * - * @param val String. - */ - void Write(const std::string& val) - { - Write(val.c_str()); - } - - /** - * Close the writer. - */ - void Close(); - private: - /** Implementation delegate. */ - impl::portable::PortableWriterImpl* impl; - - /** Idnetifier. */ - const int32_t id; - }; - - /** - * Portable collection writer. - */ - template<typename T> - class IGNITE_IMPORT_EXPORT PortableArrayWriter - { - public: - /** - * Constructor. - * - * @param impl Writer. - * @param id Identifier. - */ - PortableArrayWriter(impl::portable::PortableWriterImpl* impl, const int32_t id) : impl(impl), id(id) - { - // No-op. - } - - /** - * Write a value. - * - * @param val Value. - */ - void Write(const T& val) - { - impl->WriteElement<T>(id, val); - } - - /** - * Close the writer. - */ - void Close() - { - impl->CommitContainer(id); - } - private: - /** Implementation delegate. */ - impl::portable::PortableWriterImpl* impl; - - /** Idnetifier. */ - const int32_t id; - }; - - /** - * Portable collection writer. - */ - template<typename T> - class IGNITE_IMPORT_EXPORT PortableCollectionWriter - { - public: - /** - * Constructor. - * - * @param impl Writer. - * @param id Identifier. - */ - PortableCollectionWriter(impl::portable::PortableWriterImpl* impl, const int32_t id) : impl(impl), id(id) - { - // No-op. - } - - /** - * Write a value. - * - * @param val Value. - */ - void Write(const T& val) - { - impl->WriteElement<T>(id, val); - } - - /** - * Close the writer. - */ - void Close() - { - impl->CommitContainer(id); - } - private: - /** Implementation delegate. */ - impl::portable::PortableWriterImpl* impl; - - /** Identifier. */ - const int32_t id; - }; - - /** - * Portable map writer. - */ - template<typename K, typename V> - class IGNITE_IMPORT_EXPORT PortableMapWriter - { - public: - /** - * Constructor. - * - * @param impl Writer. - */ - PortableMapWriter(impl::portable::PortableWriterImpl* impl, const int32_t id) : impl(impl), id(id) - { - // No-op. - } - - /** - * Write a value. - * - * @param key Key. - * @param val Value. - */ - void Write(const K& key, const V& val) - { - impl->WriteElement<K, V>(id, key, val); - } - - /** - * Close the writer. - */ - void Close() - { - impl->CommitContainer(id); - } - private: - /** Implementation delegate. */ - impl::portable::PortableWriterImpl* impl; - - /** Identifier. */ - const int32_t id; - }; - - /** - * Portable string array reader. - */ - class IGNITE_IMPORT_EXPORT PortableStringArrayReader - { - public: - /** - * Constructor. - * - * @param impl Reader. - * @param id Identifier. - * @param size Array size. - */ - PortableStringArrayReader(impl::portable::PortableReaderImpl* impl, const int32_t id, const int32_t size); - - /** - * Check whether next element is available for read. - * - * @return True if available. - */ - bool HasNext(); - - /** - * Get next element. - * - * @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 GetNext(char* res, const int32_t len); - - /** - * Get next element. - * - * @return String. - */ - std::string GetNext() - { - int32_t len = GetNext(NULL, 0); - - if (len != -1) - { - impl::utils::SafeArray<char> arr(len + 1); - - GetNext(arr.target, len + 1); - - return std::string(arr.target); - } - else - return std::string(); - } - - /** - * Get array size. - * - * @return Size or -1 if array is NULL. - */ - int32_t GetSize(); - - /** - * Whether array is NULL. - */ - bool IsNull(); - private: - /** Implementation delegate. */ - impl::portable::PortableReaderImpl* impl; - - /** Identifier. */ - const int32_t id; - - /** Size. */ - const int32_t size; - }; - - /** - * Portable array reader. - */ - template<typename T> - class PortableArrayReader - { - public: - /** - * Constructor. - * - * @param impl Reader. - * @param id Identifier. - * @param size Array size. - */ - PortableArrayReader(impl::portable::PortableReaderImpl* impl, const int32_t id, const int32_t size) : - impl(impl), id(id), size(size) - { - // No-op. - } - - /** - * Check whether next element is available for read. - * - * @return True if available. - */ - bool HasNext() - { - return impl->HasNextElement(id); - } - - /** - * Read next element. - * - * @return Next element. - */ - T GetNext() - { - return impl->ReadElement<T>(id); - } - - /** - * Get array size. - * - * @return Size or -1 if array is NULL. - */ - int32_t GetSize() - { - return size; - } - - /** - * Whether array is NULL. - */ - bool IsNull() - { - return size == -1; - } - private: - /** Implementation delegate. */ - impl::portable::PortableReaderImpl* impl; - - /** Identifier. */ - const int32_t id; - - /** Size. */ - const int32_t size; - }; - - /** - * Portable collection reader. - */ - template<typename T> - class PortableCollectionReader - { - public: - /** - * Constructor. - * - * @param impl Reader. - * @param id Identifier. - * @param type Collection type. - * @param size Collection size. - */ - PortableCollectionReader(impl::portable::PortableReaderImpl* impl, const int32_t id, - const CollectionType type, const int32_t size) : impl(impl), id(id), type(type), size(size) - { - // No-op. - } - - /** - * Check whether next element is available for read. - * - * @return True if available. - */ - bool HasNext() - { - return impl->HasNextElement(id); - } - - /** - * Read next element. - * - * @return Next element. - */ - T GetNext() - { - return impl->ReadElement<T>(id); - } - - /** - * Get collection type. - * - * @return Type. - */ - CollectionType GetType() - { - return type; - } - - /** - * Get collection size. - * - * @return Size or -1 if collection is NULL. - */ - int32_t GetSize() - { - return size; - } - - /** - * Whether collection is NULL. - */ - bool IsNull() - { - return size == -1; - } - private: - /** Implementation delegate. */ - impl::portable::PortableReaderImpl* impl; - - /** Identifier. */ - const int32_t id; - - /** Collection type. */ - const CollectionType type; - - /** Size. */ - const int32_t size; - }; - - /** - * Portable map reader. - */ - template<typename K, typename V> - class PortableMapReader - { - public: - /** - * Constructor. - * - * @param impl Reader. - * @param id Identifier. - * @param type Map type. - * @param size Map size. - */ - PortableMapReader(impl::portable::PortableReaderImpl* impl, const int32_t id, const MapType type, - const int32_t size) : impl(impl), id(id), type(type), size(size) - { - // No-op. - } - - /** - * Check whether next element is available for read. - * - * @return True if available. - */ - bool HasNext() - { - return impl->HasNextElement(id); - } - - /** - * Read next element. - * - * @param key Key. - * @param val Value. - */ - void GetNext(K* key, V* val) - { - return impl->ReadElement<K, V>(id, key, val); - } - - /** - * Get map type. - * - * @return Type. - */ - MapType GetType() - { - return type; - } - - /** - * Get map size. - * - * @return Size or -1 if map is NULL. - */ - int32_t GetSize() - { - return size; - } - - /** - * Whether map is NULL. - */ - bool IsNull() - { - return size == -1; - } - private: - /** Implementation delegate. */ - impl::portable::PortableReaderImpl* impl; - - /** Identifier. */ - const int32_t id; - - /** Map type. */ - const MapType type; - - /** Size. */ - const int32_t size; - }; - } -} - -#endif \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/f0bac562/modules/platform/src/main/cpp/core/include/ignite/portable/portable_raw_reader.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/portable/portable_raw_reader.h b/modules/platform/src/main/cpp/core/include/ignite/portable/portable_raw_reader.h deleted file mode 100644 index 9f1d74c..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/portable/portable_raw_reader.h +++ /dev/null @@ -1,324 +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_RAW_READER -#define _IGNITE_PORTABLE_RAW_READER - -#include <stdint.h> -#include <string> - -#include <ignite/common/common.h> - -#include "ignite/impl/portable/portable_reader_impl.h" -#include "ignite/portable/portable_consts.h" -#include "ignite/portable/portable_containers.h" -#include "ignite/guid.h" - -namespace ignite -{ - namespace portable - { - /** - * Portable raw reader. - */ - class IGNITE_IMPORT_EXPORT PortableRawReader - { - public: - /** - * Constructor. - * - * @param impl Implementation. - */ - PortableRawReader(ignite::impl::portable::PortableReaderImpl* impl); - - /** - * Read 8-byte signed integer. Maps to "byte" type in Java. - * - * @return Result. - */ - int8_t ReadInt8(); - - /** - * Read array of 8-byte signed integers. Maps to "byte[]" type in Java. - * - * @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(int8_t* res, const int32_t len); - - /** - * Read bool. Maps to "boolean" type in Java. - * - * @return Result. - */ - bool ReadBool(); - - /** - * Read array of bools. Maps to "boolean[]" type in Java. - * - * @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(bool* res, const int32_t len); - - /** - * Read 16-byte signed integer. Maps to "short" type in Java. - * - * @return Result. - */ - int16_t ReadInt16(); - - /** - * Read array of 16-byte signed integers. Maps to "short[]" type in Java. - * - * @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(int16_t* res, const int32_t len); - - /** - * Read 16-byte unsigned integer. Maps to "char" type in Java. - * - * @return Result. - */ - uint16_t ReadUInt16(); - - /** - * Read array of 16-byte unsigned integers. Maps to "char[]" type in Java. - * - * @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(uint16_t* res, const int32_t len); - - /** - * Read 32-byte signed integer. Maps to "int" type in Java. - * - * @return Result. - */ - int32_t ReadInt32(); - - /** - * Read array of 32-byte signed integers. Maps to "int[]" type in Java. - * - * @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(int32_t* res, const int32_t len); - - /** - * Read 64-byte signed integer. Maps to "long" type in Java. - * - * @return Result. - */ - int64_t ReadInt64(); - - /** - * Read array of 64-byte signed integers. Maps to "long[]" type in Java. - * - * @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(int64_t* res, const int32_t len); - - /** - * Read float. Maps to "float" type in Java. - * - * @return Result. - */ - float ReadFloat(); - - /** - * Read array of floats. Maps to "float[]" type in Java. - * - * @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(float* res, const int32_t len); - - /** - * Read double. Maps to "double" type in Java. - * - * @return Result. - */ - double ReadDouble(); - - /** - * Read array of doubles. Maps to "double[]" type in Java. - * - * @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(double* res, const int32_t len); - - /** - * Read Guid. Maps to "UUID" type in Java. - * - * @return Result. - */ - Guid ReadGuid(); - - /** - * Read array of Guids. Maps to "UUID[]" type in Java. - * - * @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(Guid* res, const int32_t len); - - /** - * Read string. - * - * @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(char* res, const int32_t len); - - /** - * Read string from the stream. - * - * @return String. - */ - std::string ReadString() - { - int32_t len = ReadString(NULL, 0); - - if (len != -1) - { - ignite::impl::utils::SafeArray<char> arr(len + 1); - - ReadString(arr.target, len + 1); - - return std::string(arr.target); - } - else - return std::string(); - } - - /** - * Start string array read. - * - * @return String array reader. - */ - PortableStringArrayReader ReadStringArray(); - - /** - * Start array read. - * - * @return Array reader. - */ - template<typename T> - PortableArrayReader<T> ReadArray() - { - int32_t size; - - int32_t id = impl->ReadArray(&size); - - return PortableArrayReader<T>(impl, id, size); - } - - /** - * Start collection read. - * - * @return Collection reader. - */ - template<typename T> - PortableCollectionReader<T> ReadCollection() - { - CollectionType typ; - int32_t size; - - int32_t id = impl->ReadCollection(&typ, &size); - - return PortableCollectionReader<T>(impl, id, typ, size); - } - - /** - * Start map read. - * - * @return Map reader. - */ - template<typename K, typename V> - PortableMapReader<K, V> ReadMap() - { - MapType typ; - int32_t size; - - int32_t id = impl->ReadMap(&typ, &size); - - return PortableMapReader<K, V>(impl, id, typ, size); - } - - /** - * Read object. - * - * @return Object. - */ - template<typename T> - T ReadObject() - { - return impl->ReadObject<T>(); - } - 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/f0bac562/modules/platform/src/main/cpp/core/include/ignite/portable/portable_raw_writer.h ---------------------------------------------------------------------- diff --git a/modules/platform/src/main/cpp/core/include/ignite/portable/portable_raw_writer.h b/modules/platform/src/main/cpp/core/include/ignite/portable/portable_raw_writer.h deleted file mode 100644 index 47b5880..0000000 --- a/modules/platform/src/main/cpp/core/include/ignite/portable/portable_raw_writer.h +++ /dev/null @@ -1,300 +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_RAW_WRITER -#define _IGNITE_PORTABLE_RAW_WRITER - -#include <stdint.h> - -#include <ignite/common/common.h> - -#include "ignite/impl/portable/portable_writer_impl.h" -#include "ignite/portable/portable_consts.h" -#include "ignite/portable/portable_containers.h" -#include "ignite/guid.h" - -namespace ignite -{ - namespace portable - { - /** - * Portable raw writer. - */ - class IGNITE_IMPORT_EXPORT PortableRawWriter - { - public: - /** - * Constructor. - * - * @param impl Implementation. - */ - PortableRawWriter(ignite::impl::portable::PortableWriterImpl* impl); - - /** - * Write 8-byte signed integer. Maps to "byte" type in Java. - * - * @param val Value. - */ - void WriteInt8(const int8_t val); - - /** - * Write array of 8-byte signed integers. Maps to "byte[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteInt8Array(const int8_t* val, const int32_t len); - - /** - * Write bool. Maps to "short" type in Java. - * - * @param val Value. - */ - void WriteBool(const bool val); - - /** - * Write array of bools. Maps to "bool[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteBoolArray(const bool* val, const int32_t len); - - /** - * Write 16-byte signed integer. Maps to "short" type in Java. - * - * @param val Value. - */ - void WriteInt16(const int16_t val); - - /** - * Write array of 16-byte signed integers. Maps to "short[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteInt16Array(const int16_t* val, const int32_t len); - - /** - * Write 16-byte unsigned integer. Maps to "char" type in Java. - * - * @param val Value. - */ - void WriteUInt16(const uint16_t val); - - /** - * Write array of 16-byte unsigned integers. Maps to "char[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteUInt16Array(const uint16_t* val, const int32_t len); - - /** - * Write 32-byte signed integer. Maps to "int" type in Java. - * - * @param val Value. - */ - void WriteInt32(const int32_t val); - - /** - * Write array of 32-byte signed integers. Maps to "int[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteInt32Array(const int32_t* val, const int32_t len); - - /** - * Write 64-byte signed integer. Maps to "long" type in Java. - * - * @param val Value. - */ - void WriteInt64(const int64_t val); - - /** - * Write array of 64-byte signed integers. Maps to "long[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteInt64Array(const int64_t* val, const int32_t len); - - /** - * Write float. Maps to "float" type in Java. - * - * @param val Value. - */ - void WriteFloat(const float val); - - /** - * Write array of floats. Maps to "float[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteFloatArray(const float* val, const int32_t len); - - /** - * Write double. Maps to "double" type in Java. - * - * @param val Value. - */ - void WriteDouble(const double val); - - /** - * Write array of doubles. Maps to "double[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteDoubleArray(const double* val, const int32_t len); - - /** - * Write Guid. Maps to "UUID" type in Java. - * - * @param val Value. - */ - void WriteGuid(const Guid val); - - /** - * Write array of Guids. Maps to "UUID[]" type in Java. - * - * @param val Array. - * @param len Array length. - */ - void WriteGuidArray(const Guid* val, const int32_t len); - - /** - * Write string. - * - * @param val Null-terminated character array. - */ - void WriteString(const char* val); - - /** - * Write string. - * - * @param val String. - * @param len String length (characters). - */ - void WriteString(const char* val, const int32_t len); - - /** - * Write string. - * - * @param val String. - */ - void WriteString(const std::string& val) - { - WriteString(val.c_str()); - } - - /** - * Start string array write. - * - * @return String array writer. - */ - PortableStringArrayWriter WriteStringArray(); - - /** - * Write NULL value. - */ - void WriteNull(); - - /** - * Start array write. - * - * @return Array writer. - */ - template<typename T> - PortableArrayWriter<T> WriteArray() - { - int32_t id = impl->WriteArray(); - - return PortableArrayWriter<T>(impl, id); - } - - /** - * Start collection write. - * - * @return Collection writer. - */ - template<typename T> - PortableCollectionWriter<T> WriteCollection() - { - return WriteCollection<T>(IGNITE_COLLECTION_UNDEFINED); - } - - /** - * Start collection write. - * - * @param type Collection type. - * @return Collection writer. - */ - template<typename T> - PortableCollectionWriter<T> WriteCollection(ignite::portable::CollectionType typ) - { - int32_t id = impl->WriteCollection(typ); - - return PortableCollectionWriter<T>(impl, id); - } - - /** - * Start map write. - * - * @param typ Map type. - * @return Map writer. - */ - template<typename K, typename V> - PortableMapWriter<K, V> WriteMap() - { - return WriteMap<K, V>(IGNITE_MAP_UNDEFINED); - } - - /** - * Start map write. - * - * @param typ Map type. - * @return Map writer. - */ - template<typename K, typename V> - PortableMapWriter<K, V> WriteMap(ignite::portable::MapType typ) - { - int32_t id = impl->WriteMap(typ); - - return PortableMapWriter<K, V>(impl, id); - } - - /** - * Write object. - * - * @param val Object. - */ - template<typename T> - void WriteObject(T val) - { - impl->WriteObject<T>(val); - } - private: - /** Implementation delegate. */ - ignite::impl::portable::PortableWriterImpl* impl; - }; - } -} - -#endif \ No newline at end of file
