00001 #ifndef agwsCMD_PARALLEL_H
00002 #define agwsCMD_PARALLEL_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __cplusplus
00021 #error This is a C++ include file and cannot be used from plain C
00022 #endif
00023
00024
00025
00026
00027 #include <eccsErr.h>
00028 #include <evhOBJ_CALLBACK.h>
00029 #include <evhCOMMAND.h>
00030 #include <evhTASK.h>
00031
00032
00033
00034
00035 #include "agws.h"
00036
00037 class agwsCMD_PARALLEL : public evhSIMPLE_TASK
00038 {
00039 public:
00040 agwsCMD_PARALLEL();
00041 ~agwsCMD_PARALLEL();
00042
00043 ccsCOMPL_STAT Reply(evhCALLBACK &cb);
00044 evhCALLBACK *Reply();
00045
00046 ccsCOMPL_STAT ErrReply(evhCALLBACK &cb);
00047 evhCALLBACK *ErrReply();
00048
00049 ccsCOMPL_STAT Timeout(evhCALLBACK &cb, ccsTIMEVAL &timeout);
00050 ccsCOMPL_STAT Timeout(ccsTIMEVAL &timeout);
00051 evhCALLBACK *Timeout();
00052
00053 ccsCOMPL_STAT Send(msgMESSAGE &orgMsg, vltINT32 numMsgs, msgMESSAGE msg[]);
00054
00055 evhCB_COMPL_STAT SendReply(const char *buffer);
00056 evhCB_COMPL_STAT SendErrorReply( ccsMODULEID moduleId, vltINT16 errorNumber,
00057 ccsLOC_ID location, ...);
00058 virtual ccsCOMPL_STAT Reset();
00059 virtual vltLOGICAL Status();
00060
00061 protected:
00062 virtual evhCB_COMPL_STAT ReplyCB(msgMESSAGE &msg, void *);
00063 virtual evhCB_COMPL_STAT ErrReplyCB(msgMESSAGE &msg, void *);
00064 virtual evhCB_COMPL_STAT TimeoutCB(msgMESSAGE &msg, void *);
00065
00066 vltINT32 numCmds;
00067 evhCOMMAND *cmdList;
00068
00069 private:
00070 vltINT32 numWait;
00071 ccsTIMEVAL timeout;
00072 msgMESSAGE userMsg;
00073 evhCALLBACK *userReplyCB;
00074 evhCALLBACK *userErrReplyCB;
00075 evhCALLBACK *userTimeoutCB;
00076 };
00077
00078 #endif // !agwsCMD_PARALLEL_H