...
Arguments required by user C++/F method
a class
- All arguments 'packed' within a class <ActorName>Arguments
- Class will be automatically generated within a wrapper package
- Order of attributes corresponds to order of user function arguments
- Every attribute is a class FC2PyArgument keeping not only value but also metadata describing argument:
- Name
- Type of value
- Value
- IN or OUT
- Attributes' setters/getters will be overridden - user will set only value of argument
- To reduce complexity visible by user
- To check if arg type is correct
XML parameters of user C++/F method
- Not passed as wrapper argument
- Defined (path to XML file) at the time of actor creation by FC2Py
Job settings
- A class passed as wrapper arguments
- Tree (of classes) describing job settings
- FC2PyJobSettings class:
- batch_job - class FC2PyBatchJob:
- queue
- ???
- debug - class FC2PyDebug
- debugger - TotalView/gdb
- mode - attach/standalone
- mpi - class FC2PyMPI
- mpi parameters - TBD
- ???
- open_mp - class FC2PyOpenMP
- openMP parameters - TBD
- ???
- sandbox
- path to sandbox
- batch_job - class FC2PyBatchJob:
Wrapper outcome
- To be discussed -
- PREFERRED: OUT arguments - wrapper will update fields of <ActorName>Arguments class
- Returned values - packed within a class:
- autogenerated
- a part of wrapper package
Open points
- Programming conventions (PEP 8?)
- Incompatibility with existing Python actors!
- Only IN and OUT arguments (no INOUT arguments)
- Arrays as an inout of user method- only "dynamic" - i.e. of variable size
- Wrapper results:
- OUT arguments - wrapper will update fields of <ActorName>Arguments class
- Returned values - packed within a class
- Diagnostic info
- Info returned from user method
- status flag
- user defined message
- 'Q: can it be mandatory in user sbrt?
- Info returned from user method
- Sandbox:
- Do we need this feature?
- Alternative library:
- Do we need this feature?
...