bbsdirect.h
Go to the documentation of this file.00001 #ifndef bbsdirect_h
00002 #define bbsdirect_h
00003
00004 #include <nrnmpiuse.h>
00005
00006 #include "bbsimpl.h"
00007 class KeepArgs;
00008 #if NRNMPI
00009 struct bbsmpibuf;
00010 #endif
00011
00012
00013
00014
00015
00016 class BBSDirect : public BBSImpl {
00017 public:
00018 BBSDirect();
00019 virtual ~BBSDirect();
00020
00021 virtual boolean look(const char*);
00022
00023 virtual void take(const char*);
00024 virtual boolean look_take(const char*);
00025
00026 virtual int upkint();
00027 virtual double upkdouble();
00028 virtual void upkvec(int, double*);
00029 virtual char* upkstr();
00030 virtual char* upkpickle(size_t*);
00031
00032
00033 virtual void pkbegin();
00034 virtual void pkint(int);
00035 virtual void pkdouble(double);
00036 virtual void pkvec(int, double*);
00037 virtual void pkstr(const char*);
00038 virtual void pkpickle(const char*, size_t);
00039 virtual void post(const char*);
00040
00041 virtual void post_todo(int parentid);
00042 virtual void post_result(int id);
00043 virtual int look_take_result(int pid);
00044 virtual int look_take_todo();
00045 virtual int take_todo();
00046 virtual void save_args(int);
00047 virtual void return_args(int);
00048
00049 virtual void context();
00050
00051 virtual void start();
00052 virtual void done();
00053
00054 virtual void perror(const char*);
00055 static void check_pvm();
00056 private:
00057 KeepArgs* keepargs_;
00058 #if NRNMPI
00059 bbsmpibuf* sendbuf_, *recvbuf_;
00060 #endif
00061 };
00062
00063 #endif