Fabrique

A build language for complex systems

 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Pages
fabrique::plugin::Plugin Class Referenceabstract

A plugin that provides extra functionality to Fabrique build descriptions. More...

#include <Plugin.h>

Inheritance diagram for fabrique::plugin::Plugin:
fabrique::Typed fabrique::plugins::SysctlPlugin fabrique::plugins::Which

Classes

class  Descriptor
 Static information about a plugin. More...
 

Public Member Functions

const Descriptordescriptor () 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 Typetype () const
 

Static Public Member Functions

static Plugin::DescriptornullPlugin ()
 

Protected Member Functions

 Plugin (const Type &, const Descriptor &descriptor)
 

Detailed Description

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").

Definition at line 61 of file Plugin.h.


The documentation for this class was generated from the following files: