diff options
Diffstat (limited to 'src/pdmgen.py')
-rwxr-xr-x | src/pdmgen.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/pdmgen.py b/src/pdmgen.py index 070c118..e4a97e7 100755 --- a/src/pdmgen.py +++ b/src/pdmgen.py @@ -413,6 +413,29 @@ class PropertyWatch(HasPropertyIndex): super(PropertyWatch, self).__init__(**kw) +class Callback(HasPropertyIndex): + '''Interface and common logic for callbacks.''' + + def __init__(self, *a, **kw): + super(Callback, self).__init__(**kw) + + +class Journal(Callback, Renderer): + '''Handle the journal callback config file directive.''' + + def __init__(self, *a, **kw): + self.severity = kw.pop('severity') + self.message = kw.pop('message') + super(Journal, self).__init__(**kw) + + def construct(self, loader, indent): + return self.render( + loader, + 'journal.mako.cpp', + c=self, + indent=indent) + + class Everything(Renderer): '''Parse/render entry point.''' @@ -440,6 +463,9 @@ class Everything(Renderer): 'instance': { 'element': Instance, }, + 'callback': { + 'journal': Journal, + }, } if cls not in class_map: @@ -529,6 +555,7 @@ class Everything(Renderer): self.instances = kw.pop('instance', []) self.instancegroups = kw.pop('instancegroup', []) self.watches = kw.pop('watch', []) + self.callbacks = kw.pop('callback', []) super(Everything, self).__init__(**kw) @@ -550,6 +577,7 @@ class Everything(Renderer): instances=self.instances, watches=self.watches, instancegroups=self.instancegroups, + callbacks=self.callbacks, indent=Indent())) if __name__ == '__main__': |