interfaces/CellML_Context.idl Source File

CellML_Context.idl
Go to the documentation of this file.
1 
8 #include "CellML_APISPEC.idl"
9 
13 module cellml_context
14 {
25  {
27  {
29  SERVICE
30  };
31 
35  readonly attribute ModuleTypes moduleType;
36 
40  readonly attribute wstring moduleName;
41 
46  readonly attribute wstring moduleDescription;
47 
52  readonly attribute wstring moduleVersion;
53 
58  readonly attribute wstring moduleIconURL;
59 
66  void unload();
67  };
68 #pragma cross-module-inheritance
69 
71  {
75  CellMLModule nextModule();
76  };
77 #pragma terminal-interface
78 
79  interface ModelNode;
80 
82  {
86  ModelNode nextModelNode();
87  };
88 #pragma terminal-interface
89 
94  {
99  void moduleRegistered(in CellMLModule mod);
100 
105  void moduleDeregistered(in CellMLModule mod);
106  };
107 #pragma terminal-interface
108 #pragma user-callback
109 
115  {
120  void registerModule(in CellMLModule mod);
121 
126  void deregisterModule(in CellMLModule mod);
127 
134  CellMLModule findModuleByName(in wstring moduleName,
135  in wstring moduleVersion)
137 
148  void requestModuleByName(in wstring moduleName, in wstring moduleVersion)
150 
155  void addMonitor(in CellMLModuleMonitor moduleMonitor);
156 
162  void removeMonitor(in CellMLModuleMonitor moduleMonitor);
163 
168  CellMLModuleIterator iterateModules();
169  };
170 #pragma terminal-interface
171 
183  {
196  void setUserData(in wstring type, in wstring key, in XPCOM::IObject data);
197 
210  XPCOM::IObject getUserData(in wstring type, in wstring key)
212  };
213 #pragma terminal-interface
214 
215  interface ModelList;
216  interface ModelNode;
217 
222  {
232  void modelRenamed(in ModelNode renamedNode,
233  in wstring newName);
234 
241  void modelReplaced(in ModelNode changedNode,
242  in cellml_api::Model newModel);
243 
251  void changesFlushed(in ModelNode changedNode);
252 
257  void ownerChanged(in ModelNode changedNode, in XPCOM::IObject newOwner);
258 
264  void modelFrozenStateChanged(in ModelNode changedNode,
265  in boolean newState);
266  };
267 #pragma terminal-interface
268 
273  {
282  void modelAdded(in ModelNode newNode, in short depth);
283 
292  void modelRemoved(in ModelNode oldNode, in short depth);
293  };
294 #pragma terminal-interface
295 #pragma user-callback
296 
302  {
306  attribute wstring name;
307 
314  ModelNode getLatestDerivative();
315 
321  ModelNode getWritable();
322 
328  attribute boolean isFrozen;
329 
334  readonly attribute unsigned long modificationTimestamp;
335 
339  void stampModifiedNow();
340 
345 
353  void flushChanges();
354 
369 
373  readonly attribute ModelList derivedModels;
374 
380  void addModelMonitor(in ModelNodeMonitor monitor);
381 
386  void removeModelMonitor(in ModelNodeMonitor monitor);
387 
392  readonly attribute ModelList parentList;
393 
400  attribute boolean dirty;
401  };
402 #pragma terminal-interface
403 
405  {
411  void addModelMonitor(in ModelNodeMonitor monitor);
412 
417  void removeModelMonitor(in ModelNodeMonitor monitor);
418 
424  void addListMonitor(in ModelListMonitor monitor);
425 
430  void removeListMonitor(in ModelListMonitor monitor);
431 
438  ModelNode makeNode(in cellml_api::Model mod);
439 
447  void addModel(in ModelNode node);
448 
453  void removeModel(in ModelNode node);
454 
459  ModelNodeIterator iterateModelNodes();
460 
465  readonly attribute ModelNode parentNode;
466  };
467 #pragma terminal-interface
468 
474  {
478  readonly attribute CellMLModuleManager moduleManager;
479 
484 
489 
493  readonly attribute ModelList loadedModels;
494  };
495 #pragma terminal-interface
496 };