Mercurial > thymian
diff 3rdparty/vmime/examples/example6_timeoutHandler.hpp @ 0:a4671277546c tip
created the repository for the thymian project
| author | ferencd |
|---|---|
| date | Tue, 17 Aug 2021 11:19:54 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/3rdparty/vmime/examples/example6_timeoutHandler.hpp Tue Aug 17 11:19:54 2021 +0200 @@ -0,0 +1,48 @@ + + +/** Time out handler. + * Used to stop the current operation after too much time, or if the user + * requested cancellation. + */ +class timeoutHandler : public vmime::net::timeoutHandler +{ +public: + + bool isTimeOut() + { + // This is a cancellation point: return true if you want to cancel + // the current operation. If you return true, handleTimeOut() will + // be called just after this, and before actually cancelling the + // operation + return false; + } + + void resetTimeOut() + { + // Called at the beginning of an operation (eg. connecting, + // a read() or a write() on a socket...) + } + + bool handleTimeOut() + { + // If isTimeOut() returned true, this function will be called. This + // allows you to interact with the user, ie. display a prompt to + // know whether he wants to cancel the operation. + + // If you return true here, the operation will be actually cancelled. + // If not, the time out is reset and the operation continues. + return true; + } +}; + + +class timeoutHandlerFactory : public vmime::net::timeoutHandlerFactory +{ +public: + + vmime::shared_ptr <vmime::net::timeoutHandler> create() + { + return vmime::make_shared <timeoutHandler>(); + } +}; +
