/** * {@inheritDoc} */ @Override public int hashCode() { int code = 0; code += ((int)this.getTimestamp()); return code; }
@Override protected long getRecordSpecificTimestamp(final IEventRecord record) { return record.getTimestamp(); }
/** * {@inheritDoc} */ @Override public boolean equals(final Object obj) { if (obj == null) return false; if (obj == this) return true; if (obj.getClass() != this.getClass()) return false; final AbstractEvent castedRecord = (AbstractEvent) obj; if (this.getLoggingTimestamp() != castedRecord.getLoggingTimestamp()) return false; if (this.getTimestamp() != castedRecord.getTimestamp()) return false; return true; }
this.writerRegistry.register(kiekerBefore.getOperationSignature()); this.writerRegistry.register(kiekerBefore.getClassSignature()); final int opSigId = this.writerRegistry.getId(kiekerBefore.getOperationSignature()); final int classSigId = this.writerRegistry.getId(kiekerBefore.getClassSignature()); final int interfaceId = this.writerRegistry.getId(EMPTY_STRING); buffer.putLong(kiekerBefore.getTimestamp()); buffer.putLong(kiekerBefore.getTraceId()); buffer.putInt(kiekerBefore.getOrderIndex()); if (kiekerRecord instanceof IObjectRecord) { final IObjectRecord iObjectRecord = (IObjectRecord) kiekerRecord; buffer.putInt(iObjectRecord.getObjectId()); } else { buffer.putInt(0); this.writerRegistry.register(kiekerAfterFailed.getCause()); buffer.putLong(kiekerAfterFailed.getTimestamp()); buffer.putLong(kiekerAfterFailed.getTraceId()); buffer.putInt(kiekerAfterFailed.getOrderIndex()); buffer.putInt(this.writerRegistry.getId(kiekerAfterFailed.getCause())); } else if (kiekerRecord instanceof AfterOperationEvent) { final AfterOperationEvent kiekerAfter = (AfterOperationEvent) kiekerRecord; buffer.put(AFTER_OPERATION_CLAZZ_ID); buffer.putLong(kiekerAfter.getTimestamp()); buffer.putLong(kiekerAfter.getTraceId()); buffer.putInt(kiekerAfter.getOrderIndex()); } else if (kiekerRecord instanceof HostApplicationMetaData) {
/** * This method represents an input port for flow records. * * @param record * The next record. */ @InputPort(name = INPUT_PORT_NAME_FLOW, description = "Receives trace events to be selected by trace ID", eventTypes = { ITraceRecord.class, TraceMetadata.class }) public void inputTraceEvent(final IFlowRecord record) { final long traceId; if (record instanceof TraceMetadata) { traceId = ((TraceMetadata) record).getTraceId(); } else if (record instanceof AbstractTraceEvent) { traceId = ((ITraceRecord) record).getTraceId(); } else { // should not happen given the accepted type return; } if (this.acceptId(traceId)) { super.deliver(OUTPUT_PORT_NAME_MATCH, record); } else { super.deliver(OUTPUT_PORT_NAME_MISMATCH, record); } }
/** * This method represents the input port receiving trace events to be selected by a specific timestamp selector. * * @param record * The new incoming record. */ @InputPort(name = INPUT_PORT_NAME_FLOW, description = "Receives trace events to be selected by a specific timestamp selector", eventTypes = { IEventRecord.class, TraceMetadata.class }) public final void inputTraceEvent(final IFlowRecord record) { final long timestamp; if (record instanceof TraceMetadata) { timestamp = ((TraceMetadata) record).getLoggingTimestamp(); } else if (record instanceof IEventRecord) { timestamp = ((IEventRecord) record).getTimestamp(); } else { // should not happen given the accepted type return; } if (this.inRange(timestamp)) { super.deliver(OUTPUT_PORT_NAME_WITHIN_PERIOD, record); } else { super.deliver(OUTPUT_PORT_NAME_OUTSIDE_PERIOD, record); } }
public void addRecord(final IOperationRecord record) { final String classSignature = record.getClassSignature(); final String operationSignature = record.getOperationSignature(); this.addRecord(classSignature, operationSignature); }
this.writerRegistry.register(kiekerBefore.getOperationSignature()); this.writerRegistry.register(kiekerBefore.getClassSignature()); final int opSigId = this.writerRegistry.getId(kiekerBefore.getOperationSignature()); final int classSigId = this.writerRegistry.getId(kiekerBefore.getClassSignature()); final int interfaceId = this.writerRegistry.getId(EMPTY_STRING); buffer.putLong(kiekerBefore.getTimestamp()); buffer.putLong(kiekerBefore.getTraceId()); buffer.putInt(kiekerBefore.getOrderIndex()); if (kiekerRecord instanceof IObjectRecord) { final IObjectRecord iObjectRecord = (IObjectRecord) kiekerRecord; buffer.putInt(iObjectRecord.getObjectId()); } else { buffer.putInt(0); this.writerRegistry.register(kiekerAfterFailed.getCause()); buffer.putLong(kiekerAfterFailed.getTimestamp()); buffer.putLong(kiekerAfterFailed.getTraceId()); buffer.putInt(kiekerAfterFailed.getOrderIndex()); buffer.putInt(this.writerRegistry.getId(kiekerAfterFailed.getCause())); } else if (kiekerRecord instanceof AfterOperationEvent) { final AfterOperationEvent kiekerAfter = (AfterOperationEvent) kiekerRecord; buffer.put(AFTER_OPERATION_CLAZZ_ID); buffer.putLong(kiekerAfter.getTimestamp()); buffer.putLong(kiekerAfter.getTraceId()); buffer.putInt(kiekerAfter.getOrderIndex()); } else if (kiekerRecord instanceof HostApplicationMetaData) {
/** * This method represents an input port for flow records. * * @param record * The next record. */ @InputPort(name = INPUT_PORT_NAME_FLOW, description = "Receives trace events to be selected by trace ID", eventTypes = { ITraceRecord.class, TraceMetadata.class }) public void inputTraceEvent(final IFlowRecord record) { final long traceId; if (record instanceof TraceMetadata) { traceId = ((TraceMetadata) record).getTraceId(); } else if (record instanceof AbstractTraceEvent) { traceId = ((ITraceRecord) record).getTraceId(); } else { // should not happen given the accepted type return; } if (this.acceptId(traceId)) { super.deliver(OUTPUT_PORT_NAME_MATCH, record); } else { super.deliver(OUTPUT_PORT_NAME_MISMATCH, record); } }
/** * This method represents the input port receiving trace events to be selected * by a specific timestamp selector. * * @param record * The new incoming record. */ @InputPort(name = INPUT_PORT_NAME_FLOW, description = "Receives trace events to be selected by a specific timestamp selector", eventTypes = { IEventRecord.class, TraceMetadata.class }) public final void inputTraceEvent(final IFlowRecord record) { final long timestamp; if (record instanceof TraceMetadata) { timestamp = ((TraceMetadata) record).getLoggingTimestamp(); } else if (record instanceof IEventRecord) { timestamp = ((IEventRecord) record).getTimestamp(); } else { // should not happen given the accepted type return; } if (this.inRange(timestamp)) { super.deliver(OUTPUT_PORT_NAME_WITHIN_PERIOD, record); } else { super.deliver(OUTPUT_PORT_NAME_OUTSIDE_PERIOD, record); } }
/** * {@inheritDoc} */ @Override public boolean equals(final Object obj) { if (obj == null) { return false; } if (obj == this) { return true; } if (obj.getClass() != this.getClass()) { return false; } final AbstractEvent castedRecord = (AbstractEvent) obj; if (this.getLoggingTimestamp() != castedRecord.getLoggingTimestamp()) { return false; } if (this.getTimestamp() != castedRecord.getTimestamp()) { return false; } return true; } /**
/** * Checks if two events refer to the same operation of the same class. * * @param left * The first record. * @param right * The second record * * @return true if and only if the given records refer to the same operation of the same class. */ public static boolean refersToSameOperationAs(final IOperationRecord left, final IOperationRecord right) { return left.getOperationSignature().equals(right.getOperationSignature()) && left.getClassSignature().equals(right.getClassSignature()); }