SST/macro
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
sstmac::sw::user_app_cxx_full_main Class Reference

#include <app.h>

Inheritance diagram for sstmac::sw::user_app_cxx_full_main:
Inheritance graph
Collaboration diagram for sstmac::sw::user_app_cxx_full_main:
Collaboration graph

Classes

struct  argv_entry
 

Public Member Functions

void skeleton_main ()
 
virtual void consume_params (sprockit::sim_parameters *params)
 
appclone_type () const
 
- Public Member Functions inherited from sstmac::sw::app
int allocate_tls_key (destructor_fxn fnx)
 
software_id sid () const
 
int appnum () const
 
int tasknum () const
 
appparent_app () const
 
void sleep (timestamp time)
 
void compute (timestamp time)
 
void compute_inst (compute_event *cmsg)
 
void compute_loop (uint64_t, int nflops_per_loop, int nintops_per_loop, int bytes_per_loop)
 
void compute_detailed (long flops, long intops, long bytes)
 
void compute_block_read (long bytes)
 
void compute_block_write (long bytes)
 
void compute_block_memcpy (long bytes)
 
lib_compute_loopscompute_loops_lib ()
 
virtual ~app ()
 Goodbye. More...
 
appclone (software_id newid)
 
virtual void kill ()
 
virtual void run ()
 Derived types need to override this method. More...
 
virtual void init_factory_params (sprockit::sim_parameters *params)
 
sprockit::sim_parameters * params () const
 
void add_subthread (thread *thr)
 Let a parent application know about the existence of a subthread If thread does not have an initialized ID, a unique ID is allocated for the thread Can be called from a constructor. More...
 
void set_subthread_done (thread *thr)
 Indicate to parent application that subthread is done running. More...
 
void remove_subthread (thread *thr)
 Let a parent application know a subthread has finished. More...
 
void remove_subthread (long thr_id)
 
threadget_subthread (long id)
 get_subthread More...
 
int allocate_mutex ()
 Allocate a unique ID for a mutex variable. More...
 
int allocate_condition ()
 Allocate a unique ID for a condition variable. More...
 
mutex_tget_mutex (int id)
 Fetch a mutex object corresponding to their ID. More...
 
condition_tget_condition (int id)
 Fetch a condition object corresponding to the ID. More...
 
bool erase_condition (int id)
 
bool erase_mutex (int id)
 
virtual void clear_subthread_from_parent_app ()
 
- Public Member Functions inherited from sstmac::sw::thread
virtual std::string to_string () const
 
void set_api (thread *thr)
 
template<class T >
T * get_api ()
 
virtual ~thread ()
 
state get_state () const
 Get current thread state. More...
 
virtual void init_perf_model_params (sprockit::sim_parameters *params)
 
app_id aid () const
 
task_id tid () const
 
void set_sid (software_id sid)
 
void spawn (thread *thr)
 
long init_id ()
 
long thread_id () const
 
void cancel ()
 This thread is not currently active - blocked on something However, some kill event happened and I never want to see this thread again. More...
 
bool is_canceled () const
 
operating_systemos () const
 
app_launchenv () const
 
void * stack () const
 
size_t stacksize () const
 
void ** backtrace () const
 
int last_backtrace_nfxn () const
 
int backtrace_nfxn () const
 
void append_backtrace (void *fxn)
 
void pop_backtrace ()
 
void set_backtrace (void **bt)
 
void collect_backtrace (int nfxn)
 
void init_thread (int phyiscal_thread_id, threading_interface *tocopy, void *stack, int stacksize, operating_system *os, threading_interface *yield_to)
 
void start_thread (thread *thr)
 A convenience request to start a new thread. More...
 
void join ()
 
process_context get_process_context () const
 
keyschedule_key ()
 key used More...
 
bool is_initialized () const
 Test whether the current task has been initialized (activated) by a scheduler. More...
 
void register_lib (library *lib)
 
void set_affinity (int core)
 
void add_affinity (int core)
 
void zero_affinity ()
 
template<class T >
T & register_perf_ctr_variable (void *ptr)
 
void remove_perf_ctr_variable (void *ptr)
 
perf_counter_modelperf_ctr_model () const
 
void set_cpumask (uint64_t cpumask)
 
uint64_t cpumask () const
 
int active_core () const
 
void set_active_core (int core)
 
void set_pthread_map (pthread_map_t *threadmap)
 
void * get_tls_value (long thekey) const
 
void set_tls_value (long thekey, void *ptr)
 
timestamp now ()
 
- Public Member Functions inherited from sprockit::factory_type
virtual void init_factory_params (sim_parameters *params)
 
virtual void finalize_init ()
 

Static Public Member Functions

static void register_main_fxn (const char *name, app::main_fxn fxn)
 
static void delete_statics ()
 
- Static Public Member Functions inherited from sstmac::sw::app
static sprockit::sim_parameters * get_params ()
 
static void delete_statics ()
 
- Static Public Member Functions inherited from sstmac::sw::thread
static threadcurrent ()
 

Private Member Functions

void init_argv (argv_entry &entry)
 

Private Attributes

app::main_fxn fxn_
 

Static Private Attributes

static std::map< std::string, app::main_fxn > * main_fxns_
 
static std::map< app_id, argv_entryargv_map_
 

Additional Inherited Members

- Public Types inherited from sstmac::sw::app
typedef void(* destructor_fxn) (void *)
 
typedef int(* main_fxn) (int argc, char **argv)
 
typedef int(* empty_main_fxn) ()
 
- Public Types inherited from sstmac::sw::thread
enum  state {
  PENDING =0, INITIALIZED =1, ACTIVE =2, SUSPENDED =3,
  BLOCKED =4, CANCELED =5, DONE =6
}
 Help resolve deadlock situations. More...
 
typedef spkt_unordered_map< long, thread * > pthread_map_t
 
- Static Public Attributes inherited from sstmac::sw::thread
static const int no_core_affinity = -1
 
static const int no_socket_affinity = -1
 
static const int main_thread = -1
 
static const int nic_thread = -2
 
static const int rdma_thread = -3
 
static const app_id main_thread_aid
 
static const task_id main_thread_tid
 
- Protected Member Functions inherited from sstmac::sw::app
 app ()
 
api_get_api (const char *name)
 
virtual void init_mem_lib ()
 
- Protected Member Functions inherited from sstmac::sw::thread
 thread ()
 
void unregister_all_libs ()
 
- Protected Attributes inherited from sstmac::sw::app
sprockit::sim_parameters * params_
 
software_id id_
 
- Protected Attributes inherited from sstmac::sw::thread
spkt_unordered_map< std::string, api * > apis_
 
state state_
 Monitor state for deadlock detection. More...
 
operating_systemos_
 Each thread can only run under one OS/scheduler. More...
 
std::queue< key * > joiners_
 
appparent_app_
 
process_context p_txt_
 

Detailed Description

Definition at line 252 of file app.h.

Member Function Documentation

app* sstmac::sw::user_app_cxx_full_main::clone_type ( ) const
inlinevirtual

Implements sstmac::sw::app.

Definition at line 267 of file app.h.

virtual void sstmac::sw::user_app_cxx_full_main::consume_params ( sprockit::sim_parameters *  params)
virtual

Implements sstmac::sw::app.

static void sstmac::sw::user_app_cxx_full_main::delete_statics ( )
static
void sstmac::sw::user_app_cxx_full_main::init_argv ( argv_entry entry)
private
static void sstmac::sw::user_app_cxx_full_main::register_main_fxn ( const char *  name,
app::main_fxn  fxn 
)
static
void sstmac::sw::user_app_cxx_full_main::skeleton_main ( )
virtual

Implements sstmac::sw::app.

Member Data Documentation

std::map<app_id, argv_entry> sstmac::sw::user_app_cxx_full_main::argv_map_
staticprivate

Definition at line 281 of file app.h.

app::main_fxn sstmac::sw::user_app_cxx_full_main::fxn_
private

Definition at line 282 of file app.h.

std::map<std::string, app::main_fxn>* sstmac::sw::user_app_cxx_full_main::main_fxns_
staticprivate

Definition at line 280 of file app.h.


The documentation for this class was generated from the following file: