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); } }
public virtual void MarshallAspects(object obj, MarshallingContext context) { Transaction trans = context.Transaction(); ITraverseAspectCommand command = new _MarshallingInfoTraverseAspectCommand_122(context , obj, trans, EnsureFieldList(context)); TraverseAllAspects(context, command); }
// do nothing public override void Marshall(MarshallingContext context, object obj) { Marshall(context.Transaction(), context.Reference(), context, context.IsNew()); }