LCOV - code coverage report
Current view: top level - src/tools/kdb/gen/highlevel - highlevel.hpp (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 5 5 100.0 %
Date: 2019-09-12 12:28:41 Functions: 2 3 66.7 %

          Line data    Source code
       1             : /**
       2             :  * @file
       3             :  *
       4             :  * @brief
       5             :  *
       6             :  * @copyright BSD License (see LICENSE.md or https://www.libelektra.org)
       7             :  */
       8             : 
       9             : #ifndef ELEKTRA_KDB_GEN_HIGHLEVEL_HPP
      10             : #define ELEKTRA_KDB_GEN_HIGHLEVEL_HPP
      11             : 
      12             : #include <gen/template.hpp>
      13             : 
      14           9 : class HighlevelGenTemplate : public GenTemplate
      15             : {
      16             :         struct Params
      17             :         {
      18             :                 static const char * InitFunctionName;
      19             :                 static const char * HelpFunctionName;
      20             :                 static const char * SpecloadFunctionName;
      21             :                 static const char * TagPrefix;
      22             :                 static const char * EnumConversion;
      23             :                 static const char * AdditionalHeaders;
      24             :                 static const char * GenerateSetters;
      25             :                 static const char * EmbeddedSpec;
      26             :                 static const char * SpecValidation;
      27             :                 static const char * InstallPrefix;
      28             :         };
      29             : 
      30             : public:
      31           9 :         HighlevelGenTemplate ()
      32           9 :         : GenTemplate ("highlevel", { ".c", ".h", ".spec.eqd", ".mount.sh" },
      33             :                        { "enum.c", "union.c", "struct.c", "struct.alloc.fields.c", "enum.decl.h", "struct.decl.h", "union.decl.h",
      34             :                          "keys.fun.h", "keys.fun.struct.h", "keys.fun.structref.h", "keys.tags.h", "context.fun.h", "context.tags.h" },
      35             :                        {
      36             :                                { Params::InitFunctionName, false },
      37             :                                { Params::HelpFunctionName, false },
      38             :                                { Params::SpecloadFunctionName, false },
      39             :                                { Params::TagPrefix, false },
      40             :                                { Params::EnumConversion, false },
      41             :                                { Params::GenerateSetters, false },
      42             :                                { Params::AdditionalHeaders, false },
      43             :                                { Params::EmbeddedSpec, false },
      44             :                                { Params::SpecValidation, false },
      45         522 :                        })
      46             :         {
      47           9 :         }
      48             : 
      49             : protected:
      50             :         kainjow::mustache::data getTemplateData (const std::string & outputName, const std::string & part, const kdb::KeySet & ks,
      51             :                                                  const std::string & parentKey) const override;
      52             : 
      53             :         std::string escapeFunction (const std::string & str) const override;
      54             :         std::vector<std::string> getActualParts () const override;
      55             : };
      56             : 
      57             : #endif // ELEKTRA_KDB_GEN_HIGHLEVEL_HPP

Generated by: LCOV version 1.13