Skip to content
Snippets Groups Projects
Commit 5cbcdfeb authored by Florian Fittkau's avatar Florian Fittkau
Browse files

added remote call processing

parent d05ebcdf
No related branches found
No related tags found
No related merge requests found
......@@ -21,7 +21,9 @@ import explorviz.live_trace_processing.record.event.constructor.BeforeConstructo
import explorviz.live_trace_processing.record.event.normal.AfterFailedOperationEventRecord;
import explorviz.live_trace_processing.record.event.normal.AfterOperationEventRecord;
import explorviz.live_trace_processing.record.event.normal.BeforeOperationEventRecord;
import explorviz.live_trace_processing.record.event.remote.RemoteCallBridgeRecord;
import explorviz.live_trace_processing.record.event.remote.ReceivedRemoteCallRecord;
import explorviz.live_trace_processing.record.event.remote.SentRemoteCallRecord;
import explorviz.live_trace_processing.record.event.remote.UnknownReceivedRemoteCallRecord;
import explorviz.live_trace_processing.record.event.statics.AfterFailedStaticOperationEventRecord;
import explorviz.live_trace_processing.record.event.statics.AfterStaticOperationEventRecord;
import explorviz.live_trace_processing.record.event.statics.BeforeStaticOperationEventRecord;
......@@ -141,6 +143,8 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
stringRegistry.putStringRecord(mapId, new String(stringByteArray));
System.out.println(new String(stringByteArray));
checkWaitingMessages();
} else {
buffer.position(buffer.position() - 9);
......@@ -220,9 +224,9 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
buffer.compact();
return;
}
case RemoteCallBridgeRecord.CLAZZ_ID: {
if (buffer.remaining() >= RemoteCallBridgeRecord.COMPRESSED_BYTE_LENGTH) {
readInRemoteCallBridgeEvent(buffer);
case ReceivedRemoteCallRecord.CLAZZ_ID: {
if (buffer.remaining() >= ReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) {
readInReceivedRemoteCallEvent(buffer);
break;
}
buffer.position(buffer.position() - 1);
......@@ -256,6 +260,24 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
buffer.compact();
return;
}
case SentRemoteCallRecord.CLAZZ_ID: {
if (buffer.remaining() >= SentRemoteCallRecord.COMPRESSED_BYTE_LENGTH) {
readInSentRemoteCallEvent(buffer);
break;
}
buffer.position(buffer.position() - 1);
buffer.compact();
return;
}
case UnknownReceivedRemoteCallRecord.CLAZZ_ID: {
if (buffer.remaining() >= UnknownReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH) {
readInUnknownReceivedRemoteCallEvent(buffer);
break;
}
buffer.position(buffer.position() - 1);
buffer.compact();
return;
}
default: {
System.out.println("unknown class id " + clazzId + " at offset "
+ (buffer.position() - 1));
......@@ -375,7 +397,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
hostApplicationMetadata));
}
private final void readInRemoteCallBridgeEvent(final ByteBuffer buffer) {
private final void readInReceivedRemoteCallEvent(final ByteBuffer buffer) {
final int callerHost = buffer.getInt();
final int callerApplication = buffer.getInt();
final long callerTraceId = buffer.getLong();
......@@ -386,13 +408,13 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
final int orderIndex = buffer.getInt();
try {
putInRingBuffer(new RemoteCallBridgeRecord(timestamp,
putInRingBuffer(new ReceivedRemoteCallRecord(timestamp,
stringRegistry.getStringFromId(callerHost),
stringRegistry.getStringFromId(callerApplication), callerTraceId,
callerOrderIndex, traceId, orderIndex, hostApplicationMetadata));
} catch (final IdNotAvailableException e) {
putInWaitingMessages(buffer,
RemoteCallBridgeRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
ReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
}
}
......@@ -439,6 +461,40 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
hostApplicationMetadata));
}
private final void readInSentRemoteCallEvent(final ByteBuffer buffer) {
final long timestamp = buffer.getLong();
final long traceId = buffer.getLong();
final int orderIndex = buffer.getInt();
final int destinationId = 0;
try {
putInRingBuffer(new SentRemoteCallRecord(timestamp,
stringRegistry.getStringFromId(destinationId), traceId, orderIndex,
hostApplicationMetadata));
} catch (final IdNotAvailableException e) {
putInWaitingMessages(buffer, SentRemoteCallRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
}
}
private final void readInUnknownReceivedRemoteCallEvent(final ByteBuffer buffer) {
final long timestamp = buffer.getLong();
final long traceId = buffer.getLong();
final int orderIndex = buffer.getInt();
final int senderId = buffer.getInt();
final int destionationId = buffer.getInt();
try {
putInRingBuffer(new UnknownReceivedRemoteCallRecord(timestamp,
stringRegistry.getStringFromId(senderId),
stringRegistry.getStringFromId(destionationId), traceId, orderIndex,
hostApplicationMetadata));
} catch (final IdNotAvailableException e) {
putInWaitingMessages(buffer,
UnknownReceivedRemoteCallRecord.COMPRESSED_BYTE_LENGTH_WITH_CLAZZ_ID);
}
}
private final void putInWaitingMessages(final ByteBuffer buffer, final int length) {
final byte[] message = new byte[length];
buffer.position(buffer.position() - length);
......@@ -478,8 +534,8 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
case AfterConstructorEventRecord.CLAZZ_ID:
readInAfterConstructorEvent(buffer);
break;
case RemoteCallBridgeRecord.CLAZZ_ID:
readInRemoteCallBridgeEvent(buffer);
case ReceivedRemoteCallRecord.CLAZZ_ID:
readInReceivedRemoteCallEvent(buffer);
break;
case BeforeStaticOperationEventRecord.CLAZZ_ID:
readInBeforeStaticOperationEvent(buffer);
......@@ -490,6 +546,12 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
case AfterStaticOperationEventRecord.CLAZZ_ID:
readInAfterStaticOperationEvent(buffer);
break;
case SentRemoteCallRecord.CLAZZ_ID:
readInSentRemoteCallEvent(buffer);
break;
case UnknownReceivedRemoteCallRecord.CLAZZ_ID:
readInUnknownReceivedRemoteCallEvent(buffer);
break;
default:
break;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment