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>();
+	}
+};
+