public bool MatchesEvent(EventInStorage eventInStorage) { if (!MatchesContextAndFilter(eventInStorage.Context, eventInStorage.Stream)) return false; if (eventInStorage.GlobalSequence < NextMarker) return false; return true; }
public QueuedEventsResponse(string context, string queueId, string subscriberId, DateTime timeOfResponse, long? allocationId, EventInStorage[] events) { Context = context; QueueId = queueId; SubscriberId = subscriberId; TimeOfResponse = timeOfResponse; AllocationId = allocationId; Events = events; }
public Action<NetMQMessage> Send(NetMQSocket socket, PendingResRequest pendingRequest, Guid requestId) { var pending = (PendingResRequest<QueryEventsForStreamResponse>) pendingRequest; var msg = new NetMQMessage(); msg.AppendEmptyFrame(); msg.Append(ResProtocol.ResClient01); msg.Append(ResCommands.QueryEventsByStream); msg.Append(requestId.ToByteArray()); msg.Append(_context); msg.Append(_stream); msg.Append(_fromVersion.ToNetMqFrame()); msg.Append(_maxVersion.ToNetMqFrame()); socket.SendMultipartMessage(msg); return m => { var command = m.Pop().ConvertToString(); if (command == ResCommands.Error) { var errorCode = m.Pop().ConvertToString(); var errorDetails = m.Pop().ConvertToString(); ErrorResolver.RaiseException(errorCode, errorDetails, pending.SetException); return; } if (command != ResCommands.QueryEventsByStreamResponse) pending.SetException(new UnsupportedCommandException(command)); var count = m.PopInt32(); var events = new EventInStorage[count]; for (var i = 0; i < count; i++) { var id = new Guid(m.Pop().ToByteArray()); var streamId = m.Pop().ConvertToString(); var context = m.Pop().ConvertToString(); var sequence = m.PopInt64(); var timestamp = m.PopDateTime();; var type = m.PopString(); var headers = m.PopStringOrNull(); var body = m.PopString(); events[i] = new EventInStorage(context, streamId, sequence, type, id, headers, body, timestamp); } var result = new QueryEventsForStreamResponse(_context, _stream, events); pending.SetResult(result); }; }
public QueuedEvents(long? allocationId, EventInStorage[] events) { AllocationId = allocationId; Events = events; }
public Action<NetMQMessage> Send(NetMQSocket socket, PendingResRequest pendingRequest, Guid requestId) { var pending = (PendingResRequest<QueuedEventsResponse>) pendingRequest; var msg = new NetMQMessage(); msg.AppendEmptyFrame(); msg.Append(ResProtocol.ResClient01); msg.Append(ResCommands.AcknowledgeQueue); msg.Append(requestId.ToByteArray()); msg.Append(_context); msg.Append(_queueId); msg.Append(_subscriberId); msg.Append(_allocationId.ToNetMqFrame()); msg.Append(_allocationBatchSize.ToNetMqFrame()); msg.Append(_allocationTimeoutInMilliseconds.ToNetMqFrame()); socket.SendMultipartMessage(msg); return m => { var command = m.Pop().ConvertToString(); if (command == ResCommands.Error) { var errorCode = m.Pop().ConvertToString(); var errorDetails = m.Pop().ConvertToString(); ErrorResolver.RaiseException(errorCode, errorDetails, pending.SetException); return; } if (command != ResCommands.QueuedEvents) pending.SetException(new UnsupportedCommandException(command)); var queueContext = m.Pop().ConvertToString(); var queueId = m.Pop().ConvertToString(); var subscriberId = m.Pop().ConvertToString(); var time = m.PopDateTime(); var allocationId = m.PopNullableInt64(); var count = m.PopInt32(); var events = new EventInStorage[count]; for (var i = 0; i < count; i++) { var id = new Guid(m.Pop().ToByteArray()); var streamId = m.Pop().ConvertToString(); var context = m.Pop().ConvertToString(); var sequence = m.PopInt64(); var timestamp = m.PopDateTime(); var type = m.PopString(); var headers = m.PopStringOrNull(); var body = m.PopString(); events[i] = new EventInStorage(context, streamId, sequence, type, id, headers, body, timestamp); } var result = new QueuedEventsResponse(queueContext, queueId, subscriberId, time, allocationId, events); pending.SetResult(result); }; }
public EventsForStream(string context, string stream, EventInStorage[] events) { Context = context; Stream = stream; Events = events; }
public QueryEventsForStreamResponse(string context, string stream, EventInStorage[] events) { Context = context; Stream = stream; Events = events; }