Skip to content
Snippets Groups Projects
Commit 2d2937b8 authored by Joan Perez Ibarz's avatar Joan Perez Ibarz
Browse files

[iri_base_driver]

 - adding preCloseHook function, still under development
parent 1a81bc65
No related branches found
No related tags found
No related merge requests found
......@@ -80,6 +80,9 @@ class IriBaseDriver : public driver_base::Driver
*/
void setDriverId(const std::string & id);
// typedef boost::function< void() > hookFunction;
hookFunction preCloseHook;
public:
/**
* \brief Constructor
......@@ -200,6 +203,9 @@ class IriBaseDriver : public driver_base::Driver
* \return bool successful
*/
virtual bool stopDriver(void) = 0;
void setPreCloseHook(hookFunction f);
/**
* \brief Destructor
......
......@@ -100,6 +100,18 @@ class IriBaseNodeDriver : public driver_base::DriverNode<Driver>
*/
virtual void postNodeOpenHook(void) = 0;
/**
* \brief main node post open hook
*
*/
void preCloseHook(void);
/**
* \brief node implementation post open hook
*
*/
virtual void preNodeCloseHook(void);
/**
* \brief public node handle communication object
*
......@@ -305,6 +317,18 @@ void IriBaseNodeDriver<Driver>::postOpenHook(void)
postNodeOpenHook();
}
template <class Driver>
void IriBaseNodeDriver<Driver>::preCloseHook(void)
{
ROS_INFO("IriBaseNodeDriver::preCloseHook");
preNodeCloseHook();
}
template <class Driver>
void IriBaseNodeDriver<Driver>::preNodeCloseHook(void)
{
}
template <class Driver>
void IriBaseNodeDriver<Driver>::addDiagnostics(void)
{
......
......@@ -34,6 +34,8 @@ void IriBaseDriver::doOpen(void)
void IriBaseDriver::doClose(void)
{
ROS_INFO("IriBaseDriver::doClose");
preCloseHook();
if(closeDriver()) this->state_ = CLOSED;
}
......@@ -52,6 +54,11 @@ std::string IriBaseDriver::getID(void)
return driver_id_;
}
void IriBaseDriver::setPreCloseHook(hookFunction f)
{
preCloseHook = f;
}
IriBaseDriver::~IriBaseDriver()
{
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment