private void BlockAlign(MarshallingContext context, int precedingLength) { int totalLength = context.Container().BlockConverter().BlockAlignedBytes(precedingLength + Length()); int newLength = totalLength - precedingLength; BlockAlign(newLength); }
private void WriteIndex(MarshallingContext context, int masterAddress, int position ) { if (_indexedField != null) { // for now this is a String index only, it takes the entire slot. StatefulBuffer buffer = new StatefulBuffer(context.Transaction(), UnblockedLength ()); int blockedPosition = context.Container().BlockConverter().BytesToBlocks(position ); int indexID = masterAddress + blockedPosition; buffer.SetID(indexID); buffer.Address(indexID); TransferContentTo(buffer, UnblockedLength()); _indexedField.AddIndexEntry(context.Transaction(), context.ObjectID(), buffer); } }