public StatefulBuffer readStatefulBufferById(Transaction trans, int id, boolean lastCommitted) { if (id <= 0) { throw new IllegalArgumentException("id=" + id); } Slot slot = lastCommitted ? trans.idSystem().committedSlot(id) : trans.idSystem().currentSlot(id); if (DTrace.enabled) { DTrace.SLOT_READ.logLength(id, slot); } return readStatefulBufferBySlot(trans, id, slot); }
private Constraint addEvaluationToAllConstraints(QConEvaluation eval) { if (i_constraints.size() == 0) { _trans .container() .classCollection() .iterateTopLevelClasses( new Visitor4() { public void visit(Object obj) { ClassMetadata classMetadata = (ClassMetadata) obj; QConClass qcc = new QConClass(_trans, classMetadata.classReflector()); addConstraint(qcc); toConstraint(i_constraints).or(qcc); } }); } Iterator4 i = iterateConstraints(); while (i.moveNext()) { ((QCon) i.current()).addConstraint(eval); } // FIXME: should return valid Constraint object return null; }
private void debugCheckBuffer(ByteArrayBuffer buffer, FreeSlotNode node) { if (!(buffer instanceof StatefulBuffer)) { return; } Transaction trans = ((StatefulBuffer) buffer).transaction(); if (!(trans.container() instanceof IoAdaptedObjectContainer)) { return; } StatefulBuffer checker = trans.container().getWriter(trans, node._peer._key, node._key); checker.read(); for (int i = 0; i < node._key; i++) { if (checker.readByte() != (byte) 'X') { System.out.println("!!! Free space corruption at:" + node._peer._key); break; } } }
public RawClassSpec readSpec(Transaction trans, ByteArrayBuffer reader) { byte[] nameBytes = readName(trans, reader); String className = trans.container().stringIO().read(nameBytes); readMetaClassID(reader); // skip int ancestorID = reader.readInt(); reader.incrementOffset(Const4.INT_LENGTH); // index ID int numFields = reader.readInt(); return new RawClassSpec(className, ancestorID, numFields); }
private ReflectClass reflectClassForClass(Object example) { if (example instanceof ReflectClass) { return (ReflectClass) example; } if (example instanceof Class) { return _trans.reflector().forClass((Class) example); } return null; }
public final boolean delete4( Transaction transaction, ObjectReference ref, Object obj, int cascade, boolean userCall) { int id = ref.getID(); StatefulBuffer reader = readStatefulBufferById(transaction, id); if (reader != null) { if (obj != null) { if ((!showInternalClasses()) && Const4.CLASS_INTERNAL.isAssignableFrom(obj.getClass())) { return false; } } reader.setCascadeDeletes(cascade); transaction.idSystem().notifySlotDeleted(id, SlotChangeFactory.USER_OBJECTS); ClassMetadata classMetadata = ref.classMetadata(); classMetadata.delete(reader, obj); return true; } return false; }
@Override public boolean isDeleted(Transaction trans, int id) { return trans.idSystem().isDeleted(id); }
public final Slot allocateSlotForNewUserObject(Transaction trans, int id, int length) { Slot slot = allocateSlot(length); trans.idSystem().notifySlotCreated(id, slot, SlotChangeFactory.USER_OBJECTS); return slot; }
public final void rollback1(Transaction trans) { trans.rollback(); }
public final int idForNewUserObject(Transaction trans) { return trans.idSystem().newId(SlotChangeFactory.USER_OBJECTS); }
public void commit1(Transaction trans) { trans.commit(); }
public byte[] readName(Transaction trans, ByteArrayBuffer reader) { byte[] name = readName(trans.container().stringIO(), reader); return name; }
public void captureQueryResultConfig() { final Config4Impl config = _trans.container().config(); _evaluationMode = config.evaluationMode(); _prefetchDepth = config.prefetchDepth(); _prefetchCount = config.prefetchObjectCount(); }
protected ObjectContainerBase stream() { return _trans.container(); }