[sim] WS: Don't call virtual function from destructor

This commit is contained in:
Peter Johnson
2020-08-31 22:14:37 -07:00
parent 63487dca76
commit 6a1e5385e5
18 changed files with 48 additions and 18 deletions

View File

@@ -45,7 +45,7 @@ void HALSimWSProviderAnalogIn::Initialize(WSRegisterFunc webRegisterFunc) {
webRegisterFunc);
}
HALSimWSProviderAnalogIn::~HALSimWSProviderAnalogIn() { CancelCallbacks(); }
HALSimWSProviderAnalogIn::~HALSimWSProviderAnalogIn() { DoCancelCallbacks(); }
void HALSimWSProviderAnalogIn::RegisterCallbacks() {
m_initCbKey = REGISTER_AIN(Initialized, "<init", bool, boolean);
@@ -66,7 +66,9 @@ void HALSimWSProviderAnalogIn::RegisterCallbacks() {
REGISTER_AIN_ACCUM(Deadband, "<accum_deadband", int32_t, int);
}
void HALSimWSProviderAnalogIn::CancelCallbacks() {
void HALSimWSProviderAnalogIn::CancelCallbacks() { DoCancelCallbacks(); }
void HALSimWSProviderAnalogIn::DoCancelCallbacks() {
// Cancel callbacks
HALSIM_CancelAnalogInInitializedCallback(m_channel, m_initCbKey);
HALSIM_CancelAnalogInAverageBitsCallback(m_channel, m_avgbitsCbKey);

View File

@@ -26,7 +26,7 @@ void HALSimWSProviderDIO::Initialize(WSRegisterFunc webRegisterFunc) {
webRegisterFunc);
}
HALSimWSProviderDIO::~HALSimWSProviderDIO() { CancelCallbacks(); }
HALSimWSProviderDIO::~HALSimWSProviderDIO() { DoCancelCallbacks(); }
void HALSimWSProviderDIO::RegisterCallbacks() {
m_initCbKey = REGISTER(Initialized, "<init", bool, boolean);
@@ -35,7 +35,9 @@ void HALSimWSProviderDIO::RegisterCallbacks() {
m_inputCbKey = REGISTER(IsInput, "<input", bool, boolean);
}
void HALSimWSProviderDIO::CancelCallbacks() {
void HALSimWSProviderDIO::CancelCallbacks() { DoCancelCallbacks(); }
void HALSimWSProviderDIO::DoCancelCallbacks() {
HALSIM_CancelDIOInitializedCallback(m_channel, m_initCbKey);
HALSIM_CancelDIOValueCallback(m_channel, m_valueCbKey);
HALSIM_CancelDIOPulseLengthCallback(m_channel, m_pulseLengthCbKey);

View File

@@ -31,7 +31,7 @@ void HALSimWSProviderDriverStation::Initialize(WSRegisterFunc webRegisterFunc) {
}
HALSimWSProviderDriverStation::~HALSimWSProviderDriverStation() {
CancelCallbacks();
DoCancelCallbacks();
}
void HALSimWSProviderDriverStation::RegisterCallbacks() {
@@ -81,7 +81,9 @@ void HALSimWSProviderDriverStation::RegisterCallbacks() {
m_matchTimeCbKey = REGISTER(MatchTime, "<match_time", double, double);
}
void HALSimWSProviderDriverStation::CancelCallbacks() {
void HALSimWSProviderDriverStation::CancelCallbacks() { DoCancelCallbacks(); }
void HALSimWSProviderDriverStation::DoCancelCallbacks() {
HALSIM_CancelDriverStationEnabledCallback(m_enabledCbKey);
HALSIM_CancelDriverStationAutonomousCallback(m_autonomousCbKey);
HALSIM_CancelDriverStationTestCallback(m_testCbKey);

View File

@@ -26,7 +26,7 @@ void HALSimWSProviderEncoder::Initialize(WSRegisterFunc webRegisterFunc) {
webRegisterFunc);
}
HALSimWSProviderEncoder::~HALSimWSProviderEncoder() { CancelCallbacks(); }
HALSimWSProviderEncoder::~HALSimWSProviderEncoder() { DoCancelCallbacks(); }
void HALSimWSProviderEncoder::RegisterCallbacks() {
// Special case for initialization since we will need to send
@@ -57,7 +57,9 @@ void HALSimWSProviderEncoder::RegisterCallbacks() {
m_samplesCbKey = REGISTER(SamplesToAverage, "<samples_to_avg", int32_t, int);
}
void HALSimWSProviderEncoder::CancelCallbacks() {
void HALSimWSProviderEncoder::CancelCallbacks() { DoCancelCallbacks(); }
void HALSimWSProviderEncoder::DoCancelCallbacks() {
HALSIM_CancelEncoderInitializedCallback(m_channel, m_initCbKey);
HALSIM_CancelEncoderCountCallback(m_channel, m_countCbKey);
HALSIM_CancelEncoderPeriodCallback(m_channel, m_periodCbKey);

View File

@@ -17,7 +17,7 @@ void HALSimWSProviderJoystick::Initialize(WSRegisterFunc webregisterFunc) {
webregisterFunc);
}
HALSimWSProviderJoystick::~HALSimWSProviderJoystick() { CancelCallbacks(); }
HALSimWSProviderJoystick::~HALSimWSProviderJoystick() { DoCancelCallbacks(); }
void HALSimWSProviderJoystick::RegisterCallbacks() {
m_dsNewDataCbKey = HALSIM_RegisterDriverStationNewDataCallback(
@@ -62,7 +62,9 @@ void HALSimWSProviderJoystick::RegisterCallbacks() {
this, true);
}
void HALSimWSProviderJoystick::CancelCallbacks() {
void HALSimWSProviderJoystick::CancelCallbacks() { DoCancelCallbacks(); }
void HALSimWSProviderJoystick::DoCancelCallbacks() {
HALSIM_CancelDriverStationNewDataCallback(m_dsNewDataCbKey);
m_dsNewDataCbKey = 0;

View File

@@ -25,7 +25,7 @@ void HALSimWSProviderPWM::Initialize(WSRegisterFunc webRegisterFunc) {
webRegisterFunc);
}
HALSimWSProviderPWM::~HALSimWSProviderPWM() { CancelCallbacks(); }
HALSimWSProviderPWM::~HALSimWSProviderPWM() { DoCancelCallbacks(); }
void HALSimWSProviderPWM::RegisterCallbacks() {
m_initCbKey = REGISTER(Initialized, "<init", bool, boolean);
@@ -36,7 +36,9 @@ void HALSimWSProviderPWM::RegisterCallbacks() {
m_zeroLatchCbKey = REGISTER(ZeroLatch, "<zero_latch", bool, boolean);
}
void HALSimWSProviderPWM::CancelCallbacks() {
void HALSimWSProviderPWM::CancelCallbacks() { DoCancelCallbacks(); }
void HALSimWSProviderPWM::DoCancelCallbacks() {
HALSIM_CancelPWMInitializedCallback(m_channel, m_initCbKey);
HALSIM_CancelPWMSpeedCallback(m_channel, m_speedCbKey);
HALSIM_CancelPWMPositionCallback(m_channel, m_positionCbKey);

View File

@@ -25,7 +25,7 @@ void HALSimWSProviderRelay::Initialize(WSRegisterFunc webRegisterFunc) {
webRegisterFunc);
}
HALSimWSProviderRelay::~HALSimWSProviderRelay() { CancelCallbacks(); }
HALSimWSProviderRelay::~HALSimWSProviderRelay() { DoCancelCallbacks(); }
void HALSimWSProviderRelay::RegisterCallbacks() {
m_initFwdCbKey = REGISTER(InitializedForward, "<init_fwd", bool, boolean);
@@ -34,7 +34,9 @@ void HALSimWSProviderRelay::RegisterCallbacks() {
m_revCbKey = REGISTER(Reverse, "<rev", bool, boolean);
}
void HALSimWSProviderRelay::CancelCallbacks() {
void HALSimWSProviderRelay::CancelCallbacks() { DoCancelCallbacks(); }
void HALSimWSProviderRelay::DoCancelCallbacks() {
HALSIM_CancelRelayInitializedForwardCallback(m_channel, m_initFwdCbKey);
HALSIM_CancelRelayInitializedReverseCallback(m_channel, m_initRevCbKey);
HALSIM_CancelRelayForwardCallback(m_channel, m_fwdCbKey);

View File

@@ -24,7 +24,7 @@ void HALSimWSProviderRoboRIO::Initialize(WSRegisterFunc webRegisterFunc) {
CreateSingleProvider<HALSimWSProviderRoboRIO>("RoboRIO", webRegisterFunc);
}
HALSimWSProviderRoboRIO::~HALSimWSProviderRoboRIO() { CancelCallbacks(); }
HALSimWSProviderRoboRIO::~HALSimWSProviderRoboRIO() { DoCancelCallbacks(); }
void HALSimWSProviderRoboRIO::RegisterCallbacks() {
m_fpgaCbKey = REGISTER(FPGAButton, ">fpga_button", bool, boolean);
@@ -47,7 +47,9 @@ void HALSimWSProviderRoboRIO::RegisterCallbacks() {
m_3v3FaultsCbKey = REGISTER(UserFaults3V3, ">3v3_faults", int32_t, int);
}
void HALSimWSProviderRoboRIO::CancelCallbacks() {
void HALSimWSProviderRoboRIO::CancelCallbacks() { DoCancelCallbacks(); }
void HALSimWSProviderRoboRIO::DoCancelCallbacks() {
HALSIM_CancelRoboRioFPGAButtonCallback(m_fpgaCbKey);
HALSIM_CancelRoboRioVInVoltageCallback(m_vinVoltageCbKey);
HALSIM_CancelRoboRioVInCurrentCallback(m_vinCurrentCbKey);

View File

@@ -26,7 +26,9 @@ void HALSimWSProviderDigitalPWM::Initialize(WSRegisterFunc webRegisterFunc) {
"dPWM", HAL_GetNumDigitalPWMOutputs(), webRegisterFunc);
}
HALSimWSProviderDigitalPWM::~HALSimWSProviderDigitalPWM() { CancelCallbacks(); }
HALSimWSProviderDigitalPWM::~HALSimWSProviderDigitalPWM() {
DoCancelCallbacks();
}
void HALSimWSProviderDigitalPWM::RegisterCallbacks() {
m_initCbKey = REGISTER(Initialized, "<init", bool, boolean);
@@ -34,7 +36,9 @@ void HALSimWSProviderDigitalPWM::RegisterCallbacks() {
m_pinCbKey = REGISTER(Pin, "<dio_pin", int32_t, int);
}
void HALSimWSProviderDigitalPWM::CancelCallbacks() {
void HALSimWSProviderDigitalPWM::CancelCallbacks() { DoCancelCallbacks(); }
void HALSimWSProviderDigitalPWM::DoCancelCallbacks() {
HALSIM_CancelDigitalPWMInitializedCallback(m_channel, m_initCbKey);
HALSIM_CancelDigitalPWMDutyCycleCallback(m_channel, m_dutyCycleCbKey);
HALSIM_CancelDigitalPWMPinCallback(m_channel, m_pinCbKey);

View File

@@ -25,6 +25,7 @@ class HALSimWSProviderAnalogIn : public HALSimWSHalChanProvider {
protected:
void RegisterCallbacks() override;
void CancelCallbacks() override;
void DoCancelCallbacks();
private:
int32_t m_initCbKey = 0;
@@ -48,6 +49,7 @@ class HALSimWSProviderAnalogOut : public HALSimWSHalChanProvider {
protected:
void RegisterCallbacks() override;
void CancelCallbacks() override;
void DoCancelCallbacks();
private:
int32_t m_initCbKey = 0;

View File

@@ -25,6 +25,7 @@ class HALSimWSProviderDIO : public HALSimWSHalChanProvider {
protected:
void RegisterCallbacks() override;
void CancelCallbacks() override;
void DoCancelCallbacks();
private:
int32_t m_initCbKey = 0;

View File

@@ -25,6 +25,7 @@ class HALSimWSProviderDriverStation : public HALSimWSHalProvider {
protected:
void RegisterCallbacks() override;
void CancelCallbacks() override;
void DoCancelCallbacks();
private:
int32_t m_enabledCbKey = 0;

View File

@@ -25,6 +25,7 @@ class HALSimWSProviderEncoder : public HALSimWSHalChanProvider {
protected:
void RegisterCallbacks() override;
void CancelCallbacks() override;
void DoCancelCallbacks();
private:
int32_t m_initCbKey = 0;

View File

@@ -25,6 +25,7 @@ class HALSimWSProviderJoystick : public HALSimWSHalChanProvider {
protected:
void RegisterCallbacks() override;
void CancelCallbacks() override;
void DoCancelCallbacks();
private:
int32_t m_dsNewDataCbKey = 0;

View File

@@ -23,6 +23,7 @@ class HALSimWSProviderPWM : public HALSimWSHalChanProvider {
protected:
void RegisterCallbacks() override;
void CancelCallbacks() override;
void DoCancelCallbacks();
private:
int32_t m_initCbKey = 0;

View File

@@ -23,6 +23,7 @@ class HALSimWSProviderRelay : public HALSimWSHalChanProvider {
protected:
void RegisterCallbacks() override;
void CancelCallbacks() override;
void DoCancelCallbacks();
private:
int32_t m_initFwdCbKey = 0;

View File

@@ -25,6 +25,7 @@ class HALSimWSProviderRoboRIO : public HALSimWSHalProvider {
protected:
void RegisterCallbacks() override;
void CancelCallbacks() override;
void DoCancelCallbacks();
private:
int32_t m_fpgaCbKey = 0;

View File

@@ -23,6 +23,7 @@ class HALSimWSProviderDigitalPWM : public HALSimWSHalChanProvider {
protected:
void RegisterCallbacks() override;
void CancelCallbacks() override;
void DoCancelCallbacks();
private:
int32_t m_initCbKey = 0;