diff options
Diffstat (limited to 'providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/JmDNS.java')
-rw-r--r-- | providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/JmDNS.java | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/JmDNS.java b/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/JmDNS.java new file mode 100644 index 000000000..e0b6c822e --- /dev/null +++ b/providers/bundles/org.eclipse.ecf.provider.jmdns/jmdns/javax/jmdns/JmDNS.java @@ -0,0 +1,179 @@ +///Copyright 2003-2005 Arthur van Hoff, Rick Blair +//Licensed under Apache License version 2.0 +//Original license LGPL + + +package javax.jmdns; + +import java.io.IOException; +import java.net.InetAddress; + +import javax.jmdns.impl.JmDNSImpl; + +/** + * mDNS implementation in Java. + * + * @version %I%, %G% + * @author Arthur van Hoff, Rick Blair, Jeff Sonstein, + * Werner Randelshofer, Pierre Frisch, Scott Lewis, Scott Cytacki + */ +public abstract class JmDNS +{ + /** + * The version of JmDNS. + */ + public static String VERSION = "2.0"; + + /** + * Create an instance of JmDNS. + */ + public static JmDNS create() throws IOException + { + return new JmDNSImpl(); + } + + /** + * Create an instance of JmDNS and bind it to a + * specific network interface given its IP-address. + */ + public static JmDNS create(InetAddress addr) throws IOException + { + return new JmDNSImpl(addr); + } + + /** + * Return the HostName associated with this JmDNS instance. + * Note: May not be the same as what started. The host name is subject to + * negotiation. + */ + public abstract String getHostName(); + + /** + * Return the address of the interface to which this instance of JmDNS is + * bound. + */ + public abstract InetAddress getInterface() throws IOException; + + /** + * Get service information. If the information is not cached, the method + * will block until updated information is received. + * <p/> + * Usage note: Do not call this method from the AWT event dispatcher thread. + * You will make the user interface unresponsive. + * + * @param type fully qualified service type, such as <code>_http._tcp.local.</code> . + * @param name unqualified service name, such as <code>foobar</code> . + * @return null if the service information cannot be obtained + */ + public abstract ServiceInfo getServiceInfo(String type, String name); + + /** + * Get service information. If the information is not cached, the method + * will block for the given timeout until updated information is received. + * <p/> + * Usage note: If you call this method from the AWT event dispatcher thread, + * use a small timeout, or you will make the user interface unresponsive. + * + * @param type full qualified service type, such as <code>_http._tcp.local.</code> . + * @param name unqualified service name, such as <code>foobar</code> . + * @param timeout timeout in milliseconds + * @return null if the service information cannot be obtained + */ + public abstract ServiceInfo getServiceInfo(String type, String name, int timeout); + + /** + * Request service information. The information about the service is + * requested and the ServiceListener.resolveService method is called as soon + * as it is available. + * <p/> + * Usage note: Do not call this method from the AWT event dispatcher thread. + * You will make the user interface unresponsive. + * + * @param type full qualified service type, such as <code>_http._tcp.local.</code> . + * @param name unqualified service name, such as <code>foobar</code> . + */ + public abstract void requestServiceInfo(String type, String name); + + /** + * Request service information. The information about the service is requested + * and the ServiceListener.resolveService method is called as soon as it is available. + * + * @param type full qualified service type, such as <code>_http._tcp.local.</code> . + * @param name unqualified service name, such as <code>foobar</code> . + * @param timeout timeout in milliseconds + */ + public abstract void requestServiceInfo(String type, String name, int timeout); + + /** + * Listen for service types. + * + * @param listener listener for service types + */ + public abstract void addServiceTypeListener(ServiceTypeListener listener) throws IOException; + + /** + * Remove listener for service types. + * + * @param listener listener for service types + */ + public abstract void removeServiceTypeListener(ServiceTypeListener listener); + + /** + * Listen for services of a given type. The type has to be a fully qualified + * type name such as <code>_http._tcp.local.</code>. + * + * @param type full qualified service type, such as <code>_http._tcp.local.</code>. + * @param listener listener for service updates + */ + public abstract void addServiceListener(String type, ServiceListener listener); + + /** + * Remove listener for services of a given type. + * + * @param listener listener for service updates + */ + public abstract void removeServiceListener(String type, ServiceListener listener); + + /** + * Register a service. The service is registered for access by other jmdns clients. + * The name of the service may be changed to make it unique. + */ + public abstract void registerService(ServiceInfo info) throws IOException; + + /** + * Unregister a service. The service should have been registered. + */ + public abstract void unregisterService(ServiceInfo info); + + /** + * Unregister all services. + */ + public abstract void unregisterAllServices(); + + /** + * Register a service type. If this service type was not already known, + * all service listeners will be notified of the new service type. Service types + * are automatically registered as they are discovered. + */ + public abstract void registerServiceType(String type); + + /** + * Close down jmdns. Release all resources and unregister all services. + */ + public abstract void close(); + + /** + * List Services and serviceTypes. + * Debugging Only + */ + public abstract void printServices(); + + /** + * Returns a list of service infos of the specified type. + * + * @param type Service type name, such as <code>_http._tcp.local.</code>. + * @return An array of service instance names. + */ + public abstract ServiceInfo[] list(String type); + +} |