#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().
1.6.3