/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sun.jini.outrigger; import com.sun.jini.admin.DestroyAdmin; import net.jini.id.Uuid; import java.rmi.Remote; import java.rmi.RemoteException; import net.jini.admin.JoinAdmin; import net.jini.core.transaction.Transaction; import net.jini.core.transaction.TransactionException; import net.jini.space.JavaSpace; /** * The interface that is used by the <code>AdminProxy</code> to talk * to the server. In other words, this is the server's analog to the * <code>JavaSpaceAdmin</code> interface. * * @author Sun Microsystems, Inc. * * @see OutriggerServerImpl#AdminProxy * @see JavaSpaceAdmin */ interface OutriggerAdmin extends Remote, DestroyAdmin, JoinAdmin { /** Return the space administered by this object. */ JavaSpace space() throws RemoteException; /** * Return the remote iterator object needed by * <code>JavaSpaceAdmin.contents</code>. */ Uuid contents(EntryRep tmpl, Transaction txn) throws TransactionException, RemoteException; /** * Fetch up to <code>max</code> <code>EntryRep</code> objects from * the specified iteration. * * @param iterationUuid The <code>Uuid</code> of the iteration * to fetch entries from. * @param max Advice on the number of entries to return * @param entryUuid <code>Uuid</code> of the last entry received by the * caller. If this does not match the ID of the last * entry sent by the iterator will re-send that last * batch in place of a new batch. May be * <code>null</code> in which case a new batch will be * sent. The first call to <code>next()</code> should * have <code>id</code> set to <code>null</code> */ EntryRep[] nextReps(Uuid iterationUuid, int max, Uuid entryUuid) throws RemoteException; /** * Delete the given entry if the given iteration is still * valid and the entry was retured by the last call to * <code>nextReps</code>. * @param iterationUuid The <code>Uuid</code> of a valid * iteration. * @param entryUuid the <code>Uuid</code> of the entry * to be deleted. */ void delete(Uuid iterationUuid, Uuid entryUuid) throws RemoteException; /** * Forget about the indicated iteration * @param iterationUuid The <code>Uuid</code> iteration to close. */ void close(Uuid iterationUuid) throws RemoteException; }