mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-25 01:41:43 +00:00
Adds SetDefault methods to NetworkTables (#54)
There was no way to atomically check for a key in the table, and then setting if it if non existant. Back before persistent this was not a problem, however now it is, as its possible for values to be added before team's robot programs start. This makes the old method of calling Put*** methods in RobotInit invalid. This adds SetDefault methods, which do this atomically.
This commit is contained in:
committed by
Peter Johnson
parent
6615a34e99
commit
58092c5190
@@ -502,6 +502,14 @@ public class NetworkTable implements ITable, IRemote {
|
||||
public boolean putNumber(String key, double value) {
|
||||
return NetworkTablesJNI.putDouble(path + PATH_SEPARATOR + key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean setDefaultNumber(String key, double defaultValue) {
|
||||
return NetworkTablesJNI.setDefaultDouble(path + PATH_SEPARATOR + key,
|
||||
defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
@@ -529,6 +537,14 @@ public class NetworkTable implements ITable, IRemote {
|
||||
public boolean putString(String key, String value) {
|
||||
return NetworkTablesJNI.putString(path + PATH_SEPARATOR + key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean setDefaultString(String key, String defaultValue) {
|
||||
return NetworkTablesJNI.setDefaultString(path + PATH_SEPARATOR + key,
|
||||
defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
@@ -556,6 +572,14 @@ public class NetworkTable implements ITable, IRemote {
|
||||
public boolean putBoolean(String key, boolean value) {
|
||||
return NetworkTablesJNI.putBoolean(path + PATH_SEPARATOR + key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean setDefaultBoolean(String key, boolean defaultValue) {
|
||||
return NetworkTablesJNI.setDefaultBoolean(path + PATH_SEPARATOR + key,
|
||||
defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
@@ -591,6 +615,22 @@ public class NetworkTable implements ITable, IRemote {
|
||||
public boolean putBooleanArray(String key, Boolean[] value) {
|
||||
return putBooleanArray(key, toNative(value));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean setDefaultBooleanArray(String key, boolean[] defaultValue) {
|
||||
return NetworkTablesJNI.setDefaultBooleanArray(path + PATH_SEPARATOR + key,
|
||||
defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean setDefaultBooleanArray(String key, Boolean[] defaultValue) {
|
||||
return NetworkTablesJNI.setDefaultBooleanArray(path + PATH_SEPARATOR + key,
|
||||
toNative(defaultValue));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
@@ -638,6 +678,22 @@ public class NetworkTable implements ITable, IRemote {
|
||||
public boolean putNumberArray(String key, Double[] value) {
|
||||
return putNumberArray(key, toNative(value));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean setDefaultNumberArray(String key, double[] defaultValue) {
|
||||
return NetworkTablesJNI.setDefaultDoubleArray(path + PATH_SEPARATOR + key,
|
||||
defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean setDefaultNumberArray(String key, Double[] defaultValue) {
|
||||
return NetworkTablesJNI.setDefaultDoubleArray(path + PATH_SEPARATOR + key,
|
||||
toNative(defaultValue));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
@@ -677,7 +733,15 @@ public class NetworkTable implements ITable, IRemote {
|
||||
public boolean putStringArray(String key, String[] value) {
|
||||
return NetworkTablesJNI.putStringArray(path + PATH_SEPARATOR + key, value);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean setDefaultStringArray(String key, String[] defaultValue) {
|
||||
return NetworkTablesJNI.setDefaultStringArray(path + PATH_SEPARATOR + key,
|
||||
defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* @deprecated This exception-raising method has been replaced by the
|
||||
@@ -704,6 +768,14 @@ public class NetworkTable implements ITable, IRemote {
|
||||
public boolean putRaw(String key, byte[] value) {
|
||||
return NetworkTablesJNI.putRaw(path + PATH_SEPARATOR + key, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean setDefaultRaw(String key, byte[] defaultValue) {
|
||||
return NetworkTablesJNI.setDefaultRaw(path + PATH_SEPARATOR + key,
|
||||
defaultValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
|
||||
@@ -106,6 +106,14 @@ public class NetworkTablesJNI {
|
||||
public static native double[] getDoubleArray(String key, double[] defaultValue);
|
||||
public static native String[] getStringArray(String key, String[] defaultValue);
|
||||
|
||||
public static native boolean setDefaultBoolean(String key, boolean defaultValue);
|
||||
public static native boolean setDefaultDouble(String key, double defaultValue);
|
||||
public static native boolean setDefaultString(String key, String defaultValue);
|
||||
public static native boolean setDefaultRaw(String key, byte[] defaultValue);
|
||||
public static native boolean setDefaultBooleanArray(String key, boolean[] defaultValue);
|
||||
public static native boolean setDefaultDoubleArray(String key, double[] defaultValue);
|
||||
public static native boolean setDefaultStringArray(String key, String[] defaultValue);
|
||||
|
||||
public static native void setEntryFlags(String key, int flags);
|
||||
public static native int getEntryFlags(String key);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user