/** * Calculate the bytes to skip when reading the event file. * * @param DomainEventMessageInterface $snapshotEvent the snapshot event * @return integer the bytes to skip when reading the event file * * @throws \Exception */ private function calculateOffset(DomainEventMessageInterface $snapshotEvent) { try { $eventMessageReader = new FilesystemEventMessageReader($this->eventFile, $this->eventSerializer); $lastReadSequenceNumber = -1; while ($lastReadSequenceNumber < $snapshotEvent->getScn()) { $entry = $eventMessageReader->readEventMessage(); $lastReadSequenceNumber = $entry->getScn(); } return $this->eventFile->ftell(); } catch (\Exception $ex) { throw $ex; } }
public function hasNext() { return null !== $this->next && $this->next->getScn() <= $this->lastSequenceNumber; }
public function hasNext() { return null !== $this->next && $this->next->getScn() <= $this->lastScn; }
/** * Initialize an Event entry for the given <code>event</code>. * * @param string $type The type identifier of the aggregate root the event belongs to * @param DomainEventMessageInterface $event The event to store in the EventStore * @param SerializedObjectInterface $payload The serialized payload of the Event * @param SerializedObjectInterface $metaData The serialized metaData of the Event */ public function __construct($type, DomainEventMessageInterface $event, SerializedObjectInterface $payload, SerializedObjectInterface $metaData) { $this->eventIdentifier = $event->getIdentifier(); $this->type = $type; //$this->payloadType = $payload->getContentType(); $this->payloadType = $payload->getType()->getName(); $this->payloadRevision = $payload->getType()->getRevision(); $this->payload = $payload->getData(); $this->aggregateIdentifier = $event->getAggregateIdentifier(); $this->scn = $event->getScn(); $this->metaData = $metaData->getData(); $this->timestamp = $event->getTimestamp(); }