From 798a0aab2fbb5aed01bbd8419b65a03fb4602b3f Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 3 Apr 2017 15:54:25 +0200 Subject: Make agent simple systemd daemon, add worker stub --- bbot/diagnostics | 84 +++++++++++++------------------------------------------- 1 file changed, 19 insertions(+), 65 deletions(-) (limited to 'bbot/diagnostics') diff --git a/bbot/diagnostics b/bbot/diagnostics index c849aae..6699c45 100644 --- a/bbot/diagnostics +++ b/bbot/diagnostics @@ -61,97 +61,49 @@ namespace bbot const char* name_; }; - class location - { - public: - location () {} - location (string f, uint64_t l, uint64_t c) - : file (move (f)), line (l), column (c) {} - - string file; - uint64_t line; - uint64_t column; - }; - - struct location_prologue_base - { - location_prologue_base (const char* type, - const char* name, - const location& l) - : type_ (type), name_ (name), loc_ (l) {} - - void - operator() (const diag_record& r) const; - - private: - const char* type_; - const char* name_; - const location loc_; - }; - struct basic_mark_base { - using simple_prologue = butl::diag_prologue; - using location_prologue = butl::diag_prologue; + using simple_prologue = butl::diag_prologue; explicit basic_mark_base (const char* type, + const char* indent = "\n ", const char* name = nullptr, const void* data = nullptr, diag_epilogue* epilogue = nullptr) - : type_ (type), name_ (name), data_ (data), epilogue_ (epilogue) {} + : type_ (type), name_ (name), data_ (data), + indent_ (indent), epilogue_ (epilogue) {} simple_prologue operator() () const { - return simple_prologue (epilogue_, type_, name_); - } - - location_prologue - operator() (const location& l) const - { - return location_prologue (epilogue_, type_, name_, l); - } - - template - location_prologue - operator() (const L& l) const - { - return location_prologue ( - epilogue_, type_, name_, get_location (l, data_)); + return simple_prologue (indent_, epilogue_, type_, name_); } - template - location_prologue - operator() (F&& f, L&& l, C&& c) const - { - return location_prologue ( - epilogue_, - type_, - name_, - location (forward (f), forward (l), forward (c))); - } - - protected: + public: const char* type_; const char* name_; const void* data_; + + const char* indent_; diag_epilogue* const epilogue_; }; using basic_mark = butl::diag_mark; - extern const basic_mark error; - extern const basic_mark warn; - extern const basic_mark info; - extern const basic_mark text; + extern basic_mark error; + extern basic_mark warn; + extern basic_mark info; + extern basic_mark text; // trace // + extern const char* trace_type; + extern const char* trace_indent; + struct trace_mark_base: basic_mark_base { explicit - trace_mark_base (const char* name, const void* data = nullptr) - : basic_mark_base ("trace", name, data) {} + trace_mark_base (const char* name, const void* data = nullptr); }; using trace_mark = butl::diag_mark; using tracer = trace_mark; @@ -162,8 +114,10 @@ namespace bbot { explicit fail_mark_base (const char* type, + const char* indent = "\n ", const void* data = nullptr) : basic_mark_base (type, + indent, nullptr, data, [](const diag_record& r) @@ -189,7 +143,7 @@ namespace bbot }; using fail_end = butl::diag_noreturn_end; - extern const fail_mark fail; + extern fail_mark fail; extern const fail_end endf; } -- cgit v1.1