mirror of
https://github.com/wjwwood/serial.git
synced 2026-01-22 19:54:57 +08:00
Merge branch 'boostless' of github.com:wjwwood/serial into boostless
Conflicts: include/serial/serial_listener.h src/impl/unix.cc
This commit is contained in:
commit
66036f21c2
@ -1,6 +1,8 @@
|
||||
find_path(serial_INCLUDE_DIRS serial.h serial_listener.h /usr/include/serial "$ENV{NAMER_ROOT}")
|
||||
find_path(serial_INCLUDE_DIRS serial.h serial_listener.h /usr/include/serial
|
||||
/usr/local/include/serial "$ENV{NAMER_ROOT}")
|
||||
|
||||
find_library(serial_LIBRARIES serial /usr/lib "$ENV{NAMER_ROOT}")
|
||||
find_library(serial_LIBRARIES serial /usr/lib /usr/local/lib
|
||||
"$ENV{NAMER_ROOT}")
|
||||
|
||||
set(serial_FOUND TRUE)
|
||||
|
||||
|
||||
@ -90,31 +90,6 @@ typedef boost::function<void(const std::string&)> DataCallback;
|
||||
*/
|
||||
typedef boost::function<bool(const std::string&)> ComparatorType;
|
||||
|
||||
/*!
|
||||
* This function type describes the prototype for the logging callbacks.
|
||||
*
|
||||
* The function takes a std::string reference and returns nothing. It is
|
||||
* called from the library when a logging message occurs. This
|
||||
* allows the library user to hook into this and integrate it with their own
|
||||
* logging system. It can be set with any of the set<log level>Handler
|
||||
* functions.
|
||||
*
|
||||
* \see SerialListener::setInfoHandler, SerialListener::setDebugHandler,
|
||||
* SerialListener::setWarningHandler
|
||||
*/
|
||||
typedef boost::function<void(const std::string&)> LoggingCallback;
|
||||
|
||||
/*!
|
||||
* This function type describes the prototype for the exception callback.
|
||||
*
|
||||
* The function takes a std::exception reference and returns nothing. It is
|
||||
* called from the library when an exception occurs in a library thread.
|
||||
* This exposes these exceptions to the user so they can to error handling.
|
||||
*
|
||||
* \see SerialListener::setExceptionHandler
|
||||
*/
|
||||
typedef boost::function<void(const std::exception&)> ExceptionCallback;
|
||||
|
||||
/*!
|
||||
* This function type describes the prototype for the tokenizer callback.
|
||||
*
|
||||
@ -138,6 +113,33 @@ typedef boost::function<void(const std::exception&)> ExceptionCallback;
|
||||
typedef boost::function<void(const std::string&, std::vector<TokenPtr>&)>
|
||||
TokenizerType;
|
||||
|
||||
#if 0
|
||||
/*!
|
||||
* This function type describes the prototype for the logging callbacks.
|
||||
*
|
||||
* The function takes a std::string reference and returns nothing. It is
|
||||
* called from the library when a logging message occurs. This
|
||||
* allows the library user to hook into this and integrate it with their own
|
||||
* logging system. It can be set with any of the set<log level>Handler
|
||||
* functions.
|
||||
*
|
||||
* \see SerialListener::setInfoHandler, SerialListener::setDebugHandler,
|
||||
* SerialListener::setWarningHandler
|
||||
*/
|
||||
typedef boost::function<void(const std::string&)> LoggingCallback;
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* This function type describes the prototype for the exception callback.
|
||||
*
|
||||
* The function takes a std::exception reference and returns nothing. It is
|
||||
* called from the library when an exception occurs in a library thread.
|
||||
* This exposes these exceptions to the user so they can to error handling.
|
||||
*
|
||||
* \see SerialListener::setExceptionHandler
|
||||
*/
|
||||
typedef boost::function<void(const std::exception&)> ExceptionCallback;
|
||||
|
||||
/*!
|
||||
* Represents a filter which new data is passed through.
|
||||
*
|
||||
@ -472,6 +474,7 @@ public:
|
||||
|
||||
/***** Hooks and Handlers ******/
|
||||
|
||||
#if 0
|
||||
/*!
|
||||
* Sets the handler to be called when a lines is not caught by a filter.
|
||||
*
|
||||
@ -579,6 +582,23 @@ public:
|
||||
setWarningHandler (LoggingCallback warning_handler) {
|
||||
this->warn = warning_handler;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*!
|
||||
* Sets the function to be called when an exception occurs internally.
|
||||
*
|
||||
* This allows you to hook into the exceptions that occur in threads inside
|
||||
* the serial listener library.
|
||||
*
|
||||
* \param exception_handler A function pointer to the callback to handle new
|
||||
* interal exceptions.
|
||||
*
|
||||
* \see serial::ExceptionCallback
|
||||
*/
|
||||
void
|
||||
setWarningHandler (ExceptionCallback exception_handler) {
|
||||
this->handle_exc = exception_handler;
|
||||
}
|
||||
|
||||
/***** Static Functions ******/
|
||||
|
||||
@ -772,10 +792,12 @@ private:
|
||||
// Tokenizer
|
||||
TokenizerType tokenize;
|
||||
|
||||
#if 0
|
||||
// Logging handlers
|
||||
LoggingCallback warn;
|
||||
LoggingCallback info;
|
||||
LoggingCallback debug;
|
||||
#endif
|
||||
|
||||
// Exception handler
|
||||
ExceptionCallback handle_exc;
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
|
||||
/***** Inline Functions *****/
|
||||
|
||||
#if 0
|
||||
inline void defaultWarningCallback(const std::string& msg) {
|
||||
std::cout << "SerialListener Warning: " << msg << std::endl;
|
||||
}
|
||||
@ -15,6 +16,7 @@ inline void defaultDebugCallback(const std::string& msg) {
|
||||
inline void defaultInfoCallback(const std::string& msg) {
|
||||
std::cout << "SerialListener Info: " << msg << std::endl;
|
||||
}
|
||||
#endif
|
||||
|
||||
inline void defaultExceptionCallback(const std::exception &error) {
|
||||
std::cerr << "SerialListener Unhandled Exception: " << error.what();
|
||||
@ -38,9 +40,11 @@ SerialListener::default_handler(const std::string &token) {
|
||||
SerialListener::SerialListener() : listening(false), chunk_size_(5) {
|
||||
// Set default callbacks
|
||||
this->handle_exc = defaultExceptionCallback;
|
||||
#if 0
|
||||
this->info = defaultInfoCallback;
|
||||
this->debug = defaultDebugCallback;
|
||||
this->warn = defaultWarningCallback;
|
||||
#endif
|
||||
|
||||
// Default handler stuff
|
||||
this->_default_handler = NULL;
|
||||
@ -112,9 +116,6 @@ SerialListener::stopListening() {
|
||||
|
||||
this->data_buffer = "";
|
||||
this->serial_port_ = NULL;
|
||||
|
||||
// Delete all the filters
|
||||
this->removeAllFilters();
|
||||
}
|
||||
|
||||
size_t
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user