WPILibC++ 2023.4.3-108-ge5452e3
frc::SendableBuilderImpl Class Reference

#include <frc/smartdashboard/SendableBuilderImpl.h>

Inheritance diagram for frc::SendableBuilderImpl:
nt::NTSendableBuilder wpi::SendableBuilder

Public Member Functions

 SendableBuilderImpl ()=default
 
 ~SendableBuilderImpl () override=default
 
 SendableBuilderImpl (SendableBuilderImpl &&)=default
 
SendableBuilderImploperator= (SendableBuilderImpl &&)=default
 
void SetTable (std::shared_ptr< nt::NetworkTable > table)
 Set the network table. More...
 
std::shared_ptr< nt::NetworkTableGetTable () override
 Get the network table. More...
 
bool IsPublished () const override
 Return whether this sendable has an associated table. More...
 
bool IsActuator () const
 Return whether this sendable should be treated as an actuator. More...
 
void Update () override
 Synchronize with network table values by calling the getters for all properties and setters when the network table value has changed. More...
 
void StartListeners ()
 Hook setters for all properties. More...
 
void StopListeners ()
 Unhook setters for all properties. More...
 
void StartLiveWindowMode ()
 Start LiveWindow mode by hooking the setters for all properties. More...
 
void StopLiveWindowMode ()
 Stop LiveWindow mode by unhooking the setters for all properties. More...
 
void ClearProperties () override
 Clear properties. More...
 
void SetSmartDashboardType (std::string_view type) override
 Set the string representation of the named data type that will be used by the smart dashboard for this sendable. More...
 
void SetActuator (bool value) override
 Set a flag indicating if this sendable should be treated as an actuator. More...
 
void SetSafeState (std::function< void()> func) override
 Set the function that should be called to set the Sendable into a safe state. More...
 
void SetUpdateTable (wpi::unique_function< void()> func) override
 Set the function that should be called to update the network table for things other than properties. More...
 
nt::Topic GetTopic (std::string_view key) override
 Add a property without getters or setters. More...
 
void AddBooleanProperty (std::string_view key, std::function< bool()> getter, std::function< void(bool)> setter) override
 Add a boolean property. More...
 
void AddIntegerProperty (std::string_view key, std::function< int64_t()> getter, std::function< void(int64_t)> setter) override
 Add an integer property. More...
 
void AddFloatProperty (std::string_view key, std::function< float()> getter, std::function< void(float)> setter) override
 Add a float property. More...
 
void AddDoubleProperty (std::string_view key, std::function< double()> getter, std::function< void(double)> setter) override
 Add a double property. More...
 
void AddStringProperty (std::string_view key, std::function< std::string()> getter, std::function< void(std::string_view)> setter) override
 Add a string property. More...
 
void AddBooleanArrayProperty (std::string_view key, std::function< std::vector< int >()> getter, std::function< void(std::span< const int >)> setter) override
 Add a boolean array property. More...
 
void AddIntegerArrayProperty (std::string_view key, std::function< std::vector< int64_t >()> getter, std::function< void(std::span< const int64_t >)> setter) override
 Add an integer array property. More...
 
void AddFloatArrayProperty (std::string_view key, std::function< std::vector< float >()> getter, std::function< void(std::span< const float >)> setter) override
 Add a float array property. More...
 
void AddDoubleArrayProperty (std::string_view key, std::function< std::vector< double >()> getter, std::function< void(std::span< const double >)> setter) override
 Add a double array property. More...
 
void AddStringArrayProperty (std::string_view key, std::function< std::vector< std::string >()> getter, std::function< void(std::span< const std::string >)> setter) override
 Add a string array property. More...
 
void AddRawProperty (std::string_view key, std::string_view typeString, std::function< std::vector< uint8_t >()> getter, std::function< void(std::span< const uint8_t >)> setter) override
 Add a raw property. More...
 
void AddSmallStringProperty (std::string_view key, std::function< std::string_view(wpi::SmallVectorImpl< char > &buf)> getter, std::function< void(std::string_view)> setter) override
 
void AddSmallBooleanArrayProperty (std::string_view key, std::function< std::span< const int >(wpi::SmallVectorImpl< int > &buf)> getter, std::function< void(std::span< const int >)> setter) override
 
void AddSmallIntegerArrayProperty (std::string_view key, std::function< std::span< const int64_t >(wpi::SmallVectorImpl< int64_t > &buf)> getter, std::function< void(std::span< const int64_t >)> setter) override
 
void AddSmallFloatArrayProperty (std::string_view key, std::function< std::span< const float >(wpi::SmallVectorImpl< float > &buf)> getter, std::function< void(std::span< const float >)> setter) override
 
void AddSmallDoubleArrayProperty (std::string_view key, std::function< std::span< const double >(wpi::SmallVectorImpl< double > &buf)> getter, std::function< void(std::span< const double >)> setter) override
 
void AddSmallStringArrayProperty (std::string_view key, std::function< std::span< const std::string >(wpi::SmallVectorImpl< std::string > &buf)> getter, std::function< void(std::span< const std::string >)> setter) override
 
void AddSmallRawProperty (std::string_view key, std::string_view typeString, std::function< std::span< uint8_t >(wpi::SmallVectorImpl< uint8_t > &buf)> getter, std::function< void(std::span< const uint8_t >)> setter) override
 
- Public Member Functions inherited from nt::NTSendableBuilder
virtual void SetUpdateTable (wpi::unique_function< void()> func)=0
 Set the function that should be called to update the network table for things other than properties. More...
 
virtual Topic GetTopic (std::string_view key)=0
 Add a property without getters or setters. More...
 
virtual std::shared_ptr< NetworkTableGetTable ()=0
 Get the network table. More...
 
BackendKind GetBackendKind () const override
 Gets the kind of backend being used. More...
 
- Public Member Functions inherited from wpi::SendableBuilder
virtual ~SendableBuilder ()=default
 
virtual void SetSmartDashboardType (std::string_view type)=0
 Set the string representation of the named data type that will be used by the smart dashboard for this sendable. More...
 
virtual void SetActuator (bool value)=0
 Set a flag indicating if this sendable should be treated as an actuator. More...
 
virtual void SetSafeState (std::function< void()> func)=0
 Set the function that should be called to set the Sendable into a safe state. More...
 
virtual void AddBooleanProperty (std::string_view key, std::function< bool()> getter, std::function< void(bool)> setter)=0
 Add a boolean property. More...
 
virtual void AddIntegerProperty (std::string_view key, std::function< int64_t()> getter, std::function< void(int64_t)> setter)=0
 Add an integer property. More...
 
virtual void AddFloatProperty (std::string_view key, std::function< float()> getter, std::function< void(float)> setter)=0
 Add a float property. More...
 
virtual void AddDoubleProperty (std::string_view key, std::function< double()> getter, std::function< void(double)> setter)=0
 Add a double property. More...
 
virtual void AddStringProperty (std::string_view key, std::function< std::string()> getter, std::function< void(std::string_view)> setter)=0
 Add a string property. More...
 
virtual void AddBooleanArrayProperty (std::string_view key, std::function< std::vector< int >()> getter, std::function< void(std::span< const int >)> setter)=0
 Add a boolean array property. More...
 
virtual void AddIntegerArrayProperty (std::string_view key, std::function< std::vector< int64_t >()> getter, std::function< void(std::span< const int64_t >)> setter)=0
 Add an integer array property. More...
 
virtual void AddFloatArrayProperty (std::string_view key, std::function< std::vector< float >()> getter, std::function< void(std::span< const float >)> setter)=0
 Add a float array property. More...
 
virtual void AddDoubleArrayProperty (std::string_view key, std::function< std::vector< double >()> getter, std::function< void(std::span< const double >)> setter)=0
 Add a double array property. More...
 
virtual void AddStringArrayProperty (std::string_view key, std::function< std::vector< std::string >()> getter, std::function< void(std::span< const std::string >)> setter)=0
 Add a string array property. More...
 
virtual void AddRawProperty (std::string_view key, std::string_view typeString, std::function< std::vector< uint8_t >()> getter, std::function< void(std::span< const uint8_t >)> setter)=0
 Add a raw property. More...
 
virtual void AddSmallStringProperty (std::string_view key, std::function< std::string_view(wpi::SmallVectorImpl< char > &buf)> getter, std::function< void(std::string_view)> setter)=0
 Add a string property (SmallString form). More...
 
virtual void AddSmallBooleanArrayProperty (std::string_view key, std::function< std::span< const int >(wpi::SmallVectorImpl< int > &buf)> getter, std::function< void(std::span< const int >)> setter)=0
 Add a boolean array property (SmallVector form). More...
 
virtual void AddSmallIntegerArrayProperty (std::string_view key, std::function< std::span< const int64_t >(wpi::SmallVectorImpl< int64_t > &buf)> getter, std::function< void(std::span< const int64_t >)> setter)=0
 Add an integer array property (SmallVector form). More...
 
virtual void AddSmallFloatArrayProperty (std::string_view key, std::function< std::span< const float >(wpi::SmallVectorImpl< float > &buf)> getter, std::function< void(std::span< const float >)> setter)=0
 Add a float array property (SmallVector form). More...
 
virtual void AddSmallDoubleArrayProperty (std::string_view key, std::function< std::span< const double >(wpi::SmallVectorImpl< double > &buf)> getter, std::function< void(std::span< const double >)> setter)=0
 Add a double array property (SmallVector form). More...
 
virtual void AddSmallStringArrayProperty (std::string_view key, std::function< std::span< const std::string >(wpi::SmallVectorImpl< std::string > &buf)> getter, std::function< void(std::span< const std::string >)> setter)=0
 Add a string array property (SmallVector form). More...
 
virtual void AddSmallRawProperty (std::string_view key, std::string_view typeString, std::function< std::span< uint8_t >(wpi::SmallVectorImpl< uint8_t > &buf)> getter, std::function< void(std::span< const uint8_t >)> setter)=0
 Add a raw property (SmallVector form). More...
 
virtual BackendKind GetBackendKind () const =0
 Gets the kind of backend being used. More...
 
virtual bool IsPublished () const =0
 Return whether this sendable has been published. More...
 
virtual void Update ()=0
 Update the published values by calling the getters for all properties. More...
 
virtual void ClearProperties ()=0
 Clear properties. More...
 

Additional Inherited Members

- Public Types inherited from wpi::SendableBuilder
enum  BackendKind { kUnknown , kNetworkTables }
 The backend kinds used for the sendable builder. More...
 

Constructor & Destructor Documentation

◆ SendableBuilderImpl() [1/2]

frc::SendableBuilderImpl::SendableBuilderImpl ( )
default

◆ ~SendableBuilderImpl()

frc::SendableBuilderImpl::~SendableBuilderImpl ( )
overridedefault

◆ SendableBuilderImpl() [2/2]

frc::SendableBuilderImpl::SendableBuilderImpl ( SendableBuilderImpl &&  )
default

Member Function Documentation

◆ AddBooleanArrayProperty()

void frc::SendableBuilderImpl::AddBooleanArrayProperty ( std::string_view  key,
std::function< std::vector< int >()>  getter,
std::function< void(std::span< const int >)>  setter 
)
overridevirtual

Add a boolean array property.

Parameters
keyproperty name
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ AddBooleanProperty()

void frc::SendableBuilderImpl::AddBooleanProperty ( std::string_view  key,
std::function< bool()>  getter,
std::function< void(bool)>  setter 
)
overridevirtual

Add a boolean property.

Parameters
keyproperty name
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ AddDoubleArrayProperty()

void frc::SendableBuilderImpl::AddDoubleArrayProperty ( std::string_view  key,
std::function< std::vector< double >()>  getter,
std::function< void(std::span< const double >)>  setter 
)
overridevirtual

Add a double array property.

Parameters
keyproperty name
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ AddDoubleProperty()

void frc::SendableBuilderImpl::AddDoubleProperty ( std::string_view  key,
std::function< double()>  getter,
std::function< void(double)>  setter 
)
overridevirtual

Add a double property.

Parameters
keyproperty name
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ AddFloatArrayProperty()

void frc::SendableBuilderImpl::AddFloatArrayProperty ( std::string_view  key,
std::function< std::vector< float >()>  getter,
std::function< void(std::span< const float >)>  setter 
)
overridevirtual

Add a float array property.

Parameters
keyproperty name
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ AddFloatProperty()

void frc::SendableBuilderImpl::AddFloatProperty ( std::string_view  key,
std::function< float()>  getter,
std::function< void(float)>  setter 
)
overridevirtual

Add a float property.

Parameters
keyproperty name
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ AddIntegerArrayProperty()

void frc::SendableBuilderImpl::AddIntegerArrayProperty ( std::string_view  key,
std::function< std::vector< int64_t >()>  getter,
std::function< void(std::span< const int64_t >)>  setter 
)
overridevirtual

Add an integer array property.

Parameters
keyproperty name
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ AddIntegerProperty()

void frc::SendableBuilderImpl::AddIntegerProperty ( std::string_view  key,
std::function< int64_t()>  getter,
std::function< void(int64_t)>  setter 
)
overridevirtual

Add an integer property.

Parameters
keyproperty name
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ AddRawProperty()

void frc::SendableBuilderImpl::AddRawProperty ( std::string_view  key,
std::string_view  typeString,
std::function< std::vector< uint8_t >()>  getter,
std::function< void(std::span< const uint8_t >)>  setter 
)
overridevirtual

Add a raw property.

Parameters
keyproperty name
typeStringtype string
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ AddSmallBooleanArrayProperty()

void frc::SendableBuilderImpl::AddSmallBooleanArrayProperty ( std::string_view  key,
std::function< std::span< const int >(wpi::SmallVectorImpl< int > &buf)>  getter,
std::function< void(std::span< const int >)>  setter 
)
override

◆ AddSmallDoubleArrayProperty()

void frc::SendableBuilderImpl::AddSmallDoubleArrayProperty ( std::string_view  key,
std::function< std::span< const double >(wpi::SmallVectorImpl< double > &buf)>  getter,
std::function< void(std::span< const double >)>  setter 
)
override

◆ AddSmallFloatArrayProperty()

void frc::SendableBuilderImpl::AddSmallFloatArrayProperty ( std::string_view  key,
std::function< std::span< const float >(wpi::SmallVectorImpl< float > &buf)>  getter,
std::function< void(std::span< const float >)>  setter 
)
override

◆ AddSmallIntegerArrayProperty()

void frc::SendableBuilderImpl::AddSmallIntegerArrayProperty ( std::string_view  key,
std::function< std::span< const int64_t >(wpi::SmallVectorImpl< int64_t > &buf)>  getter,
std::function< void(std::span< const int64_t >)>  setter 
)
override

◆ AddSmallRawProperty()

void frc::SendableBuilderImpl::AddSmallRawProperty ( std::string_view  key,
std::string_view  typeString,
std::function< std::span< uint8_t >(wpi::SmallVectorImpl< uint8_t > &buf)>  getter,
std::function< void(std::span< const uint8_t >)>  setter 
)
override

◆ AddSmallStringArrayProperty()

void frc::SendableBuilderImpl::AddSmallStringArrayProperty ( std::string_view  key,
std::function< std::span< const std::string >(wpi::SmallVectorImpl< std::string > &buf)>  getter,
std::function< void(std::span< const std::string >)>  setter 
)
override

◆ AddSmallStringProperty()

void frc::SendableBuilderImpl::AddSmallStringProperty ( std::string_view  key,
std::function< std::string_view(wpi::SmallVectorImpl< char > &buf)>  getter,
std::function< void(std::string_view)>  setter 
)
override

◆ AddStringArrayProperty()

void frc::SendableBuilderImpl::AddStringArrayProperty ( std::string_view  key,
std::function< std::vector< std::string >()>  getter,
std::function< void(std::span< const std::string >)>  setter 
)
overridevirtual

Add a string array property.

Parameters
keyproperty name
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ AddStringProperty()

void frc::SendableBuilderImpl::AddStringProperty ( std::string_view  key,
std::function< std::string()>  getter,
std::function< void(std::string_view)>  setter 
)
overridevirtual

Add a string property.

Parameters
keyproperty name
gettergetter function (returns current value)
settersetter function (sets new value)

Implements wpi::SendableBuilder.

◆ ClearProperties()

void frc::SendableBuilderImpl::ClearProperties ( )
overridevirtual

Clear properties.

Implements wpi::SendableBuilder.

◆ GetTable()

std::shared_ptr< nt::NetworkTable > frc::SendableBuilderImpl::GetTable ( )
overridevirtual

Get the network table.

Returns
The network table

Implements nt::NTSendableBuilder.

◆ GetTopic()

nt::Topic frc::SendableBuilderImpl::GetTopic ( std::string_view  key)
overridevirtual

Add a property without getters or setters.

This can be used to get entry handles for the function called by SetUpdateTable().

Parameters
keyproperty name
Returns
Network table topic

Implements nt::NTSendableBuilder.

◆ IsActuator()

bool frc::SendableBuilderImpl::IsActuator ( ) const

Return whether this sendable should be treated as an actuator.

Returns
True if actuator, false if not.

◆ IsPublished()

bool frc::SendableBuilderImpl::IsPublished ( ) const
overridevirtual

Return whether this sendable has an associated table.

Returns
True if it has a table, false if not.

Implements wpi::SendableBuilder.

◆ operator=()

SendableBuilderImpl & frc::SendableBuilderImpl::operator= ( SendableBuilderImpl &&  )
default

◆ SetActuator()

void frc::SendableBuilderImpl::SetActuator ( bool  value)
overridevirtual

Set a flag indicating if this sendable should be treated as an actuator.

By default this flag is false.

Parameters
valuetrue if actuator, false if not

Implements wpi::SendableBuilder.

◆ SetSafeState()

void frc::SendableBuilderImpl::SetSafeState ( std::function< void()>  func)
overridevirtual

Set the function that should be called to set the Sendable into a safe state.

This is called when entering and exiting Live Window mode.

Parameters
funcfunction

Implements wpi::SendableBuilder.

◆ SetSmartDashboardType()

void frc::SendableBuilderImpl::SetSmartDashboardType ( std::string_view  type)
overridevirtual

Set the string representation of the named data type that will be used by the smart dashboard for this sendable.

Parameters
typedata type

Implements wpi::SendableBuilder.

◆ SetTable()

void frc::SendableBuilderImpl::SetTable ( std::shared_ptr< nt::NetworkTable table)

Set the network table.

Must be called prior to any Add* functions being called.

Parameters
tableNetwork table

◆ SetUpdateTable()

void frc::SendableBuilderImpl::SetUpdateTable ( wpi::unique_function< void()>  func)
overridevirtual

Set the function that should be called to update the network table for things other than properties.

Note this function is not passed the network table object; instead it should use the entry handles returned by GetEntry().

Parameters
funcfunction

Implements nt::NTSendableBuilder.

◆ StartListeners()

void frc::SendableBuilderImpl::StartListeners ( )

Hook setters for all properties.

◆ StartLiveWindowMode()

void frc::SendableBuilderImpl::StartLiveWindowMode ( )

Start LiveWindow mode by hooking the setters for all properties.

Also calls the SafeState function if one was provided.

◆ StopListeners()

void frc::SendableBuilderImpl::StopListeners ( )

Unhook setters for all properties.

◆ StopLiveWindowMode()

void frc::SendableBuilderImpl::StopLiveWindowMode ( )

Stop LiveWindow mode by unhooking the setters for all properties.

Also calls the SafeState function if one was provided.

◆ Update()

void frc::SendableBuilderImpl::Update ( )
overridevirtual

Synchronize with network table values by calling the getters for all properties and setters when the network table value has changed.

Implements wpi::SendableBuilder.


The documentation for this class was generated from the following file: