NEURON
bbsdirect.h
Go to the documentation of this file.
1 #ifndef bbsdirect_h
2 #define bbsdirect_h
3 
4 #include <nrnmpiuse.h>
5 
6 #include "bbsimpl.h"
7 class KeepArgs;
8 #if NRNMPI
9 struct bbsmpibuf;
10 #endif
11 
12 // uses the pvm packing and unpacking functions but calls the
13 // server directly instead of through pvmd send, recv.
14 // i.e. this bbs can only be on the master
15 
16 class BBSDirect : public BBSImpl {
17 public:
18  BBSDirect();
19  virtual ~BBSDirect();
20 
21  virtual bool look(const char*);
22 
23  virtual void take(const char*); /* blocks til something to take */
24  virtual bool look_take(const char*); /* returns false if nothing to take */
25  // after taking use these
26  virtual int upkint();
27  virtual double upkdouble();
28  virtual void upkvec(int, double*);
29  virtual char* upkstr(); // delete [] char* when finished
30  virtual char* upkpickle(size_t*); // delete [] char* when finished
31 
32  // before posting use these
33  virtual void pkbegin();
34  virtual void pkint(int);
35  virtual void pkdouble(double);
36  virtual void pkvec(int, double*);
37  virtual void pkstr(const char*);
38  virtual void pkpickle(const char*, size_t);
39  virtual void post(const char*);
40 
41  virtual void post_todo(int parentid);
42  virtual void post_result(int id);
43  virtual int look_take_result(int pid); // returns id, or 0 if nothing
44  virtual int master_take_result(int pid); // returns id
45  virtual int look_take_todo(); // returns id, or 0 if nothing
46  virtual int take_todo(); // returns id
47  virtual void save_args(int);
48  virtual void return_args(int);
49 
50  virtual void context();
51 
52  virtual void start();
53  virtual void done();
54 
55  virtual void perror(const char*);
56 private:
57  KeepArgs* keepargs_;
58 #if NRNMPI
59  bbsmpibuf* sendbuf_, *recvbuf_;
60 #endif
61 };
62 
63 #endif
virtual void perror(const char *)
virtual double upkdouble()
virtual void return_args(int)
virtual void post_todo(int parentid)
virtual void pkdouble(double)
virtual int upkint()
virtual void post(const char *)
virtual void done()
virtual bool look_take(const char *)
virtual char * upkstr()
virtual int look_take_todo()
virtual void upkvec(int, double *)
virtual void save_args(int)
Definition: bbsimpl.h:4
virtual void pkint(int)
virtual void pkstr(const char *)
virtual void start()
virtual void pkbegin()
virtual int take_todo()
virtual int look_take_result(int pid)
virtual bool look(const char *)
virtual int master_take_result(int pid)
virtual char * upkpickle(size_t *)
virtual ~BBSDirect()
virtual void context()
virtual void take(const char *)
virtual void pkpickle(const char *, size_t)
KeepArgs * keepargs_
Definition: bbsdirect.h:57
virtual void post_result(int id)
virtual void pkvec(int, double *)