public int SignalBuffer(Int32 aBufferID, byte[] aBuffer, Int32 aEventFlags = 0) {
var payload = new TByteBuffer();
if (!IsPublished && connection.AutoPublish)
Publish();
if (IsPublished) {
payload.Prepare(ID);
payload.Prepare((Int32) 0); // tick
payload.Prepare((Int32) TEventKind.ekBuffer | (aEventFlags & EventFlagsMask));
payload.Prepare(aBufferID);
payload.Prepare(aBuffer.Length);
payload.Prepare(aBuffer);
payload.PrepareApply();
payload.QWrite(ID);
payload.QWrite((Int32) (0)); // tick
payload.QWrite((Int32) TEventKind.ekBuffer | (aEventFlags & EventFlagsMask));
payload.QWrite(aBufferID);
payload.QWrite(aBuffer.Length);
payload.QWrite(aBuffer);
return connection.WriteCommand(TConnectionPlatform.TCommands.icEvent, payload.Buffer);
}
else
return TConnection.iceNotEventPublished;
}