001/*----------------------------------------------------------------------------*/
002/* Copyright (c) FIRST 2016-2017. All Rights Reserved.                        */
003/* Open Source Software - may be modified and shared by FRC teams. The code   */
004/* must be accompanied by the FIRST BSD license file in the root directory of */
005/* the project.                                                               */
006/*----------------------------------------------------------------------------*/
007
008package edu.wpi.first.wpilibj;
009
010import edu.wpi.first.wpilibj.tables.ITable;
011
012
013/**
014 * The base interface for objects that can be sent over the network through network tables.
015 */
016public interface Sendable {
017  /**
018   * Initializes a table for this {@link Sendable} object.
019   *
020   * @param subtable The table to put the values in.
021   */
022  void initTable(ITable subtable);
023
024  /**
025   * The table that is associated with this {@link Sendable}.
026   *
027   * @return the table that is currently associated with the {@link Sendable}.
028   */
029  ITable getTable();
030
031  /**
032   * The string representation of the named data type that will be used by the smart dashboard for
033   * this {@link Sendable}.
034   *
035   * @return The type of this {@link Sendable}.
036   */
037  String getSmartDashboardType();
038}