package com.workshare.msnos.core;
import java.util.Set;
import com.workshare.msnos.core.protocols.ip.Endpoint;
/**
* An interface that represents
* an agent in a cloud
*
* @author bbossola
* @see Cloud
*/
public interface Agent extends Identifiable {
/* (non-Javadoc)
* @see com.workshare.msnos.core.Identifiable#getIden()
*/
Iden getIden();
/**
* Returns the cloud this agent is connected to
*
* @return the connected cloud or null if not connected
*/
Cloud getCloud();
/**
* Returns the endpoints exposed by this agent
*
* @return the list of such endpoints
*/
Set<Endpoint> getEndpoints();
/**
* Returns the last time this access was seen
*
* @return last time seen
*/
long getAccessTime();
/**
* Allows to "touch" an agent, resetting his access time to now
*/
void touch();
/**
* Returns the ring this agent is connected to
*
* @return the ring who's this agent is connected to
*/
Ring getRing();
}