/home/andrew/Documents/cellml-api-doxygen/interfaces/CellML_Context.idl Source File

CellML_Context.idl
Go to the documentation of this file.
1 #include "CellML_APISPEC.idl"
2 
9 module cellml_context
10 {
21  {
23  {
25  SERVICE
26  };
27 
31  readonly attribute ModuleTypes moduleType;
32 
36  readonly attribute wstring moduleName;
37 
42  readonly attribute wstring moduleDescription;
43 
48  readonly attribute wstring moduleVersion;
49 
54  readonly attribute wstring moduleIconURL;
55 
62  void unload();
63  };
64 #pragma cross-module-inheritance
65 
67  {
71  CellMLModule nextModule();
72  };
73 #pragma terminal-interface
74 
75  interface ModelNode;
76 
78  {
82  ModelNode nextModelNode();
83  };
84 #pragma terminal-interface
85 
90  {
95  void moduleRegistered(in CellMLModule mod);
96 
101  void moduleDeregistered(in CellMLModule mod);
102  };
103 #pragma terminal-interface
104 
110  {
115  void registerModule(in CellMLModule mod);
116 
121  void deregisterModule(in CellMLModule mod);
122 
129  CellMLModule findModuleByName(in wstring moduleName,
130  in wstring moduleVersion)
132 
143  void requestModuleByName(in wstring moduleName, in wstring moduleVersion)
145 
150  void addMonitor(in CellMLModuleMonitor moduleMonitor);
151 
157  void removeMonitor(in CellMLModuleMonitor moduleMonitor);
158 
163  CellMLModuleIterator iterateModules();
164  };
165 #pragma terminal-interface
166 
178  {
191  void setUserData(in wstring type, in wstring key, in XPCOM::IObject data);
192 
205  XPCOM::IObject getUserData(in wstring type, in wstring key)
207  };
208 #pragma terminal-interface
209 
210  interface ModelList;
211  interface ModelNode;
212 
217  {
227  void modelRenamed(in ModelNode renamedNode,
228  in wstring newName);
229 
236  void modelReplaced(in ModelNode changedNode,
237  in cellml_api::Model newModel);
238 
246  void changesFlushed(in ModelNode changedNode);
247 
252  void ownerChanged(in ModelNode changedNode, in XPCOM::IObject newOwner);
253 
259  void modelFrozenStateChanged(in ModelNode changedNode,
260  in boolean newState);
261  };
262 #pragma terminal-interface
263 
268  {
277  void modelAdded(in ModelNode newNode, in short depth);
278 
287  void modelRemoved(in ModelNode oldNode, in short depth);
288  };
289 #pragma terminal-interface
290 
296  {
300  attribute wstring name;
301 
308  ModelNode getLatestDerivative();
309 
315  ModelNode getWritable();
316 
322  attribute boolean isFrozen;
323 
328  readonly attribute unsigned long modificationTimestamp;
329 
333  void stampModifiedNow();
334 
339 
347  void flushChanges();
348 
363 
367  readonly attribute ModelList derivedModels;
368 
374  void addModelMonitor(in ModelNodeMonitor monitor);
375 
380  void removeModelMonitor(in ModelNodeMonitor monitor);
381 
386  readonly attribute ModelList parentList;
387 
394  attribute boolean dirty;
395  };
396 #pragma terminal-interface
397 
399  {
405  void addModelMonitor(in ModelNodeMonitor monitor);
406 
411  void removeModelMonitor(in ModelNodeMonitor monitor);
412 
418  void addListMonitor(in ModelListMonitor monitor);
419 
424  void removeListMonitor(in ModelListMonitor monitor);
425 
432  ModelNode makeNode(in cellml_api::Model mod);
433 
441  void addModel(in ModelNode node);
442 
447  void removeModel(in ModelNode node);
448 
453  ModelNodeIterator iterateModelNodes();
454 
459  readonly attribute ModelNode parentNode;
460  };
461 #pragma terminal-interface
462 
468  {
472  readonly attribute CellMLModuleManager moduleManager;
473 
478 
483 
487  readonly attribute ModelList loadedModels;
488  };
489 #pragma terminal-interface
490 };