The Meta-Environment API

module-manager.tb

Go to the documentation of this file.
00001 #ifndef __MODULE_MANAGER__
00002 #define __MODULE_MANAGER__
00003 
00004 #include <module-manager.idef>
00005 #include <attribute-changed-event.tb>
00006 #include <dependencies-changed-event.tb>
00007 #include <undefined.h>
00008 #include <graph-namespace.h>
00009 
00010 process MM-RegisterAttributeUpdateRule(Namespace: term, Key: term, Rule: term, Value: term) is
00011   snd-msg(mm-register-attribute-update-rule(Namespace, Key, Rule, Value))
00012 
00013 process MM-NotifyAboutChangedAttributes is
00014 let
00015   Event: attribute-changed-event,
00016   Namespace: term,
00017   Key: term,
00018   OldValue: term,
00019   NewValue: term,
00020   ModuleId: module-id
00021 in
00022   (
00023     rec-msg(mm-attribute-changed(ModuleId?, Namespace?, Key?, OldValue?, NewValue?))
00024     . ACE-MakeEvent(ModuleId, Namespace, Key, OldValue, NewValue, Event?)
00025     . snd-note(mm-attribute-changed(Event))
00026   ) * delta
00027 endlet
00028 
00029 toolbus(MM-NotifyAboutChangedAttributes)
00030 
00031 process MM-SetModuleGraphAttribute(ModuleId: module-id, Key: term, Value: term) is
00032   MM-SetAttribute(ModuleId, GRAPH_NAMESPACE, Key, Value)
00033 
00034 process MM-CreateModule(ModuleId: module-id?) is
00035   snd-msg(mm-create-module)
00036   . rec-msg(mm-module-created(ModuleId?))
00037   . snd-note(mm-module-created(ModuleId))
00038 
00039 process MM-GetModuleIdByAttribute(Namespace: term, Key: term, Value: term, ModuleId: term?) is
00040   snd-msg(mm-get-module-id-by-attribute(Namespace, Key, Value))
00041   .
00042   (
00043     rec-msg(mm-module-id(Namespace, Key, Value, ModuleId?))
00044   +
00045     rec-msg(mm-no-such-module(Namespace, Key, Value))
00046     . ModuleId := UNDEFINED 
00047   )
00048 
00049 process MM-GetAllModules(Modules: list?) is
00050   snd-msg(mm-get-all-modules)
00051   . rec-msg(mm-modules(Modules?))
00052 
00053 process MM-DeleteModule(ModuleId: module-id) is
00054   snd-msg(mm-delete-module(ModuleId))
00055   . snd-note(mm-module-deleted(ModuleId))
00056 
00057 process MM-SetAttribute(ModuleId: module-id, Namespace: term, Key: term, Value: term) is
00058   snd-msg(mm-add-attribute(ModuleId, Namespace, Key, Value))
00059 
00060 process MM-HasAttribute(ModuleId: module-id, Namespace: term, Key: term, HasAttribute: bool?) is
00061 let
00062   Value: term
00063 in
00064   snd-msg(mm-get-attribute(ModuleId, Namespace, Key))
00065   .
00066   (
00067     rec-msg(mm-attribute(ModuleId, Namespace, Key, Value?))
00068     . HasAttribute := true
00069   +
00070     rec-msg(mm-no-such-module(ModuleId, Namespace, Key))
00071     . HasAttribute := false
00072   +
00073     rec-msg(mm-no-such-key(ModuleId, Namespace, Key))
00074     . HasAttribute := false
00075   )
00076 endlet
00077 
00078 process MM-GetAttribute(ModuleId: module-id, Namespace: term, Key: term, Value: term?) is
00079   snd-msg(mm-get-attribute(ModuleId, Namespace, Key))
00080   .
00081   (
00082     rec-msg(mm-attribute(ModuleId, Namespace, Key, Value?))
00083   +
00084     rec-msg(mm-no-such-module(ModuleId, Namespace, Key))
00085     . printf("module-manager - MM-GetAttribute: Unregistered moduleid exception\n")
00086     . printf("ModuleId: [%t], Namespace: [%t], Key: [%t]\n", ModuleId, Namespace, Key)
00087     . shutdown("")
00088   + 
00089     rec-msg(mm-no-such-key(ModuleId, Namespace, Key))
00090     . printf("module-manager - MM-GetAttribute: Unregistered key exception\n")
00091     . printf("ModuleId: [%t], Namespace: [%t], Key: [%t]\n", ModuleId, Namespace, Key)
00092     . shutdown("")
00093   )
00094 
00095 process MM-GetAllAttributes(ModuleId: module-id, Attributes: term?) is
00096   snd-msg(mm-get-all-attributes(ModuleId))
00097   .
00098   (
00099     rec-msg(mm-attributes(ModuleId, Attributes?))
00100   +
00101     rec-msg(mm-no-such-module(ModuleId))
00102     . Attributes := UNDEFINED
00103   )
00104 
00105 process MM-AddModuleDependency(ModuleId: module-id, Dependency: term) is
00106 let
00107   Event: dependencies-changed-event
00108 in
00109   snd-msg(mm-add-dependency(ModuleId, Dependency))
00110   . DCE-MakeEvent(ModuleId, Event?)
00111   . snd-note(mm-dependencies-changed(Event))
00112 endlet
00113 
00114 process MM-GetDependencies(Dependencies: list?) is
00115   snd-msg(mm-get-dependencies)
00116   . rec-msg(mm-dependencies(Dependencies?))
00117 
00118 process MM-GetModuleDependencies(ModuleId: module-id, Dependencies: list?) is
00119   snd-msg(mm-get-children-modules(ModuleId))
00120   .
00121   (
00122     rec-msg(mm-children-modules(ModuleId, Dependencies?))
00123   +
00124     rec-msg(mm-no-such-module(ModuleId))
00125     . Dependencies := UNDEFINED
00126   )
00127 
00128 process MM-GetAllModuleDependencies(ModuleId: module-id, Dependencies: list?) is
00129   snd-msg(mm-get-all-children-modules(ModuleId))
00130   .
00131   (
00132     rec-msg(mm-all-children-modules(ModuleId, Dependencies?))
00133   +
00134     rec-msg(mm-no-such-module(ModuleId))
00135     . Dependencies := []
00136   )
00137 
00138 process MM-GetAllModuleParents(ModuleId: module-id, Parents: list?) is
00139   snd-msg(mm-get-all-parent-modules(ModuleId))
00140   .
00141   (
00142     rec-msg(mm-all-parent-modules(ModuleId, Parents?))
00143   +
00144     rec-msg(mm-no-such-module(ModuleId))
00145     . Parents := []
00146   )
00147 
00148 process MM-GetModuleParents(ModuleId: module-id, Parents: list?) is
00149   snd-msg(mm-get-parent-modules(ModuleId))
00150   .
00151   (
00152     rec-msg(mm-parent-modules(ModuleId, Parents?))
00153   +
00154     rec-msg(mm-no-such-module(ModuleId))
00155     . Parents := []
00156   )
00157 
00158 process MM-GetClosableModules(ModuleId: module-id, Modules: list?) is
00159   snd-msg(mm-get-closable-modules(ModuleId))
00160   . rec-msg(mm-closable-modules(ModuleId, Modules?))
00161 
00162 process MM-DeleteModuleDependencies(ModuleId: module-id) is
00163 let
00164   Event: dependencies-changed-event
00165 in
00166   snd-msg(mm-delete-dependencies(ModuleId))
00167   . DCE-MakeEvent(ModuleId, Event?)
00168   . snd-note(mm-dependencies-changed(Event))
00169 endlet
00170 
00171 process MM-GetModuleGraph(Namespace: term, Graph: term?) is
00172   snd-msg(mm-get-module-graph(Namespace))
00173   . rec-msg(mm-module-graph(Namespace, Graph?))
00174 
00175 process MM-Subscribe-Attribute-Changed(ModuleId: module-id, Namespace: term, Key: term, OldValue: term, NewValue: term) is
00176   subscribe(mm-attribute-changed(attribute-changed-event(ModuleId, Namespace, Key, OldValue, NewValue)))
00177 
00178 process MM-Subscribe-Dependencies-Changed(ModuleId: module-id) is
00179   subscribe(mm-dependencies-changed(dependencies-changed-event(ModuleId)))
00180 
00181 #endif /* __MODULE_MANAGER__ */

Generated on Fri Sep 12 13:08:53 2008 for meta by  doxygen 1.4.6