public static ResponseParameters DecodeResponse(ClientMessage clientMessage)
        {
            var iterator = clientMessage.GetIterator();
            var response = new ResponseParameters();

            //empty initial frame
            iterator.Next();
            response.Response       = ListMultiFrameCodec.Decode(iterator, DataCodec.Decode);
            response.AnchorDataList = AnchorDataListHolderCodec.Decode(iterator);
            return(response);
        }
Пример #2
0
        public static RequestParameters DecodeRequest(ClientMessage clientMessage)
        {
            using var iterator = clientMessage.GetEnumerator();
            var request      = new RequestParameters();
            var initialFrame = iterator.Take();

            request.ReplaceExistingValues = initialFrame.Bytes.ReadBoolL(RequestReplaceExistingValuesFieldOffset);
            request.Name = StringCodec.Decode(iterator);
            request.Keys = ListMultiFrameCodec.Decode(iterator, DataCodec.Decode);
            return(request);
        }
        public static RequestParameters DecodeRequest(ClientMessage clientMessage)
        {
            using var iterator = clientMessage.GetEnumerator();
            var request      = new RequestParameters();
            var initialFrame = iterator.Take();

            request.Index     = initialFrame.Bytes.ReadIntL(RequestIndexFieldOffset);
            request.Name      = StringCodec.Decode(iterator);
            request.ValueList = ListMultiFrameCodec.Decode(iterator, DataCodec.Decode);
            return(request);
        }
Пример #4
0
        public static RequestParameters DecodeRequest(ClientMessage clientMessage)
        {
            using var iterator = clientMessage.GetEnumerator();
            var request = new RequestParameters();

            iterator.Take(); // empty initial frame
            request.Name           = StringCodec.Decode(iterator);
            request.EntryProcessor = DataCodec.Decode(iterator);
            request.Keys           = ListMultiFrameCodec.Decode(iterator, DataCodec.Decode);
            return(request);
        }
        public static ResponseParameters DecodeResponse(ClientMessage clientMessage)
        {
            using var iterator = clientMessage.GetEnumerator();
            var response     = new ResponseParameters();
            var initialFrame = iterator.Take();

            response.ReadCount = initialFrame.Bytes.ReadIntL(ResponseReadCountFieldOffset);
            response.NextSeq   = initialFrame.Bytes.ReadLongL(ResponseNextSeqFieldOffset);
            response.Items     = ListMultiFrameCodec.Decode(iterator, DataCodec.Decode);
            response.ItemSeqs  = CodecUtil.DecodeNullable(iterator, LongArrayCodec.Decode);
            return(response);
        }
Пример #6
0
        public static ResponseParameters DecodeResponse(ClientMessage clientMessage)
        {
            var iterator     = clientMessage.GetIterator();
            var response     = new ResponseParameters();
            var initialFrame = iterator.Next();

            response.ReadCount = DecodeInt(initialFrame.Content, ResponseReadCountFieldOffset);
            response.NextSeq   = DecodeLong(initialFrame.Content, ResponseNextSeqFieldOffset);
            response.Items     = ListMultiFrameCodec.Decode(iterator, DataCodec.Decode);
            response.ItemSeqs  = CodecUtil.DecodeNullable(iterator, LongArrayCodec.Decode);
            return(response);
        }
Пример #7
0
        public static Hazelcast.Protocol.Models.ErrorHolder Decode(IEnumerator <Frame> iterator)
        {
            // begin frame
            iterator.Take();

            var initialFrame = iterator.Take();
            var errorCode    = initialFrame.Bytes.ReadIntL(ErrorCodeFieldOffset);

            var className          = StringCodec.Decode(iterator);
            var message            = CodecUtil.DecodeNullable(iterator, StringCodec.Decode);
            var stackTraceElements = ListMultiFrameCodec.Decode(iterator, StackTraceElementCodec.Decode);

            iterator.SkipToStructEnd();
            return(new Hazelcast.Protocol.Models.ErrorHolder(errorCode, className, message, stackTraceElements));
        }
Пример #8
0
        public static Hazelcast.Models.IndexOptions Decode(IEnumerator <Frame> iterator)
        {
            // begin frame
            iterator.Take();

            var initialFrame = iterator.Take();
            var type         = initialFrame.Bytes.ReadIntL(TypeFieldOffset);

            var name               = CodecUtil.DecodeNullable(iterator, StringCodec.Decode);
            var attributes         = ListMultiFrameCodec.Decode(iterator, StringCodec.Decode);
            var bitmapIndexOptions = CodecUtil.DecodeNullable(iterator, BitmapIndexOptionsCodec.Decode);

            iterator.SkipToStructEnd();
            return(CustomTypeFactory.CreateIndexConfig(name, type, attributes, bitmapIndexOptions));
        }
        public static RequestParameters DecodeRequest(ClientMessage clientMessage)
        {
            using var iterator = clientMessage.GetEnumerator();
            var request      = new RequestParameters();
            var initialFrame = iterator.Take();

            request.Uuid = initialFrame.Bytes.ReadGuidL(RequestUuidFieldOffset);
            request.SerializationVersion   = initialFrame.Bytes.ReadByteL(RequestSerializationVersionFieldOffset);
            request.ClusterName            = StringCodec.Decode(iterator);
            request.Credentials            = ByteArrayCodec.Decode(iterator);
            request.ClientType             = StringCodec.Decode(iterator);
            request.ClientHazelcastVersion = StringCodec.Decode(iterator);
            request.ClientName             = StringCodec.Decode(iterator);
            request.Labels = ListMultiFrameCodec.Decode(iterator, StringCodec.Decode);
            return(request);
        }
Пример #10
0
        public static Hazelcast.Client.Protocol.ErrorHolder Decode(FrameIterator iterator)
        {
            // begin frame
            iterator.Next();

            var initialFrame = iterator.Next();
            var errorCode    = DecodeInt(initialFrame.Content, ErrorCodeFieldOffset);

            var className          = StringCodec.Decode(iterator);
            var message            = CodecUtil.DecodeNullable(iterator, StringCodec.Decode);
            var stackTraceElements = ListMultiFrameCodec.Decode(iterator, StackTraceElementCodec.Decode);

            CodecUtil.FastForwardToEndFrame(iterator);

            return(new Hazelcast.Client.Protocol.ErrorHolder(errorCode, className, message, stackTraceElements));
        }
        public static Hazelcast.Config.IndexConfig Decode(FrameIterator iterator)
        {
            // begin frame
            iterator.Next();

            var initialFrame = iterator.Next();
            var type         = DecodeInt(initialFrame.Content, TypeFieldOffset);

            var name               = CodecUtil.DecodeNullable(iterator, StringCodec.Decode);
            var attributes         = ListMultiFrameCodec.Decode(iterator, StringCodec.Decode);
            var bitmapIndexOptions = CodecUtil.DecodeNullable(iterator, BitmapIndexOptionsCodec.Decode);

            CodecUtil.FastForwardToEndFrame(iterator);

            return(CustomTypeFactory.CreateIndexConfig(name, type, attributes, bitmapIndexOptions));
        }
Пример #12
0
        public static ValueTask HandleEventAsync(ClientMessage clientMessage, Func <int, IList <Hazelcast.Models.MemberInfo>, object, ValueTask> handleMembersViewEventAsync, Func <int, IList <KeyValuePair <Guid, IList <int> > >, object, ValueTask> handlePartitionsViewEventAsync, object state, ILoggerFactory loggerFactory)
        {
            using var iterator = clientMessage.GetEnumerator();
            var messageType = clientMessage.MessageType;

            if (messageType == EventMembersViewMessageType)
            {
                var initialFrame = iterator.Take();
                var version      = initialFrame.Bytes.ReadIntL(EventMembersViewVersionFieldOffset);
                var memberInfos  = ListMultiFrameCodec.Decode(iterator, MemberInfoCodec.Decode);
                return(handleMembersViewEventAsync(version, memberInfos, state));
            }
            if (messageType == EventPartitionsViewMessageType)
            {
                var initialFrame = iterator.Take();
                var version      = initialFrame.Bytes.ReadIntL(EventPartitionsViewVersionFieldOffset);
                var partitions   = EntryListUUIDListIntegerCodec.Decode(iterator);
                return(handlePartitionsViewEventAsync(version, partitions, state));
            }
            loggerFactory.CreateLogger(typeof(EventHandler)).LogDebug("Unknown message type received on event handler :" + messageType);
            return(default);
Пример #13
0
            public static void HandleEvent(ClientMessage clientMessage, HandleMembersViewEvent handleMembersViewEvent, HandlePartitionsViewEvent handlePartitionsViewEvent)
            {
                var messageType = clientMessage.MessageType;
                var iterator    = clientMessage.GetIterator();

                if (messageType == EventMembersViewMessageType)
                {
                    var initialFrame = iterator.Next();
                    int version      = DecodeInt(initialFrame.Content, EventMembersViewVersionFieldOffset);
                    IList <Hazelcast.Core.MemberInfo> memberInfos = ListMultiFrameCodec.Decode(iterator, MemberInfoCodec.Decode);
                    handleMembersViewEvent(version, memberInfos);
                    return;
                }
                if (messageType == EventPartitionsViewMessageType)
                {
                    var initialFrame = iterator.Next();
                    int version      = DecodeInt(initialFrame.Content, EventPartitionsViewVersionFieldOffset);
                    IList <KeyValuePair <Guid, IList <int> > > partitions = EntryListUUIDListIntegerCodec.Decode(iterator);
                    handlePartitionsViewEvent(version, partitions);
                    return;
                }
                Logger.GetLogger(typeof(EventHandler)).Finest("Unknown message type received on event handler :" + messageType);
            }