aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/test/script/builtin.hxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2019-09-10 23:23:43 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2019-09-27 18:04:30 +0300
commitdbed808c7d534069f76e63a1a68a85f30d2be81c (patch)
tree3161d9c9617f2fccf37bd278f0c9bf45fad2e20e /libbuild2/test/script/builtin.hxx
parent6e84c0f9c5e4d7d98d2a352eec6bc19de0d75d28 (diff)
Move testscript builtins to libbutl
Diffstat (limited to 'libbuild2/test/script/builtin.hxx')
-rw-r--r--libbuild2/test/script/builtin.hxx74
1 files changed, 0 insertions, 74 deletions
diff --git a/libbuild2/test/script/builtin.hxx b/libbuild2/test/script/builtin.hxx
deleted file mode 100644
index b340335..0000000
--- a/libbuild2/test/script/builtin.hxx
+++ /dev/null
@@ -1,74 +0,0 @@
-// file : libbuild2/test/script/builtin.hxx -*- C++ -*-
-// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-// license : MIT; see accompanying LICENSE file
-
-#ifndef LIBBUILD2_TEST_SCRIPT_BUILTIN_HXX
-#define LIBBUILD2_TEST_SCRIPT_BUILTIN_HXX
-
-#include <map>
-
-#include <libbuild2/types.hxx>
-#include <libbuild2/utility.hxx>
-
-namespace build2
-{
- namespace test
- {
- namespace script
- {
- class scope;
-
- // A process/thread-like object representing a running builtin.
- //
- // For now, instead of allocating the result storage dynamically, we
- // expect it to be provided by the caller.
- //
- class builtin
- {
- public:
- uint8_t
- wait () {if (t_.joinable ()) t_.join (); return r_;}
-
- ~builtin () {wait ();}
-
- public:
- builtin (uint8_t& r, thread&& t = thread ()): r_ (r), t_ (move (t)) {}
-
- builtin (builtin&&) = default;
-
- private:
- uint8_t& r_;
- thread t_;
- };
-
- // Start builtin command. Throw system_error on failure.
- //
- // Note that unlike argc/argv, our args don't include the program name.
- //
- using builtin_func = builtin (scope&,
- uint8_t& result,
- const strings& args,
- auto_fd in, auto_fd out, auto_fd err);
-
- class builtin_map: public std::map<string, builtin_func*>
- {
- public:
- using base = std::map<string, builtin_func*>;
- using base::base;
-
- // Return NULL if not a builtin.
- //
- builtin_func*
- find (const string& n) const
- {
- auto i (base::find (n));
- return i != end () ? i->second : nullptr;
- }
- };
-
- extern const builtin_map builtins;
- }
- }
-}
-
-#endif // LIBBUILD2_TEST_SCRIPT_BUILTIN_HXX