/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 #pragma user-callback
105 
111  {
116  void registerModule(in CellMLModule mod);
117 
122  void deregisterModule(in CellMLModule mod);
123 
130  CellMLModule findModuleByName(in wstring moduleName,
131  in wstring moduleVersion)
133 
144  void requestModuleByName(in wstring moduleName, in wstring moduleVersion)
146 
151  void addMonitor(in CellMLModuleMonitor moduleMonitor);
152 
158  void removeMonitor(in CellMLModuleMonitor moduleMonitor);
159 
164  CellMLModuleIterator iterateModules();
165  };
166 #pragma terminal-interface
167 
179  {
192  void setUserData(in wstring type, in wstring key, in XPCOM::IObject data);
193 
206  XPCOM::IObject getUserData(in wstring type, in wstring key)
208  };
209 #pragma terminal-interface
210 
211  interface ModelList;
212  interface ModelNode;
213 
218  {
228  void modelRenamed(in ModelNode renamedNode,
229  in wstring newName);
230 
237  void modelReplaced(in ModelNode changedNode,
238  in cellml_api::Model newModel);
239 
247  void changesFlushed(in ModelNode changedNode);
248 
253  void ownerChanged(in ModelNode changedNode, in XPCOM::IObject newOwner);
254 
260  void modelFrozenStateChanged(in ModelNode changedNode,
261  in boolean newState);
262  };
263 #pragma terminal-interface
264 
269  {
278  void modelAdded(in ModelNode newNode, in short depth);
279 
288  void modelRemoved(in ModelNode oldNode, in short depth);
289  };
290 #pragma terminal-interface
291 #pragma user-callback
292 
298  {
302  attribute wstring name;
303 
310  ModelNode getLatestDerivative();
311 
317  ModelNode getWritable();
318 
324  attribute boolean isFrozen;
325 
330  readonly attribute unsigned long modificationTimestamp;
331 
335  void stampModifiedNow();
336 
341 
349  void flushChanges();
350 
365 
369  readonly attribute ModelList derivedModels;
370 
376  void addModelMonitor(in ModelNodeMonitor monitor);
377 
382  void removeModelMonitor(in ModelNodeMonitor monitor);
383 
388  readonly attribute ModelList parentList;
389 
396  attribute boolean dirty;
397  };
398 #pragma terminal-interface
399 
401  {
407  void addModelMonitor(in ModelNodeMonitor monitor);
408 
413  void removeModelMonitor(in ModelNodeMonitor monitor);
414 
420  void addListMonitor(in ModelListMonitor monitor);
421 
426  void removeListMonitor(in ModelListMonitor monitor);
427 
434  ModelNode makeNode(in cellml_api::Model mod);
435 
443  void addModel(in ModelNode node);
444 
449  void removeModel(in ModelNode node);
450 
455  ModelNodeIterator iterateModelNodes();
456 
461  readonly attribute ModelNode parentNode;
462  };
463 #pragma terminal-interface
464 
470  {
474  readonly attribute CellMLModuleManager moduleManager;
475 
480 
485 
489  readonly attribute ModelList loadedModels;
490  };
491 #pragma terminal-interface
492 };