/// <summary> /// Get offset from cached message. Left to derived class, as only it knows how to get this from the cached message. /// </summary> public virtual string GetOffset(CachedMessage lastItemPurged) { // TODO figure out how to get this from the adapter int readOffset = 0; return(SegmentBuilder.ReadNextString(lastItemPurged.Segment, ref readOffset)); // read offset }
protected override string GetOffset(CachedEventHubMessage lastItemPurged) { int readOffset = 0; SegmentBuilder.ReadNextString(lastItemPurged.Segment, ref readOffset); // read namespace, not needed so throw away. return(SegmentBuilder.ReadNextString(lastItemPurged.Segment, ref readOffset)); // read offset }
private void OnPurged(CachedEventHubMessage lastItemPurged) { int readOffset = 0; SegmentBuilder.ReadNextString(lastItemPurged.Segment, ref readOffset); // read namespace, not needed so throw away. string offset = SegmentBuilder.ReadNextString(lastItemPurged.Segment, ref readOffset); // read offset checkpoint.Update(offset, DateTime.UtcNow); }
public IBatchContainer GetBatchContainer(ref CachedEventHubMessage cachedMessage) { int readOffset = 0; string streamNamespace = SegmentBuilder.ReadNextString(cachedMessage.Segment, ref readOffset); string offset = SegmentBuilder.ReadNextString(cachedMessage.Segment, ref readOffset); ArraySegment <byte> payload = SegmentBuilder.ReadNextBytes(cachedMessage.Segment, ref readOffset); return(new EventHubBatchContainer(cachedMessage.StreamGuid, streamNamespace, offset, cachedMessage.SequenceNumber, payload.ToArray())); }
public bool IsInStream(ref CachedEventHubMessage cachedMessage, Guid streamGuid, string streamNamespace) { // fail out early if guids does not match. Don't incur cost of decoding namespace unless necessary. if (cachedMessage.StreamGuid != streamGuid) { return(false); } int readOffset = 0; string decodedStreamNamespace = SegmentBuilder.ReadNextString(cachedMessage.Segment, ref readOffset); return(decodedStreamNamespace == streamNamespace); }
/// <summary> /// Duplicate of EventHub's EventData class. /// </summary> /// <param name="cachedMessage"></param> public EventHubMessage(CachedEventHubMessage cachedMessage) { int readOffset = 0; StreamIdentity = new StreamIdentity(cachedMessage.StreamGuid, SegmentBuilder.ReadNextString(cachedMessage.Segment, ref readOffset)); Offset = SegmentBuilder.ReadNextString(cachedMessage.Segment, ref readOffset); PartitionKey = SegmentBuilder.ReadNextString(cachedMessage.Segment, ref readOffset); SequenceNumber = cachedMessage.SequenceNumber; EnqueueTimeUtc = cachedMessage.EnqueueTimeUtc; DequeueTimeUtc = cachedMessage.DequeueTimeUtc; Properties = SegmentBuilder.ReadNextBytes(cachedMessage.Segment, ref readOffset).DeserializeProperties(); Payload = SegmentBuilder.ReadNextBytes(cachedMessage.Segment, ref readOffset).ToArray(); }
public bool Equals(CachedEventHubMessage cachedMessage, IStreamIdentity streamIdentity) { int result = cachedMessage.StreamGuid.CompareTo(streamIdentity.Guid); if (result != 0) { return(false); } int readOffset = 0; string decodedStreamNamespace = SegmentBuilder.ReadNextString(cachedMessage.Segment, ref readOffset); return(string.Compare(decodedStreamNamespace, streamIdentity.Namespace, StringComparison.Ordinal) == 0); }
public EventHubMessage(CachedEventHubMessage cachedMessage) { int readOffset = 0; StreamIdentity = new StreamIdentity(cachedMessage.StreamGuid, SegmentBuilder.ReadNextString(cachedMessage.Segment, ref readOffset)); Offset = SegmentBuilder.ReadNextString(cachedMessage.Segment, ref readOffset); SequenceNumber = cachedMessage.SequenceNumber; EnqueueTimeUtc = cachedMessage.EnqueueTimeUtc; DequeueTimeUtc = cachedMessage.DequeueTimeUtc; Properties = SegmentBuilder.ReadNextBytes(cachedMessage.Segment, ref readOffset).DeserializeProperties(); object offsetObj; PartitionKey = Properties.TryGetValue("PartitionKey", out offsetObj) ? offsetObj as string : default(string); Payload = SegmentBuilder.ReadNextBytes(cachedMessage.Segment, ref readOffset).ToArray(); }