protected Message ReadMessageFromTableEntity(WcfTableEntity entity) { // TODO: stackalloc byte[] data = null; var byteLength = Encoding.UTF8.GetByteCount(entity.Message); data = this.bufferManager.TakeBuffer(byteLength); Encoding.UTF8.GetBytes(entity.Message, 0, entity.Message.Length, data, 0); var buffer = new ArraySegment <byte>(data, 0, byteLength); return(this.DecodeMessage(buffer)); }
protected async Task <Message> PopMessageFromTableAsync(string tableName, TableQuery <WcfTableEntity> tableQuery) { WcfTableEntity entity = null; try { entity = await this.GetTableEntityAsync(tableQuery); return(this.ReadMessageFromTableEntity(entity)); } finally { if (entity != null) { await this.RemoveTableEntityAsync(tableName, entity); } } }
protected async Task <WcfTableEntity> PopEntryFromTableAsync(string tableName) { WcfTableEntity entity = null; try { entity = await this.GetTableEntityAsync(this.BuildTableQuery()); return(entity); } finally { if (entity != null) { await this.RemoveTableEntityAsync(tableName, entity); } } }