Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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
languagepy
# 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'

...

Code Block
languagepy
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

...