Package linda

Examples of linda.LindaArgs


    while (true) {
      synchronized (tuplespaceEx) {
        // Look for sub patterns (may be speedup)
        if (tuplespaceEx.contains(pattern)) {
          LindaArgs result = new LindaArgs(pattern);
          pattern.applyResult(result);
          if (remove) {
            tuplespaceEx.remove(pattern)
          }
          return true;
        }
       
        // More general search
        for (Iterator<LindaArgs> iterator = tuplespaceEx.iterator(); iterator.hasNext();) {
          LindaArgs tuple = iterator.next();
          if (tuple.matchTuples(pattern)) {
            LindaArgs result = new LindaArgs(tuple);
            pattern.applyResult(result);
            if (remove) {
              iterator.remove()
            }
            return true;
View Full Code Here


    room.increment();
    room.getChanges().awaitUninterruptibly();
  }

  protected void notifyNext(List<Integer> typesPath) {
    LindaArgs newTupleForwarded = newTuples.get(typesPath);
    signalTuple(typesPath, newTupleForwarded);
  }
View Full Code Here

    // Path specifies content of tuple
    // Leaf holds whole tuple.
    Lock lock = getLock(typesPath);
        lock.lock();
        try {
      LindaArgs temp = new LindaArgs(args);
      TupleSpaceTree leaf = typePathSpace.update_values(temp);
      leaf.setValue(args);
      leaf.increment();

      // Poke waiting threads.
View Full Code Here

    TupleSpaceTree leaf;
    Lock lock = getLock(typesPath);
        lock.lock();
        try {
        while (true) {
        LindaArgs temp = new LindaArgs(pattern);
        leaf = typePathSpace.find(temp);
        if (leaf != null) {
          if (decrement) {
            leaf.decrement()
          } else {
            notifyNext(typesPath);
          }
          break;
        }
        if (nonBlocking) {
          return false;
        }
        awaitTuple(typesPath, pattern);
        }
        } finally {
            lock.unlock();
        }

        pattern.applyResult(new LindaArgs(leaf.getValue()));
    return true;
  }
View Full Code Here

  @Override
  public void input(LindaArgs pattern) {
    while (true) {
      synchronized (tuplespace) {
        for (Iterator<LindaArgs> iterator = tuplespace.iterator(); iterator.hasNext();) {
          LindaArgs tuple = iterator.next();
          if (tuple.matchTuples(pattern)) {
            LindaArgs result = new LindaArgs(tuple);
            iterator.remove();
           
            pattern.applyResult(result);
            return;
          }
View Full Code Here

  @Override
  public void read(LindaArgs pattern) {
    while (true) {
      synchronized (tuplespace) {
        for (Iterator<LindaArgs> iterator = tuplespace.iterator(); iterator.hasNext();) {
          LindaArgs tuple = iterator.next();
          if (tuple.matchTuples(pattern)) {
            LindaArgs result = new LindaArgs(tuple);

            pattern.applyResult(result);
            return;
          }
        }
View Full Code Here

  @Override
  public boolean tryInput(LindaArgs pattern) {
    synchronized (tuplespace) {
      for (Iterator<LindaArgs> iterator = tuplespace.iterator(); iterator.hasNext();) {
        LindaArgs tuple = iterator.next();
        if (tuple.matchTuples(pattern)) {
          LindaArgs result = new LindaArgs(tuple);
          iterator.remove();

          pattern.applyResult(result);
          return true;
        }
View Full Code Here

  @Override
  public boolean tryRead(LindaArgs pattern) {
    synchronized (tuplespace) {
      for (Iterator<LindaArgs> iterator = tuplespace.iterator(); iterator.hasNext();) {
        LindaArgs tuple = iterator.next();
        if (tuple.matchTuples(pattern)) {
          LindaArgs result = new LindaArgs(tuple);

          pattern.applyResult(result);
          return true;
        }
      }
View Full Code Here

TOP

Related Classes of linda.LindaArgs

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.