예제 #1
0
            public void Visit(object slot)
            {
                var detail = new FreespaceSlotDetail(((Slot)slot));

                if (_enclosing.IsBogusSlot(((Slot)slot).Address(), ((Slot)slot).Length()))
                {
                    _enclosing._bogusSlots.Add(detail);
                }
                _enclosing._overlaps.Add(detail);
            }
예제 #2
0
            public void Visit(object mapping)
            {
                SlotDetail detail = new IdObjectSlotDetail(((IdSlotMapping)mapping)._id, ((IdSlotMapping
                                                                                           )mapping).Slot());

                if (_enclosing.IsBogusSlot(((IdSlotMapping)mapping)._address, ((IdSlotMapping
                                                                                )mapping)._length))
                {
                    _enclosing._bogusSlots.Add(detail);
                }
                if (((IdSlotMapping)mapping)._address > 0)
                {
                    _enclosing._overlaps.Add(detail);
                }
            }
예제 #3
0
            public void Apply(object idSlot)
            {
                var id     = (((int)((Pair)idSlot).first));
                var slot   = ((Slot)((Pair)idSlot).second);
                var detail = id > 0
                    ? new IdObjectSlotDetail(id, slot)
                    : (SlotDetail
                       ) new RawObjectSlotDetail(slot);

                if (_enclosing.IsBogusSlot(((Slot)((Pair)idSlot).second).Address(), ((Slot)(
                                                                                         (Pair)idSlot).second).Length()))
                {
                    _enclosing._bogusSlots.Add(detail);
                }
                _enclosing._overlaps.Add(detail);
            }