private void InitializeMessage(PortMessage existingMessage, MemoryRegion data, short dataLength) { if (dataLength > Win32.PortMessageMaxDataLength) { throw new ArgumentOutOfRangeException("Data length is too large."); } if (dataLength < 0) { throw new ArgumentOutOfRangeException("Data length cannot be negative."); } _message = new PortMessageStruct(); _message.DataLength = dataLength; _message.TotalLength = (short)(_portMessageSize + dataLength); _message.DataInfoOffset = 0; if (existingMessage != null) { _message.ClientId = existingMessage.ClientId; _message.MessageId = existingMessage.MessageId; } _data = data; _referencedData = data; _referencedData.Reference(); }
internal PortMessage(MemoryRegion headerAndData) { _message = headerAndData.ReadStruct<PortMessageStruct>(); _data = new MemoryRegion(headerAndData, _portMessageSize, _message.DataLength); _referencedData = headerAndData; _referencedData.Reference(); }
internal PortMessage(MemoryRegion headerAndData) { _message = headerAndData.ReadStruct <PortMessageStruct>(); _data = new MemoryRegion(headerAndData, _portMessageSize, _message.DataLength); _referencedData = headerAndData; _referencedData.Reference(); }
private void InitializeMessage(PortMessage existingMessage, MemoryRegion data, short dataLength) { if (dataLength > Win32.PortMessageMaxDataLength) throw new ArgumentOutOfRangeException("Data length is too large."); if (dataLength < 0) throw new ArgumentOutOfRangeException("Data length cannot be negative."); _message = new PortMessageStruct(); _message.DataLength = dataLength; _message.TotalLength = (short)(_portMessageSize + dataLength); _message.DataInfoOffset = 0; if (existingMessage != null) { _message.ClientId = existingMessage.ClientId; _message.MessageId = existingMessage.MessageId; } _data = data; _referencedData = data; _referencedData.Reference(); }
internal void SetHeader(MemoryRegion data) { _message = data.ReadStruct<PortMessageStruct>(); }
internal void SetHeader(MemoryRegion data) { _message = data.ReadStruct <PortMessageStruct>(); }