package lcm.lcm; /** A provider implements a communications modality for LCM. (I.e., a URL handler.) The provider should call LCM.receiveMessage() upon receipt of a message. LCM.receiveMessage() is thread-safe and can be called from any thread. **/ public interface Provider { /** Publish() will be called when an application sends a message, and could be called on an arbitrary thread. **/ public void publish(String channel, byte data[], int offset, int len); /** subscribe() will be called when a channel subscription has been made. Providers that do not use a broadcast communications mechanism could use this notification to establish communications with additional hosts. **/ public void subscribe(String channel); /** unsubscribe() will be called when a channel subscription is cancelled. **/ public void unsubscribe(String channel); /** * close() will be called when the application no longer requires the provider * and wishes to free the resources used by the provider. For example, * file handles and network sockets should be closed. After this method is * called, the results of any calls to publish or subscribe are undefined. */ public void close(); }