#include <bbsimpl.h>
Public Member Functions | |
BBSImpl () | |
virtual | ~BBSImpl () |
virtual boolean | look (const char *)=0 |
virtual void | take (const char *)=0 |
virtual boolean | look_take (const char *)=0 |
virtual int | upkint ()=0 |
virtual double | upkdouble ()=0 |
virtual void | upkvec (int, double *)=0 |
virtual char * | upkstr ()=0 |
virtual char * | upkpickle (size_t *)=0 |
virtual void | pkbegin ()=0 |
virtual void | pkint (int)=0 |
virtual void | pkdouble (double)=0 |
virtual void | pkvec (int, double *)=0 |
virtual void | pkstr (const char *)=0 |
virtual void | pkpickle (const char *, size_t)=0 |
virtual void | post (const char *)=0 |
virtual void | post_todo (int parentid)=0 |
virtual void | post_result (int id)=0 |
virtual int | look_take_result (int pid)=0 |
virtual int | look_take_todo ()=0 |
virtual int | take_todo ()=0 |
virtual void | save_args (int userid)=0 |
virtual void | return_args (int userid) |
virtual void | execute (int id) |
virtual int | submit (int userid) |
virtual boolean | working (int &id, double &x, int &userid) |
virtual void | context () |
virtual void | start () |
virtual void | done () |
virtual void | worker () |
virtual boolean | is_master () |
virtual double | time () |
virtual void | perror (const char *) |
Public Attributes | |
int | working_id_ |
int | n_ |
double | wait_time_ |
double | integ_time_ |
double | send_time_ |
char * | pickle_ret_ |
size_t | pickle_ret_size_ |
Static Public Attributes | |
static boolean | is_master_ = false |
static boolean | started_ = false |
static boolean | done_ = false |
static boolean | use_pvm_ |
static int | mytid_ |
static int | debug_ = 0 |
Protected Member Functions | |
char * | execute_helper (size_t *, int id) |
void | subworld_worker_execute () |
BBSImpl::BBSImpl | ( | ) |
References integ_time_, n_, pickle_ret_, pickle_ret_size_, send_time_, wait_time_, and working_id_.
BBSImpl::~BBSImpl | ( | ) | [virtual] |
References pickle_ret_.
void BBSImpl::context | ( | ) | [virtual] |
Reimplemented in BBSDirect, and BBSLocal.
Referenced by BBS::context().
void BBSImpl::done | ( | ) | [virtual] |
Reimplemented in BBSDirect, BBSLocal, and BBSClient.
References done_.
Referenced by BBS::done(), and subworld_worker_execute().
References debug, debug_, execute_helper(), hoc_ac_, i, pkbegin(), pkdouble(), pkint(), pkpickle(), post_result(), rs, s, time(), upkint(), and working_id_.
Referenced by BBSLocal::take(), worker(), and working().
char * BBSImpl::execute_helper | ( | size_t * | size, | |
int | id | |||
) | [protected] |
References assert, fprintf(), hoc_ac_, hoc_call_objfunc(), hoc_execerror(), hoc_lookup(), hoc_obj_run(), hoc_object_name(), hoc_pushobj(), hoc_pushstr(), hoc_pushx(), hoc_table_lookup(), hoc_temp_objptr(), hoc_which_template(), ITERATE, nil, nrnmpi_myid, nrnmpi_numprocs, nrnmpi_numprocs_bbs, nrnmpi_numprocs_world, nrnpy_callpicklef, nrnpy_pickle2po, OBJ, pickle_ret_, pickle_ret_size_, rs, Symbol::u, upkdouble(), upkint(), upkpickle(), upkstr(), upkvec(), and Vect.
Referenced by execute().
boolean BBSImpl::is_master | ( | ) | [virtual] |
References is_master_.
Referenced by worker().
virtual boolean BBSImpl::look | ( | const char * | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by BBS::look().
virtual boolean BBSImpl::look_take | ( | const char * | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by BBS::look_take().
virtual int BBSImpl::look_take_todo | ( | ) | [pure virtual] |
void BBSImpl::perror | ( | const char * | ) | [virtual] |
Reimplemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by BBS::perror().
virtual void BBSImpl::pkbegin | ( | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by execute(), and BBS::pkbegin().
virtual void BBSImpl::pkdouble | ( | double | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by execute(), and BBS::pkdouble().
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by execute(), and BBS::pkint().
virtual void BBSImpl::pkpickle | ( | const char * | , | |
size_t | ||||
) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by execute(), and BBS::pkpickle().
virtual void BBSImpl::pkstr | ( | const char * | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by BBS::pkstr().
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by BBS::pkvec().
virtual void BBSImpl::post | ( | const char * | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by BBS::post().
void BBSImpl::start | ( | ) | [virtual] |
References debug, n_, post_todo(), save_args(), and working_id_.
Referenced by BBS::submit().
void BBSImpl::subworld_worker_execute | ( | ) | [protected] |
References assert, done(), hoc_ac_, hoc_call_objfunc(), hoc_lookup(), hoc_obj_run(), hoc_pushobj(), hoc_pushstr(), hoc_pushx(), hoc_temp_objptr(), i, n, nil, nrnpy_pickle2po, rs, s, Vect, and x.
Referenced by worker().
virtual void BBSImpl::take | ( | const char * | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by BBS::take().
virtual int BBSImpl::take_todo | ( | ) | [pure virtual] |
double BBSImpl::time | ( | ) | [virtual] |
References nrnmpi_wtime().
Referenced by BBS::add_wait_time(), execute(), BBS::time(), worker(), and working().
virtual double BBSImpl::upkdouble | ( | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by execute_helper(), BBS::upkdouble(), and working().
virtual int BBSImpl::upkint | ( | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by execute(), execute_helper(), return_args(), BBS::upkint(), and working().
virtual char* BBSImpl::upkpickle | ( | size_t * | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by execute_helper(), return_args(), BBS::upkpickle(), and working().
virtual char* BBSImpl::upkstr | ( | ) | [pure virtual] |
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by execute_helper(), return_args(), and BBS::upkstr().
Implemented in BBSDirect, BBSLocal, and BBSClient.
Referenced by execute_helper(), and BBS::upkvec().
void BBSImpl::worker | ( | ) | [virtual] |
References execute(), id, is_master(), nrnmpi_myid_bbs, subworld_worker_execute(), take_todo(), and time().
Referenced by BBS::worker().
References assert, debug, execute(), look_take_result(), look_take_todo(), n_, pickle_ret_, pickle_ret_size_, return_args(), t, time(), upkdouble(), upkint(), upkpickle(), and working_id_.
Referenced by BBS::working().
int BBSImpl::debug_ = 0 [static] |
Referenced by execute().
boolean BBSImpl::done_ = false [static] |
Referenced by done().
double BBSImpl::integ_time_ |
Referenced by BBSImpl(), BBS::integ_time(), and BBS::netpar_solve().
boolean BBSImpl::is_master_ = false [static] |
Referenced by BBS::init(), is_master(), BBS::is_master(), and BBSLocal::start().
int BBSImpl::mytid_ [static] |
Referenced by BBSLocal::start().
char* BBSImpl::pickle_ret_ |
Referenced by BBSImpl(), execute_helper(), BBS::pyret(), working(), and ~BBSImpl().
size_t BBSImpl::pickle_ret_size_ |
Referenced by BBSImpl(), execute_helper(), BBS::pyret(), and working().
double BBSImpl::send_time_ |
Referenced by BBSImpl(), BBS::netpar_solve(), and BBS::send_time().
boolean BBSImpl::started_ = false [static] |
Referenced by BBS::init(), BBSLocal::start(), and start().
boolean BBSImpl::use_pvm_ [static] |
Referenced by BBS::init().
double BBSImpl::wait_time_ |
Referenced by BBS::add_wait_time(), BBSImpl(), BBS::netpar_solve(), and BBS::wait_time().
Referenced by BBSImpl(), execute(), BBSLocal::save_args(), submit(), and working().