public static ClientMessage EncodeResponse(ICollection <IData> response)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType);
            clientMessage.Append(initialFrame);
            ListMultiFrameCodec.Encode(clientMessage, response, DataCodec.Encode);
            return(clientMessage);
        }
Beispiel #2
0
        public static ClientMessage EncodeResponse(int response)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType);
            initialFrame.Bytes.WriteIntL(ResponseResponseFieldOffset, response);
            clientMessage.Append(initialFrame);
            return(clientMessage);
        }
Beispiel #3
0
 public static void EncodeNullable <T>(ClientMessage clientMessage, IEnumerable <T> collection, Action <ClientMessage, T> encodeFunction)
 {
     if (collection == null)
     {
         clientMessage.Append(Frame.CreateNull());
     }
     else
     {
         Encode(clientMessage, collection, encodeFunction);
     }
 }
Beispiel #4
0
        public static void EncodeContainsNullable <T>(ClientMessage clientMessage, IEnumerable <T> collection, Action <ClientMessage, T> encodeFunction)
        {
            clientMessage.Append(Frame.CreateBeginStruct());

            foreach (var item in collection)
            {
#pragma warning disable CA1508 // Avoid dead conditional code - false positive, yes it can be null
                if (item == null)
#pragma warning restore CA1508
                {
                    clientMessage.Append(Frame.CreateNull());
                }
                else
                {
                    encodeFunction(clientMessage, item);
                }
            }

            clientMessage.Append(Frame.CreateEndStruct());
        }
        public static ClientMessage EncodeResponse(long oldestSequence, long newestSequence)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType);
            initialFrame.Bytes.WriteLongL(ResponseOldestSequenceFieldOffset, oldestSequence);
            initialFrame.Bytes.WriteLongL(ResponseNewestSequenceFieldOffset, newestSequence);
            clientMessage.Append(initialFrame);
            return(clientMessage);
        }
Beispiel #6
0
        public static ClientMessage EncodeResponse(ICollection <KeyValuePair <string, ICollection <KeyValuePair <int, long> > > > namePartitionSequenceList, ICollection <KeyValuePair <int, Guid> > partitionUuidList)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType);
            clientMessage.Append(initialFrame);
            EntryListCodec.Encode(clientMessage, namePartitionSequenceList, StringCodec.Encode, EntryListIntegerLongCodec.Encode);
            EntryListIntegerUUIDCodec.Encode(clientMessage, partitionUuidList);
            return(clientMessage);
        }
Beispiel #7
0
        public static ClientMessage EncodeResponse(ICollection <KeyValuePair <int, int> > iterationPointers, ICollection <IData> keys)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType);
            clientMessage.Append(initialFrame);
            EntryListIntegerIntegerCodec.Encode(clientMessage, iterationPointers);
            ListMultiFrameCodec.Encode(clientMessage, keys, DataCodec.Encode);
            return(clientMessage);
        }
 public static void EncodeNullable <TKey, TValue>(ClientMessage clientMessage, IDictionary <TKey, TValue> map, Action <ClientMessage, TKey> encodeKey, Action <ClientMessage, TValue> encodeValue)
 {
     if (map == null)
     {
         clientMessage.Append(Frame.CreateNull());
     }
     else
     {
         Encode(clientMessage, map, encodeKey, encodeValue);
     }
 }
Beispiel #9
0
        public static ClientMessage EncodeResponse(ICollection <KeyValuePair <IData, IData> > response, Hazelcast.Protocol.Models.AnchorDataListHolder anchorDataList)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType);
            clientMessage.Append(initialFrame);
            EntryListCodec.Encode(clientMessage, response, DataCodec.Encode, DataCodec.Encode);
            AnchorDataListHolderCodec.Encode(clientMessage, anchorDataList);
            return(clientMessage);
        }
        public static ClientMessage EncodeResponse(Hazelcast.Models.MapEntryStats <IData, IData> response, long maxIdle)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType);
            initialFrame.Bytes.WriteLongL(ResponseMaxIdleFieldOffset, maxIdle);
            clientMessage.Append(initialFrame);
            CodecUtil.EncodeNullable(clientMessage, response, SimpleEntryViewCodec.Encode);
            return(clientMessage);
        }
 public static void EncodeNullable <T>(ClientMessage clientMessage, T value, Action <ClientMessage, T> encode)
 {
     if (value == null)
     {
         clientMessage.Append(Frame.CreateNull());
     }
     else
     {
         encode(clientMessage, value);
     }
 }
Beispiel #12
0
        public static ClientMessage EncodeBackupEvent(long sourceInvocationCorrelationId)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[EventBackupInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, EventBackupMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteLongL(EventBackupSourceInvocationCorrelationIdFieldOffset, sourceInvocationCorrelationId);
            clientMessage.Append(initialFrame);
            clientMessage.Flags |= ClientMessageFlags.Event;
            return(clientMessage);
        }
        public static void Encode(ClientMessage clientMessage, long[] collection)
        {
            var itemCount = collection.Length;
            var frame     = new Frame(new byte[itemCount * BytesExtensions.SizeOfLong]);

            for (var i = 0; i < collection.Length; i++)
            {
                frame.Bytes.WriteLong(i * BytesExtensions.SizeOfLong, collection[i]);
            }

            clientMessage.Append(frame);
        }
Beispiel #14
0
        public static ClientMessage EncodeResponse(long @value, ICollection <KeyValuePair <Guid, long> > replicaTimestamps, int replicaCount)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType);
            initialFrame.Bytes.WriteLongL(ResponseValueFieldOffset, @value);
            initialFrame.Bytes.WriteIntL(ResponseReplicaCountFieldOffset, replicaCount);
            clientMessage.Append(initialFrame);
            EntryListUUIDLongCodec.Encode(clientMessage, replicaTimestamps);
            return(clientMessage);
        }
Beispiel #15
0
        public void Properties()
        {
            var m = new ClientMessage();

            Assert.That(m.FirstFrame, Is.Null);
            Assert.That(m.LastFrame, Is.Null);

            Assert.Throws <ArgumentNullException>(() => m.Append(null));

            var f = new Frame(new byte[256]);

            m = new ClientMessage(f);
            Assert.That(m.FirstFrame, Is.SameAs(f));
            Assert.That(m.LastFrame, Is.SameAs(f));
            Assert.That(f.Next, Is.Null);

            m.Flags = ClientMessageFlags.Default;
            Assert.That(m.Flags, Is.EqualTo(ClientMessageFlags.Default));

            m.PartitionId = 123;
            Assert.That(m.PartitionId, Is.EqualTo(123));

            m.CorrelationId = 456;
            Assert.That(m.CorrelationId, Is.EqualTo(456));

            m.MessageType = 789;
            Assert.That(m.MessageType, Is.EqualTo(789));

            m.OperationName = "op";
            Assert.That(m.OperationName, Is.EqualTo("op"));

            m.FragmentId = 552;
            Assert.That(m.FragmentId, Is.EqualTo(552));

            m.Flags = ClientMessageFlags.Event;
            Assert.That(m.IsEvent);

            m.Flags = ClientMessageFlags.BackupAware;
            Assert.That(m.IsBackupAware);

            m.Flags = ClientMessageFlags.BackupEvent;
            Assert.That(m.IsBackupEvent);

            m.MessageType = 0;
            Assert.That(m.IsException);
            m.MessageType = 1;
            Assert.That(m.IsException, Is.False);

            Assert.That(m.IsRetryable, Is.False);
            m.IsRetryable = true;
            Assert.That(m.IsRetryable);
        }
Beispiel #16
0
        public static ClientMessage EncodeMembersViewEvent(int version, ICollection <Hazelcast.Models.MemberInfo> memberInfos)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[EventMembersViewInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, EventMembersViewMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteIntL(EventMembersViewVersionFieldOffset, version);
            clientMessage.Append(initialFrame);
            clientMessage.Flags |= ClientMessageFlags.Event;
            ListMultiFrameCodec.Encode(clientMessage, memberInfos, MemberInfoCodec.Encode);
            return(clientMessage);
        }
Beispiel #17
0
        public static ClientMessage EncodeMapPartitionLostEvent(int partitionId, Guid uuid)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[EventMapPartitionLostInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, EventMapPartitionLostMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteIntL(EventMapPartitionLostPartitionIdFieldOffset, partitionId);
            initialFrame.Bytes.WriteGuidL(EventMapPartitionLostUuidFieldOffset, uuid);
            clientMessage.Append(initialFrame);
            clientMessage.Flags |= ClientMessageFlags.Event;
            return(clientMessage);
        }
Beispiel #18
0
        public static ClientMessage EncodePartitionsViewEvent(int version, ICollection <KeyValuePair <Guid, IList <int> > > partitions)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[EventPartitionsViewInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, EventPartitionsViewMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteIntL(EventPartitionsViewVersionFieldOffset, version);
            clientMessage.Append(initialFrame);
            clientMessage.Flags |= ClientMessageFlags.Event;
            EntryListUUIDListIntegerCodec.Encode(clientMessage, partitions);
            return(clientMessage);
        }
        public static ClientMessage EncodeResponse(int readCount, ICollection <IData> items, long[] itemSeqs, long nextSeq)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[ResponseInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, ResponseMessageType);
            initialFrame.Bytes.WriteIntL(ResponseReadCountFieldOffset, readCount);
            initialFrame.Bytes.WriteLongL(ResponseNextSeqFieldOffset, nextSeq);
            clientMessage.Append(initialFrame);
            ListMultiFrameCodec.Encode(clientMessage, items, DataCodec.Encode);
            CodecUtil.EncodeNullable(clientMessage, itemSeqs, LongArrayCodec.Encode);
            return(clientMessage);
        }
        public static ClientMessage EncodeItemEvent(IData item, Guid uuid, int eventType)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[EventItemInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, EventItemMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteGuidL(EventItemUuidFieldOffset, uuid);
            initialFrame.Bytes.WriteIntL(EventItemEventTypeFieldOffset, eventType);
            clientMessage.Append(initialFrame);
            clientMessage.Flags |= ClientMessageFlags.Event;
            CodecUtil.EncodeNullable(clientMessage, item, DataCodec.Encode);
            return(clientMessage);
        }
Beispiel #21
0
        public static void Encode(ClientMessage clientMessage, Hazelcast.Data.HDictionaryEntry <IData, IData> simpleEntryView)
        {
            clientMessage.Append(Frame.CreateBeginStruct());

            var initialFrame = new Frame(new byte[InitialFrameSize]);

            initialFrame.Bytes.WriteLongL(CostFieldOffset, simpleEntryView.Cost);
            initialFrame.Bytes.WriteLongL(CreationTimeFieldOffset, simpleEntryView.CreationTime);
            initialFrame.Bytes.WriteLongL(ExpirationTimeFieldOffset, simpleEntryView.ExpirationTime);
            initialFrame.Bytes.WriteLongL(HitsFieldOffset, simpleEntryView.Hits);
            initialFrame.Bytes.WriteLongL(LastAccessTimeFieldOffset, simpleEntryView.LastAccessTime);
            initialFrame.Bytes.WriteLongL(LastStoredTimeFieldOffset, simpleEntryView.LastStoredTime);
            initialFrame.Bytes.WriteLongL(LastUpdateTimeFieldOffset, simpleEntryView.LastUpdateTime);
            initialFrame.Bytes.WriteLongL(VersionFieldOffset, simpleEntryView.Version);
            initialFrame.Bytes.WriteLongL(TtlFieldOffset, simpleEntryView.Ttl);
            initialFrame.Bytes.WriteLongL(MaxIdleFieldOffset, simpleEntryView.MaxIdle);
            clientMessage.Append(initialFrame);

            DataCodec.Encode(clientMessage, simpleEntryView.Key);
            DataCodec.Encode(clientMessage, simpleEntryView.Value);

            clientMessage.Append(Frame.CreateEndStruct());
        }
        public static ClientMessage EncodePartitionLostEvent(int partitionId, int lostBackupCount, Guid source)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[EventPartitionLostInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, EventPartitionLostMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteIntL(EventPartitionLostPartitionIdFieldOffset, partitionId);
            initialFrame.Bytes.WriteIntL(EventPartitionLostLostBackupCountFieldOffset, lostBackupCount);
            initialFrame.Bytes.WriteGuidL(EventPartitionLostSourceFieldOffset, source);
            clientMessage.Append(initialFrame);
            clientMessage.Flags |= ClientMessageFlags.Event;
            return(clientMessage);
        }
        public static ClientMessage EncodeTopicEvent(IData item, long publishTime, Guid uuid)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[EventTopicInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, EventTopicMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteLongL(EventTopicPublishTimeFieldOffset, publishTime);
            initialFrame.Bytes.WriteGuidL(EventTopicUuidFieldOffset, uuid);
            clientMessage.Append(initialFrame);
            clientMessage.Flags |= ClientMessageFlags.Event;
            DataCodec.Encode(clientMessage, item);
            return(clientMessage);
        }
 public static ClientMessage EncodeRequest(string name)
 {
     var clientMessage = new ClientMessage
     {
         IsRetryable = false,
         OperationName = "Map.EvictAll"
     };
     var initialFrame = new Frame(new byte[RequestInitialFrameSize], (FrameFlags) ClientMessageFlags.Unfragmented);
     initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, RequestMessageType);
     initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
     clientMessage.Append(initialFrame);
     StringCodec.Encode(clientMessage, name);
     return clientMessage;
 }
Beispiel #25
0
        public static void Encode(ClientMessage clientMessage, ICollection <KeyValuePair <int, int> > collection)
        {
            var itemCount = collection.Count;
            var frame     = new Frame(new byte[itemCount * EntrySizeInBytes]);
            var i         = 0;

            foreach (var kvp in collection)
            {
                frame.Bytes.WriteIntL(i * EntrySizeInBytes, kvp.Key);
                frame.Bytes.WriteIntL(i * EntrySizeInBytes + BytesExtensions.SizeOfInt, kvp.Value);
                i++;
            }
            clientMessage.Append(frame);
        }
Beispiel #26
0
        public static ClientMessage EncodeRequest()
        {
            var clientMessage = new ClientMessage
            {
                IsRetryable   = true,
                OperationName = "Client.Ping"
            };
            var initialFrame = new Frame(new byte[RequestInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, RequestMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            clientMessage.Append(initialFrame);
            return(clientMessage);
        }
Beispiel #27
0
        public static void Encode(ClientMessage clientMessage, IEnumerable <KeyValuePair <Guid, long> > collection)
        {
            var itemCount = collection.Count();
            var frame     = new Frame(new byte[itemCount * EntrySizeInBytes]);
            var i         = 0;

            foreach (var kvp in collection)
            {
                frame.Bytes.WriteGuid(i * EntrySizeInBytes, kvp.Key);
                frame.Bytes.WriteLong(i * EntrySizeInBytes + BytesExtensions.SizeOfGuid, kvp.Value);
                i++;
            }
            clientMessage.Append(frame);
        }
Beispiel #28
0
        public static ClientMessage EncodeRequest(bool localOnly)
        {
            var clientMessage = new ClientMessage
            {
                IsRetryable   = false,
                OperationName = "Client.AddDistributedObjectListener"
            };
            var initialFrame = new Frame(new byte[RequestInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, RequestMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteBoolL(RequestLocalOnlyFieldOffset, localOnly);
            clientMessage.Append(initialFrame);
            return(clientMessage);
        }
Beispiel #29
0
        public static ClientMessage EncodeDistributedObjectEvent(string name, string serviceName, string eventType, Guid source)
        {
            var clientMessage = new ClientMessage();
            var initialFrame  = new Frame(new byte[EventDistributedObjectInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, EventDistributedObjectMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteGuidL(EventDistributedObjectSourceFieldOffset, source);
            clientMessage.Append(initialFrame);
            clientMessage.Flags |= ClientMessageFlags.Event;
            StringCodec.Encode(clientMessage, name);
            StringCodec.Encode(clientMessage, serviceName);
            StringCodec.Encode(clientMessage, eventType);
            return(clientMessage);
        }
        public static ClientMessage EncodeRequest(Guid registrationId)
        {
            var clientMessage = new ClientMessage
            {
                IsRetryable   = true,
                OperationName = "Client.RemoveDistributedObjectListener"
            };
            var initialFrame = new Frame(new byte[RequestInitialFrameSize], (FrameFlags)ClientMessageFlags.Unfragmented);

            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.MessageType, RequestMessageType);
            initialFrame.Bytes.WriteIntL(Messaging.FrameFields.Offset.PartitionId, -1);
            initialFrame.Bytes.WriteGuidL(RequestRegistrationIdFieldOffset, registrationId);
            clientMessage.Append(initialFrame);
            return(clientMessage);
        }