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 005// THIS FILE WAS AUTO-GENERATED BY ./ntcore/generate_topics.py. DO NOT MODIFY 006 007package edu.wpi.first.networktables; 008 009/** NetworkTables Integer topic. */ 010public final class IntegerTopic extends Topic { 011 /** The default type string for this topic type. */ 012 public static final String kTypeString = "int"; 013 014 /** 015 * Construct from a generic topic. 016 * 017 * @param topic Topic 018 */ 019 public IntegerTopic(Topic topic) { 020 super(topic.m_inst, topic.m_handle); 021 } 022 023 /** 024 * Constructor; use NetworkTableInstance.getIntegerTopic() instead. 025 * 026 * @param inst Instance 027 * @param handle Native handle 028 */ 029 public IntegerTopic(NetworkTableInstance inst, int handle) { 030 super(inst, handle); 031 } 032 033 /** 034 * Create a new subscriber to the topic. 035 * 036 * <p>The subscriber is only active as long as the returned object 037 * is not closed. 038 * 039 * <p>Subscribers that do not match the published data type do not return 040 * any values. To determine if the data type matches, use the appropriate 041 * Topic functions. 042 * 043 * @param defaultValue default value used when a default is not provided to a 044 * getter function 045 * @param options subscribe options 046 * @return subscriber 047 */ 048 public IntegerSubscriber subscribe( 049 long defaultValue, 050 PubSubOption... options) { 051 return new IntegerEntryImpl( 052 this, 053 NetworkTablesJNI.subscribe( 054 m_handle, NetworkTableType.kInteger.getValue(), 055 "int", options), 056 defaultValue); 057 } 058 059 /** 060 * Create a new subscriber to the topic, with specified type string. 061 * 062 * <p>The subscriber is only active as long as the returned object 063 * is not closed. 064 * 065 * <p>Subscribers that do not match the published data type do not return 066 * any values. To determine if the data type matches, use the appropriate 067 * Topic functions. 068 * 069 * @param typeString type string 070 * @param defaultValue default value used when a default is not provided to a 071 * getter function 072 * @param options subscribe options 073 * @return subscriber 074 */ 075 public IntegerSubscriber subscribeEx( 076 String typeString, 077 long defaultValue, 078 PubSubOption... options) { 079 return new IntegerEntryImpl( 080 this, 081 NetworkTablesJNI.subscribe( 082 m_handle, NetworkTableType.kInteger.getValue(), 083 typeString, options), 084 defaultValue); 085 } 086 087 /** 088 * Create a new publisher to the topic. 089 * 090 * <p>The publisher is only active as long as the returned object 091 * is not closed. 092 * 093 * <p>It is not possible to publish two different data types to the same 094 * topic. Conflicts between publishers are typically resolved by the server on 095 * a first-come, first-served basis. Any published values that do not match 096 * the topic's data type are dropped (ignored). To determine if the data type 097 * matches, use the appropriate Topic functions. 098 * 099 * @param options publish options 100 * @return publisher 101 */ 102 public IntegerPublisher publish( 103 PubSubOption... options) { 104 return new IntegerEntryImpl( 105 this, 106 NetworkTablesJNI.publish( 107 m_handle, NetworkTableType.kInteger.getValue(), 108 "int", options), 109 0); 110 } 111 112 /** 113 * Create a new publisher to the topic, with type string and initial properties. 114 * 115 * <p>The publisher is only active as long as the returned object 116 * is not closed. 117 * 118 * <p>It is not possible to publish two different data types to the same 119 * topic. Conflicts between publishers are typically resolved by the server on 120 * a first-come, first-served basis. Any published values that do not match 121 * the topic's data type are dropped (ignored). To determine if the data type 122 * matches, use the appropriate Topic functions. 123 * 124 * @param typeString type string 125 * @param properties JSON properties 126 * @param options publish options 127 * @return publisher 128 * @throws IllegalArgumentException if properties is not a JSON object 129 */ 130 public IntegerPublisher publishEx( 131 String typeString, 132 String properties, 133 PubSubOption... options) { 134 return new IntegerEntryImpl( 135 this, 136 NetworkTablesJNI.publishEx( 137 m_handle, NetworkTableType.kInteger.getValue(), 138 typeString, properties, options), 139 0); 140 } 141 142 /** 143 * Create a new entry for the topic. 144 * 145 * <p>Entries act as a combination of a subscriber and a weak publisher. The 146 * subscriber is active as long as the entry is not closed. The publisher is 147 * created when the entry is first written to, and remains active until either 148 * unpublish() is called or the entry is closed. 149 * 150 * <p>It is not possible to use two different data types with the same 151 * topic. Conflicts between publishers are typically resolved by the server on 152 * a first-come, first-served basis. Any published values that do not match 153 * the topic's data type are dropped (ignored), and the entry will show no new 154 * values if the data type does not match. To determine if the data type 155 * matches, use the appropriate Topic functions. 156 * 157 * @param defaultValue default value used when a default is not provided to a 158 * getter function 159 * @param options publish and/or subscribe options 160 * @return entry 161 */ 162 public IntegerEntry getEntry( 163 long defaultValue, 164 PubSubOption... options) { 165 return new IntegerEntryImpl( 166 this, 167 NetworkTablesJNI.getEntry( 168 m_handle, NetworkTableType.kInteger.getValue(), 169 "int", options), 170 defaultValue); 171 } 172 173 /** 174 * Create a new entry for the topic, with specified type string. 175 * 176 * <p>Entries act as a combination of a subscriber and a weak publisher. The 177 * subscriber is active as long as the entry is not closed. The publisher is 178 * created when the entry is first written to, and remains active until either 179 * unpublish() is called or the entry is closed. 180 * 181 * <p>It is not possible to use two different data types with the same 182 * topic. Conflicts between publishers are typically resolved by the server on 183 * a first-come, first-served basis. Any published values that do not match 184 * the topic's data type are dropped (ignored), and the entry will show no new 185 * values if the data type does not match. To determine if the data type 186 * matches, use the appropriate Topic functions. 187 * 188 * @param typeString type string 189 * @param defaultValue default value used when a default is not provided to a 190 * getter function 191 * @param options publish and/or subscribe options 192 * @return entry 193 */ 194 public IntegerEntry getEntryEx( 195 String typeString, 196 long defaultValue, 197 PubSubOption... options) { 198 return new IntegerEntryImpl( 199 this, 200 NetworkTablesJNI.getEntry( 201 m_handle, NetworkTableType.kInteger.getValue(), 202 typeString, options), 203 defaultValue); 204 } 205 206}