package com.limegroup.gnutella.auth;
import com.limegroup.gnutella.messages.Message;
/**
* Allows ContentRequests to be sent.
* Different ContentAuthorities can send messages to different folks
* and request permissions from different authorities.
*
* For example..
* A IpPortContentAuthority could send messages to a single IpPort.
* A DhtContentAuthority could send messages to a DHT.
*/
public interface ContentAuthority {
/**
* Initializes this authority. This is allowed to block.
* Returns true if initialization succeeded, false otherwise.
*/
public boolean initialize();
/** Sends a message through this authority. This should not block. */
public void send(Message m);
}