Example #1
0
        public void sendReply(uint command, BinaryArray @out, int returnCode)
        {
            bucket_head2 head = new bucket_head2();

//C++ TO C# CONVERTER TODO TASK: The following line was determined to be a copy assignment (rather than a reference assignment) - this should be verified and a 'CopyFrom' method should be created:
//ORIGINAL LINE: head.m_signature = LEVIN_SIGNATURE;
            head.m_signature.CopyFrom(GlobalMembers.LEVIN_SIGNATURE);
            head.m_cb = @out.size();
            head.m_have_to_return_data = false;
//C++ TO C# CONVERTER TODO TASK: The following line was determined to be a copy assignment (rather than a reference assignment) - this should be verified and a 'CopyFrom' method should be created:
//ORIGINAL LINE: head.m_command = command;
            head.m_command.CopyFrom(command);
//C++ TO C# CONVERTER TODO TASK: The following line was determined to be a copy assignment (rather than a reference assignment) - this should be verified and a 'CopyFrom' method should be created:
//ORIGINAL LINE: head.m_protocol_version = LEVIN_PROTOCOL_VER_1;
            head.m_protocol_version.CopyFrom(GlobalMembers.LEVIN_PROTOCOL_VER_1);
//C++ TO C# CONVERTER TODO TASK: The following line was determined to be a copy assignment (rather than a reference assignment) - this should be verified and a 'CopyFrom' method should be created:
//ORIGINAL LINE: head.m_flags = LEVIN_PACKET_RESPONSE;
            head.m_flags.CopyFrom(GlobalMembers.LEVIN_PACKET_RESPONSE);
//C++ TO C# CONVERTER TODO TASK: The following line was determined to be a copy assignment (rather than a reference assignment) - this should be verified and a 'CopyFrom' method should be created:
//ORIGINAL LINE: head.m_return_code = returnCode;
            head.m_return_code.CopyFrom(returnCode);

            BinaryArray writeBuffer = new BinaryArray();

            writeBuffer.reserve(sizeof(bucket_head2) + @out.size());

            Common.VectorOutputStream stream = new Common.VectorOutputStream(writeBuffer);
            stream.writeSome(head, sizeof(bucket_head2));
            stream.writeSome(@out.data(), @out.size());

            writeStrict(writeBuffer.data(), writeBuffer.size());
        }
Example #2
0
        public bool readCommand(Command cmd)
        {
            bucket_head2 head = new bucket_head2();

//C++ TO C# CONVERTER TODO TASK: There is no equivalent to 'reinterpret_cast' in C#:
            if (!readStrict(reinterpret_cast <ushort>(head), sizeof(bucket_head2)))
            {
                return(false);
            }

            if (head.m_signature != GlobalMembers.LEVIN_SIGNATURE)
            {
                throw new System.Exception("Levin signature mismatch");
            }

            if (head.m_cb > GlobalMembers.LEVIN_DEFAULT_MAX_PACKET_SIZE)
            {
                throw new System.Exception("Levin packet size is too big");
            }

            BinaryArray buf = new BinaryArray();

            if (head.m_cb != 0)
            {
                buf.resize(head.m_cb);
                if (!readStrict(buf[0], new ulong(head.m_cb)))
                {
                    return(false);
                }
            }

//C++ TO C# CONVERTER TODO TASK: The following line was determined to be a copy assignment (rather than a reference assignment) - this should be verified and a 'CopyFrom' method should be created:
//ORIGINAL LINE: cmd.command = head.m_command;
            cmd.command.CopyFrom(head.m_command);
            cmd.buf        = std::move(buf);
            cmd.isNotify   = !head.m_have_to_return_data;
            cmd.isResponse = (head.m_flags & GlobalMembers.LEVIN_PACKET_RESPONSE) == GlobalMembers.LEVIN_PACKET_RESPONSE;

            return(true);
        }