NEURON
bbsrcli.h
Go to the documentation of this file.
1 #ifndef bbsrcli_h
2 #define bbsrcli_h
3 
4 #include <nrnmpiuse.h>
5 #include "bbsimpl.h"
6 class KeepArgs;
7 struct bbsmpibuf;
8 
9 class BBSClient : public BBSImpl{ // implemented as PVM Client
10 public:
11  BBSClient();
12  virtual ~BBSClient();
13 
14  virtual bool look(const char*);
15 
16  virtual void take(const char*); /* blocks til something to take */
17  virtual bool look_take(const char*); /* returns false if nothing to take */
18  // after taking use these
19  virtual int upkint();
20  virtual double upkdouble();
21  virtual void upkvec(int, double*);
22  virtual char* upkstr(); // delete [] char* when finished
23  virtual char* upkpickle(size_t*); // delete [] char* when finished
24 
25  // before posting use these
26  virtual void pkbegin();
27  virtual void pkint(int);
28  virtual void pkdouble(double);
29  virtual void pkvec(int, double*);
30  virtual void pkstr(const char*);
31  virtual void pkpickle(const char*, size_t);
32  virtual void post(const char*);
33 
34  virtual void post_todo(int parentid);
35  virtual void post_result(int id);
36  virtual int look_take_result(int pid); // returns id, or 0 if nothing
37  virtual int look_take_todo(); // returns id, or 0 if nothing
38  virtual int take_todo(); // returns id
39  virtual void save_args(int);
40  virtual void return_args(int);
41 
42  virtual void start();
43  virtual void done();
44 
45  virtual void perror(const char*);
46 private:
47  int get(const char* key, int type); // return type
48  int get(int key, int type); // return type
49  int get(int type); // return type
50 private:
51  static int sid_;
52  KeepArgs* keepargs_;
53 #if NRNMPI
54  void upkbegin();
55  char* getkey();
56  int getid();
57  bbsmpibuf* sendbuf_, *recvbuf_, *request_;
58 #endif
59 
60 };
61 
62 #endif
virtual void pkpickle(const char *, size_t)
short type
Definition: cabvars.h:10
virtual int look_take_result(int pid)
virtual bool look(const char *)
virtual char * upkpickle(size_t *)
virtual double upkdouble()
virtual void post_result(int id)
virtual bool look_take(const char *)
virtual ~BBSClient()
virtual int upkint()
virtual int look_take_todo()
virtual void take(const char *)
virtual void pkbegin()
virtual void return_args(int)
virtual void pkdouble(double)
virtual char * upkstr()
virtual void upkvec(int, double *)
static int sid_
Definition: bbsrcli.h:51
#define key
Definition: spt2queue.cpp:20
virtual void done()
virtual void save_args(int)
Definition: bbsimpl.h:4
virtual void post(const char *)
virtual void post_todo(int parentid)
virtual void start()
virtual void pkint(int)
virtual void perror(const char *)
virtual int take_todo()
KeepArgs * keepargs_
Definition: bbsrcli.h:52
virtual void pkstr(const char *)
virtual void pkvec(int, double *)