...
- All arguments 'packed' within a class <ActorName>Arguments
- Class will be automatically generated, and copied to a wrapper package
- Order of attributes corresponds to order of user function arguments
- Every attribute is a class ToolNameArgument <ToolName>Argument 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
...
Code Block | ||
---|---|---|
| ||
# AUTO GENERATED ! class <ActorName>Arguments : def __init__(self): self.arg1 = ToolNameArgument<ToolName>Argument( 'InVar', int, None, IN) self.arg2 = ToolNameArgument<ToolName>Argument( 'OutVar', double, None, OUT) self.diagnostic_info = ToolNameDiagnosticInfo<ToolName>DiagnosticInfo() # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class ToolNameArgument<ToolName>Argument : def __init__(self, name, type, sub_type, intent): self.name = name #'argument name' READ ONLY self.type = type # (INT, DOUBLE, STRING, COMPLEX, IDS) READ ONLY self.sub_type = sub_type #'equilibrium' for IDSes only READ ONLY self.intent = intent # (IN/OUT) READ ONLY self.value = 7. # to be set by user # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class ToolNameDiagnosticInfo<ToolName>DiagnosticInfo : def __init__(self): self.status self.message |
...
- Not passed as wrapper argument
- Defined (path to XML file) at the time of actor creation by ToolName <ToolName>
Code Block |
---|
class ToolNameXMLParamaters<ToolName>XMLParamaters : def __init__(self): self.parameters = # file name or string or... (?) self.default_parameters = # file name or string or ... (?) self.schema = # file name or string or ... (?) |
...
- A class passed as wrapper arguments
- Tree (of classes) describing job settings
- ToolNameJobSettings <ToolName>JobSettings class:
- batch_job -
class ToolNameBatchJob<ToolName>BatchJob:
- queue
- ???
- debug -
class ToolNameDebug<ToolName>Debug:
- debugger - TotalView/gdb
- mode - attach/standalone
- mpi -
class ToolNameMPI<ToolName>MPI:
- mpi parameters - TBD
- ???
- open_mp -
class ToolNameOpenMP<ToolName>OpenMP
- openMP parameters - TBD
- ???
- sandbox -
class ToolNameSandbox<ToolName>Sandbox
- path to sandbox
- sandbox 'lifetime'
- batch_job -
...
Code Block | ||
---|---|---|
| ||
class ToolNameJobSettings<ToolName>JobSettings : def __init__(self): self.batch_job = ToolNameBatchJob<ToolName>BatchJob() self.debug = ToolNameDebug<ToolName>Debug() self.mpi = ToolNameMPI<ToolName>MPI() self.open_mp = ToolNameOpenMP<ToolName>OpenMP() self.sandbox = ToolNameSandbox<ToolName>Sandbox() self.????? #any other info needed? # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class ToolNameBatchJob<ToolName>BatchJob : def __init__(self): self.queue = self.TBD # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class ToolNameDebug<ToolName>Debug : def __init__(self): self.debugger #TotalView/gdb self.mode #attach/standalone self.TBD # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class ToolNameMPI<ToolName>MPI : def __init__(self): self.TBD self.debug_switch # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class ToolNameOpenMP<ToolName>OpenMP : def __init__(self): self.TBD # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class ToolNameSandbox<ToolName>Sandbox : def __init__(self): self.path self.lifetime self.TBD |
...