internal void HandleEvent(TByteBuffer aPayload) {
Int32 EventTick;
Int32 EventKindInt;
aPayload.Read(out EventTick);
aPayload.Read(out EventKindInt);
var eventKind = (TEventKind) (EventKindInt & EventKindMask);
switch (eventKind) {
case TEventKind.ekChangeObjectEvent:
HandleChangeObject(aPayload);
break;
case TEventKind.ekChangeObjectDataEvent:
HandleChangeObjectData(aPayload);
break;
case TEventKind.ekBuffer:
HandleBuffer(EventTick, aPayload);
break;
case TEventKind.ekNormalEvent:
if (OnNormalEvent != null)
OnNormalEvent(this, aPayload);
break;
case TEventKind.ekTimerTick:
HandleTimerTick(aPayload);
break;
case TEventKind.ekTimerPrepare:
case TEventKind.ekTimerStart:
case TEventKind.ekTimerStop:
HandleTimerCmd(eventKind, aPayload);
break;
case TEventKind.ekStreamHeader:
case TEventKind.ekStreamBody:
case TEventKind.ekStreamTail:
HandleStreamEvent(eventKind, aPayload);
break;
default:
if (OnOtherEvent != null)
OnOtherEvent(this, EventTick, eventKind, aPayload);
break;
}
}