001// Copyright (c) FIRST and other WPILib contributors.
002// Open Source Software; you can modify and/or share it under the terms of
003// the WPILib BSD license file in the root directory of this project.
004
005package edu.wpi.first.util;
006
007/** Class to resolve a service over mDNS. */
008public class MulticastServiceResolver implements AutoCloseable {
009  private final int m_handle;
010
011  /**
012   * Creates a MulticastServiceResolver.
013   *
014   * @param serviceType service type to look for
015   */
016  public MulticastServiceResolver(String serviceType) {
017    m_handle = WPIUtilJNI.createMulticastServiceResolver(serviceType);
018  }
019
020  @Override
021  public void close() {
022    WPIUtilJNI.freeMulticastServiceResolver(m_handle);
023  }
024
025  public void start() {
026    WPIUtilJNI.startMulticastServiceResolver(m_handle);
027  }
028
029  public void stop() {
030    WPIUtilJNI.stopMulticastServiceResolver(m_handle);
031  }
032
033  public boolean hasImplementation() {
034    return WPIUtilJNI.getMulticastServiceResolverHasImplementation(m_handle);
035  }
036
037  public int getEventHandle() {
038    return WPIUtilJNI.getMulticastServiceResolverEventHandle(m_handle);
039  }
040
041  public ServiceData[] getData() {
042    return WPIUtilJNI.getMulticastServiceResolverData(m_handle);
043  }
044}