summaryrefslogtreecommitdiff
path: root/includes/HelperTasks.h
diff options
context:
space:
mode:
authorNicolas Noble <pixel@nobis-crew.org>2013-08-02 18:36:38 -0700
committerNicolas Noble <pixel@nobis-crew.org>2013-08-02 18:36:38 -0700
commitc6518eb6e1caa68cdf0dc242d52cfc172b96efdc (patch)
tree9a24206fd050f674179c8f5e82b59fcf0f152d24 /includes/HelperTasks.h
parent903974e7b3ceecb977449ac5ea34808de9501997 (diff)
Lua's dumpvars is now properly yielding if needed.
Diffstat (limited to 'includes/HelperTasks.h')
-rw-r--r--includes/HelperTasks.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/includes/HelperTasks.h b/includes/HelperTasks.h
new file mode 100644
index 0000000..6f3f0ff
--- /dev/null
+++ b/includes/HelperTasks.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include <Task.h>
+#include <StacklessTask.h>
+#include <Handle.h>
+
+namespace Balau {
+
+#define COPY_BUFSIZE 4096
+
+class CopyTask : public StacklessTask {
+ public:
+ CopyTask(IO<Handle> s, IO<Handle> d, ssize_t tocopy = -1);
+ virtual const char * getName() const override { return m_name.to_charp(); }
+ virtual void Do();
+ private:
+ char m_buffer[COPY_BUFSIZE];
+ IO<Handle> m_s, m_d;
+ ssize_t m_tocopy, m_current = 0, m_written, m_read;
+ size_t m_towrite;
+ String m_name;
+};
+
+};