// CountImpl.java, Count implementation import java.util.*; import java.rmi.*; import java.rmi.server.UnicastRemoteObject; public class CountImpl extends UnicastRemoteObject implements Count { private int sum; // Lista de clientes registrados private Vector clientes = new Vector(); public CountImpl() throws RemoteException { } public void set(int val) throws RemoteException { sum = val; } public void reset() throws RemoteException { sum = 0; } public int get() throws RemoteException { return sum; } public int increment() throws RemoteException { sum++; if (sum%100 == 0) notify(); return sum; } public void addClient(CountClientInterface client) throws RemoteException { clientes.add(client); } public void remClient(CountClientInterface client) throws RemoteException { clientes.remove(client); } private void notify() throws RemoteException { CountClientInterface cci; for (int i=0; i<clientes.size(); ++i) { cci = (CountClientInterface) clientes.elementAt(i); cci.update(sum); } } }