A plugin that provides extra functionality to Fabrique build descriptions. More...
#include <Plugin.h>
Classes | |
class | Descriptor |
Static information about a plugin. More... | |
Public Member Functions | |
const Descriptor & | descriptor () const |
virtual std::shared_ptr < dag::Structure > | Create (dag::DAGBuilder &) const =0 |
Public Member Functions inherited from fabrique::Typed | |
Typed (const Type &t) | |
virtual const Type & | type () const |
Static Public Member Functions | |
static Plugin::Descriptor & | nullPlugin () |
Protected Member Functions | |
Plugin (const Type &, const Descriptor &descriptor) | |
A plugin that provides extra functionality to Fabrique build descriptions.
Plugins are written in C++ to provide functionality that simple shell commands don't express well. For instance, instead of parsing the output of sysctl(8) (turning a typed value into a string and back into a value according to expected type), a sysctl plugin can represent the underlying types correctly. The difference is: if a Fabrique description expects the wrong type, it can receive a type error rather than a syntactically-legal but logically-incorrect reinterpretation (e.g. "0").