public WriteUpdateProcessor(LocalTransaction transaction, int id, ClassMetadata clazz , ArrayType typeInfo) { _transaction = transaction; _id = id; _clazz = clazz; _typeInfo = typeInfo; }
internal override void DeleteMembers(DeleteContextImpl context, ArrayType arrayType , bool isUpdate) { if (arrayType == ArrayType.PlainArray) { new ArrayHandler(TypeHandler(), true).DeletePrimitiveEmbedded((StatefulBuffer) context .Buffer(), this); } else { if (arrayType == ArrayType.MultidimensionalArray) { new MultidimensionalArrayHandler(TypeHandler(), true).DeletePrimitiveEmbedded((StatefulBuffer ) context.Buffer(), this); } } }
public sealed override void WriteUpdate(Transaction trans, Pointer4 pointer, ClassMetadata classMetadata, ArrayType arrayType, ByteArrayBuffer buffer) { MsgD msg = Msg.WriteUpdate.GetWriter(trans, pointer, classMetadata, arrayType.Value (), buffer); WriteBatchedMessage(msg); }
public override void WriteUpdateAdjustIndexes(int id, ClassMetadata classMetadata , ArrayType arrayType) { }
public abstract void WriteUpdate(Transaction trans, Pointer4 pointer, ClassMetadata classMetadata, ArrayType arrayType, ByteArrayBuffer buffer);
public virtual void PurgeFieldIndexEntriesOnUpdate(Db4objects.Db4o.Internal.Transaction transaction, ArrayType arrayType) { if (!UpdateDepth().CanSkip(_reference)) { transaction.WriteUpdateAdjustIndexes(_reference.GetID(), _reference.ClassMetadata (), arrayType); } }
internal virtual void DeleteMembers(DeleteContextImpl context, ArrayType arrayType , bool isUpdate) { var buffer = (StatefulBuffer) context.Buffer(); var preserveCascade = context.CascadeDeleteDepth(); try { if (CascadeOnDelete()) { if (ClassReflector().IsCollection()) { buffer.SetCascadeDeletes(CollectionDeleteDepth(context)); } else { buffer.SetCascadeDeletes(1); } } Handlers4.FieldAwareTypeHandler(CorrectHandlerVersion(context)).DeleteMembers(context , isUpdate); } catch (Exception e) { // This a catch for changed class hierarchies. // It's very ugly to catch all here but it does // help to heal migration from earlier db4o // versions. var dp = Container()._handlers.DiagnosticProcessor(); if (dp.Enabled()) { dp.DeletionFailed(); } } buffer.SetCascadeDeletes(preserveCascade); }
public override void WriteUpdateAdjustIndexes(int id, ClassMetadata clazz, ArrayType typeInfo) { new WriteUpdateProcessor(this, id, clazz, typeInfo).Run(); }
public sealed override void WriteUpdate(Transaction trans, Pointer4 pointer, ClassMetadata classMetadata, ArrayType arrayType, ByteArrayBuffer buffer) { int address = pointer.Address(); if (address == 0) { address = AllocateSlotForUserObjectUpdate(trans, pointer.Id(), pointer.Length()). Address(); } WriteEncrypt(buffer, address, 0); }
public abstract void WriteUpdateAdjustIndexes(int id, ClassMetadata clazz, ArrayType typeInfo);
public abstract void WriteUpdateAdjustIndexes(int id, ClassMetadata clazz, ArrayType typeInfo);