示例#1
0
 @Override
 public synchronized void refresh(Ice.Current c) {
   if (_destroy) {
     throw new Ice.ObjectNotExistException();
   }
   _timestamp = System.currentTimeMillis();
 }
示例#2
0
  protected synchronized void remove(BookDescription description) throws DatabaseException {
    try {
      String[] isbnSeq = _authors.get(description.authors);

      assert isbnSeq != null;

      int i;
      for (i = 0; i < isbnSeq.length; ++i) {
        if (isbnSeq[i].equals(description.isbn)) {
          break;
        }
      }

      assert i < isbnSeq.length;

      if (isbnSeq.length == 1) {
        //
        // If there are no further associated isbn numbers then remove
        // the record.
        //
        _authors.fastRemove(description.authors);
      } else {
        //
        // Remove the isbn number from the sequence and write
        // back the new record.
        //
        String[] newIsbnSeq = new String[isbnSeq.length - 1];
        System.arraycopy(isbnSeq, 0, newIsbnSeq, 0, i);
        if (i < isbnSeq.length - 1) {
          System.arraycopy(isbnSeq, i + 1, newIsbnSeq, i, isbnSeq.length - i - 1);
        }

        _authors.fastPut(description.authors, newIsbnSeq);
      }

      //
      // This can throw EvictorDeactivatedException (which
      // indicates an internal error). The exception is
      // currently ignored.
      //
      _evictor.remove(createBookIdentity(description.isbn));
    } catch (Freeze.DatabaseException ex) {
      DatabaseException e = new DatabaseException();
      e.message = ex.message;
      throw e;
    }
  }
示例#3
0
  public synchronized BookPrx createBook(BookDescription description, Ice.Current current)
      throws DatabaseException, BookExistsException {
    BookPrx book = isbnToBook(description.isbn, current.adapter);

    try {
      book.ice_ping();

      //
      // The book already exists.
      //
      throw new BookExistsException();
    } catch (Ice.ObjectNotExistException e) {
      //
      // Book doesn't exist, ignore the exception.
      //
    }

    //
    // Create a new book Servant.
    //
    BookI bookI = new BookI(this);
    bookI.description = description;

    Ice.Identity ident = createBookIdentity(description.isbn);

    //
    // Create a new Ice Object in the evictor, using the new
    // identity and the new Servant.
    //
    // This can throw EvictorDeactivatedException (which indicates
    // an internal error). The exception is currently ignored.
    //
    _evictor.add(bookI, ident);

    try {
      //
      // Add the isbn number to the authors map.
      //
      String[] isbnSeq = _authors.get(description.authors);
      int length = (isbnSeq == null) ? 0 : isbnSeq.length;
      String[] newIsbnSeq = new String[length + 1];

      if (isbnSeq != null) {
        System.arraycopy(isbnSeq, 0, newIsbnSeq, 0, length);
      }
      newIsbnSeq[length] = description.isbn;

      _authors.fastPut(description.authors, newIsbnSeq);

      return book;
    } catch (Freeze.DatabaseException ex) {
      DatabaseException e = new DatabaseException();
      e.message = ex.message;
      throw e;
    }
  }
示例#4
0
 @Override
 public void sayHello(Ice.Current current) {
   java.util.Map<String, String> env = System.getenv();
   String lang = env.containsKey("LANG") ? env.get("LANG") : "en";
   String greeting = "Hello, ";
   if (lang.equals("fr")) {
     greeting = "Bonjour, ";
   } else if (lang.equals("de")) {
     greeting = "Hallo, ";
   } else if (lang.equals("es")) {
     greeting = "Hola, ";
   } else if (lang.equals("it")) {
     greeting = "Ciao, ";
   }
   System.out.println(greeting + _serviceName);
 }
示例#5
0
 public SessionI(String name) {
   _name = name;
   _timestamp = System.currentTimeMillis();
   System.out.println("The session " + _name + " is now created.");
 }
 public static void main(String[] args) {
   Subscriber app = new Subscriber();
   int status = app.main("Subscriber", args, "config.sub");
   System.exit(status);
 }
示例#7
0
 public static void main(String[] args) {
   Client app = new Client();
   int status = app.main("Client", args, "config.client");
   System.exit(status);
 }
示例#8
0
 public static void main(String[] args) {
   Server app = new Server();
   int status = app.main("Server", args, "config.server");
   System.exit(status);
 }
示例#9
0
 public static void main(String[] args) {
   Publisher app = new Publisher();
   int status = app.main("Publisher", args, "config.pub");
   System.exit(status);
 }