public RecordMetadata() { reset(); }
public InitialEvent reset() { logStreamWriter.reset(); metadata.reset(); return this; }
public InitialEvent reset() { logStreamWriter.reset(); metadata.reset(); return this; }
protected void initMetadata( final RecordType type, final Intent intent, final UnpackedObject value) { metadata.reset(); final ValueType valueType = typeRegistry.get(value.getClass()); if (valueType == null) { // usually happens when the record is not registered at the TypedStreamEnvironment throw new RuntimeException("Missing value type mapping for record: " + value.getClass()); } metadata.recordType(type); metadata.valueType(valueType); metadata.intent(intent); }
protected void initMetadata( final RecordType type, final Intent intent, final UnpackedObject value) { metadata.reset(); final ValueType valueType = typeRegistry.get(value.getClass()); if (valueType == null) { // usually happens when the record is not registered at the TypedStreamEnvironment throw new RuntimeException("Missing value type mapping for record: " + value.getClass()); } metadata.recordType(type); metadata.valueType(valueType); metadata.intent(intent); }
public RaftEvent reset() { logStreamWriter.reset(); metadata.reset(); configuration.reset(); return this; }
public RaftEvent reset() { logStreamWriter.reset(); metadata.reset(); configuration.reset(); return this; }
@Override @SuppressWarnings({"unchecked"}) public <T extends UnpackedObject> TypedRecord<T> readValue(long position, Class<T> eventClass) { final boolean success = reader.seek(position); if (!success) { throw new RuntimeException("Could not find an event at position " + position); } final LoggedEvent rawEvent = reader.next(); metadata.reset(); rawEvent.readMetadata(metadata); final UnpackedObject value = eventCache.get(eventClass); value.reset(); rawEvent.readValue(value); event.wrap(rawEvent, metadata, value); return event; }
@Override @SuppressWarnings({"unchecked"}) public <T extends UnpackedObject> TypedRecord<T> readValue(long position, Class<T> eventClass) { final boolean success = reader.seek(position); if (!success) { throw new RuntimeException("Could not find an event at position " + position); } final LoggedEvent rawEvent = reader.next(); metadata.reset(); rawEvent.readMetadata(metadata); final UnpackedObject value = eventCache.get(eventClass); value.reset(); rawEvent.readValue(value); event.wrap(rawEvent, metadata, value); return event; }
public long tryWrite(final Raft raft) { logStreamWriter.wrap(raft.getLogStream()); metadata.reset().valueType(ValueType.NOOP); return logStreamWriter.keyNull().metadataWriter(metadata).value(EMPTY_OBJECT).tryWrite(); } }
public long tryWrite(final Raft raft) { logStreamWriter.wrap(raft.getLogStream()); metadata.reset().valueType(ValueType.NOOP); return logStreamWriter.keyNull().metadataWriter(metadata).value(EMPTY_OBJECT).tryWrite(); } }
@Override public long writeEvent(LogStreamRecordWriter writer) { if (shouldCommitPositions()) { final ExporterRecord record = state.newExporterRecord(); rawMetadata .reset() .recordType(RecordType.EVENT) .valueType(ValueType.EXPORTER) .intent(ExporterIntent.EXPORTED); return writer.positionAsKey().valueWriter(record).metadataWriter(rawMetadata).tryWrite(); } return 0; } }
private boolean writeCreatingDeployment( final Partition partition, final long key, final UnpackedObject event) { final RecordType recordType = RecordType.COMMAND; final ValueType valueType = ValueType.DEPLOYMENT; final Intent intent = DeploymentIntent.CREATE; logStreamWriter.wrap(partition.getLogStream()); recordMetadata.reset().recordType(recordType).valueType(valueType).intent(intent); final long position = logStreamWriter.key(key).metadataWriter(recordMetadata).valueWriter(event).tryWrite(); return position > 0; } }
private boolean writeCreatingDeployment( final Partition partition, final long key, final UnpackedObject event) { final RecordType recordType = RecordType.COMMAND; final ValueType valueType = ValueType.DEPLOYMENT; final Intent intent = DeploymentIntent.CREATE; logStreamWriter.wrap(partition.getLogStream()); recordMetadata.reset().recordType(recordType).valueType(valueType).intent(intent); final long position = logStreamWriter.key(key).metadataWriter(recordMetadata).valueWriter(event).tryWrite(); return position > 0; } }
@Override public long writeEvent(LogStreamRecordWriter writer) { if (shouldCommitPositions()) { final ExporterRecord record = state.newExporterRecord(); rawMetadata .reset() .recordType(RecordType.EVENT) .valueType(ValueType.EXPORTER) .intent(ExporterIntent.EXPORTED); return writer.positionAsKey().valueWriter(record).metadataWriter(rawMetadata).tryWrite(); } return 0; } }
@Override public EventProcessor onEvent(final LoggedEvent event) { final long position = event.getPosition(); metadata.reset(); event.readMetadata(metadata); final TypedRecordProcessor<?> currentProcessor = recordProcessors.get( metadata.getRecordType(), metadata.getValueType(), metadata.getIntent().value()); if (currentProcessor != null) { final UnpackedObject value = eventCache.get(metadata.getValueType()); value.reset(); event.readValue(value); typedEvent.wrap(event, metadata, value); eventProcessorWrapper.wrap(currentProcessor, typedEvent, position); return eventProcessorWrapper; } else { return null; } }
private boolean writeCommand( int partitionId, ValueType valueType, Intent intent, UnpackedObject command) { final Partition partition = leaderPartitions.get(partitionId); if (partition == null) { // ignore message if you are not the leader of the partition return true; } logStreamWriter.wrap(partition.getLogStream()); recordMetadata.reset().recordType(RecordType.COMMAND).valueType(valueType).intent(intent); final long position = logStreamWriter .positionAsKey() .metadataWriter(recordMetadata) .valueWriter(command) .tryWrite(); return position > 0; } }
@Override public void wrap(DirectBuffer buffer, int offset, int length) { reset(); headerDecoder.wrap(buffer, offset); offset += headerDecoder.encodedLength(); decoder.wrap(buffer, offset, headerDecoder.blockLength(), headerDecoder.version()); recordType = decoder.recordType(); requestStreamId = decoder.requestStreamId(); requestId = decoder.requestId(); protocolVersion = decoder.protocolVersion(); valueType = decoder.valueType(); intent = Intent.fromProtocolValue(valueType, decoder.intent()); rejectionType = decoder.rejectionType(); final int rejectionReasonLength = decoder.rejectionReasonLength(); offset += headerDecoder.blockLength(); offset += RecordMetadataDecoder.rejectionReasonHeaderLength(); rejectionReason.wrap(buffer, offset, rejectionReasonLength); }
public long tryWrite(final Raft raft) { logStreamWriter.wrap(raft.getLogStream()); metadata.reset().valueType(ValueType.RAFT).recordType(RecordType.EVENT).intent(intent); configuration.reset(); final ValueArray<RaftConfigurationEventMember> configurationMembers = configuration.members(); // add self also to configuration configurationMembers.add().setNodeId(raft.getNodeId()); final List<RaftMember> memberList = raft.getRaftMembers().getMemberList(); for (final RaftMember member : memberList) { configurationMembers.add().setNodeId(member.getNodeId()); } return logStreamWriter .positionAsKey() .metadataWriter(metadata) .valueWriter(configuration) .tryWrite(); } }
public long tryWrite(final Raft raft) { logStreamWriter.wrap(raft.getLogStream()); metadata.reset().valueType(ValueType.RAFT).recordType(RecordType.EVENT).intent(intent); configuration.reset(); final ValueArray<RaftConfigurationEventMember> configurationMembers = configuration.members(); // add self also to configuration configurationMembers.add().setNodeId(raft.getNodeId()); final List<RaftMember> memberList = raft.getRaftMembers().getMemberList(); for (final RaftMember member : memberList) { configurationMembers.add().setNodeId(member.getNodeId()); } return logStreamWriter .positionAsKey() .metadataWriter(metadata) .valueWriter(configuration) .tryWrite(); } }