Package com.sun.sgs.app

Examples of com.sun.sgs.app.DataManager


    /** {@inheritDoc} */
    @Override
    public E poll() {
  E element = null;
  if (headRef != null) {
      DataManager dataManager = AppContext.getDataManager();
      dataManager.markForUpdate(this);
      Entry<E> head = getHeadForUpdate();
      element = head.getElement();
      headRef = head.nextEntryRef;
      if (headRef == null) {
    // last element removed
    tailRef = null;
      }
      dataManager.removeObject(head);
      dataManager.removeObject(element);
  }
  return element;
    }
View Full Code Here


    /* -- Implement Object.hashCode -- */

    /** {@inheritDoc} */
    @Override
    public int hashCode() {
  DataManager dataManager = AppContext.getDataManager();
  return dataManager.createReference(this).getId().hashCode();
    }
View Full Code Here

    public boolean equals(Object o) {
        if (o == null || !(o instanceof ManagedQueue)) {
            return false;
        }
        ManagedQueue<E> d = Objects.uncheckedCast(o);
        DataManager dm = AppContext.getDataManager();
        return dm.createReference(this).getId().equals(
                dm.createReference(d).getId());
    }
View Full Code Here

        } catch (MissingResourceException mre) {
            cm = null;
        }
        channelManager = cm;

        DataManager dm;
        try {
            dm = managerComponents.getComponent(DataManager.class);
        } catch (MissingResourceException mre) {
            dm = null;
        }
View Full Code Here

     * regarding the structure's performance.
     */
    public ScalableDeque() {
        backingMap = new ScalableHashMap<Element<E>, Long>();

        DataManager dm = AppContext.getDataManager();
        backingMapRef = dm.createReference(backingMap);

        // initialize the pointers to the front and end of the deque
        // to null.  However, the reference to these pointers will
        // always be non-null
        ManagedSerializable<ManagedReference<Element<E>>> head =
                new ManagedSerializable<ManagedReference<Element<E>>>(null);
        ManagedSerializable<Long> headCount =
                new ManagedSerializable<Long>(-1L);

        ManagedSerializable<ManagedReference<Element<E>>> tail =
                new ManagedSerializable<ManagedReference<Element<E>>>(null);
        ManagedSerializable<Long> tailCount =
                new ManagedSerializable<Long>(0L);

        headElement = dm.createReference(head);
        headCounter = dm.createReference(headCount);
        tailElement = dm.createReference(tail);
        tailCounter = dm.createReference(tailCount);
    }
View Full Code Here

     *
     * @param e the new head {@code Element}.
     */
    private void addToHead(Element<E> e) {

        DataManager dm = AppContext.getDataManager();

        // short-circuit case if this element is the only element in
        // the deque (i.e. the deque was empty)
        if (headElement.get().get() == null) {
            ManagedReference<Element<E>> ref = dm.createReference(e);
            headElement.get().set(ref);
            tailElement.get().set(ref);
            return;
        }

        Element<E> oldHead = headElement();
        headElement.get().set(dm.createReference(e));
        e.setPrev(null);
        e.setNext(oldHead);
        oldHead.setPrev(e);
    }
View Full Code Here

     *
     * @param e the new tail {@code Element}.
     */
    private void addToTail(Element<E> e) {

        DataManager dm = AppContext.getDataManager();

        // short-circuit case if this element is the only element in
        // the deque (i.e. the deque was empty)
        if (tailElement.get().get() == null) {
            ManagedReference<Element<E>> ref = dm.createReference(e);
            headElement.get().set(ref);
            tailElement.get().set(ref);
            return;
        }

        Element<E> oldTail = tailElement();
        tailElement.get().set(dm.createReference(e));
        e.setPrev(oldTail);
        e.setNext(null);
        oldTail.setNext(e);
    }
View Full Code Here

        if (o == null || !(o instanceof ScalableDeque)) {
            return false;
        }
        ScalableDeque<E> d = uncheckedCast(o);
        DataManager dm = AppContext.getDataManager();
        return dm.createReference(this).equals(dm.createReference(d));
    }
View Full Code Here

       
        // update the references to the front and back of the list, if
        // necessary.  We rely on the invariants that the previous and
        // next element references will only be null if an element is
        // at an end of the list.
        DataManager dm = AppContext.getDataManager();
        if (e.prevElement == null) {
            headElement.get().set((next == null)
                                  ? null : dm.createReference(next));
        }
        if (e.nextElement == null) {
            tailElement.get().set((prev == null)
                                  ? null : dm.createReference(prev));
        }
        AppContext.getDataManager().removeObject(e);

        return value;
    }
View Full Code Here

     */
    public void removingObject() {
        clear();

        // Remove the ManagedSerializable objects as well
        DataManager dm = AppContext.getDataManager();
        dm.removeObject(backingMap);
        dm.removeObject(headElement.get());
        dm.removeObject(headCounter.get());
        dm.removeObject(tailElement.get());
        dm.removeObject(tailCounter.get());
    }
View Full Code Here

TOP

Related Classes of com.sun.sgs.app.DataManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.