revert changes in CmiCopyArgs and LB
[charm.git] / src / conv-ccs / ccs-client.h
1 /**
2  * Converse Client-Server Module: Client Side
3  */
4
5 #ifndef __CCS_CLIENT_H_
6 #define __CCS_CLIENT_H_
7
8 #include "sockRoutines.h"
9 #include "ccs-auth.h"
10
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14
15 typedef struct CcsServer {
16   /*CCS Server description:*/
17   char hostAddr[128];
18   skt_ip_t hostIP;
19   unsigned int hostPort;
20
21   /*Authentication*/
22   int isAuth;
23   int level;/*Security level to ask for*/
24   CcsSec_secretKey key;
25   int clientID,clientSalt;
26   int replySalt;
27   CCS_RAND_state rand;
28
29   /*Parallel machine:*/
30   int numNodes;
31   int numPes;
32   int *numProcs; /*# of processors for each node*/
33
34   /*Current State:*/
35   SOCKET replyFd;/*Socket for replies*/
36 } CcsServer;
37
38 /*All routines return -1 on failure*/
39 int CcsConnect(CcsServer *svr, const char *host, int port,const CcsSec_secretKey *key);
40 int CcsConnectWithTimeout(CcsServer *svr, const char *host, int port,
41         const CcsSec_secretKey *key, int timeout);
42
43 int CcsConnectIp(CcsServer *svr,skt_ip_t ip, int port,const CcsSec_secretKey *key);
44 int CcsConnectIpWithTimeout(CcsServer *svr,skt_ip_t ip, int port,const CcsSec_secretKey *key, int timeout);
45
46 int CcsSendRequest(CcsServer *svr, const char *hdlrID, int pe, 
47                     int size, const void *msg);
48 int CcsSendRequestWithTimeout(CcsServer *svr, const char *hdlrID, int pe, 
49                     int size, const void *msg, int timeout);
50 int CcsSendBroadcastRequest(CcsServer *svr, const char *hdlrID,
51             int size, const void *msg);
52 int CcsSendBroadcastRequestWithTimeout(CcsServer *svr, const char *hdlrID, 
53             int size, const void *msg, int timeout);
54 int CcsSendMulticastRequest(CcsServer *svr, const char *hdlrID, int npes, 
55             int *pes, int size, const void *msg);
56 int CcsSendMulticastRequestWithTimeout(CcsServer *svr, const char *hdlrID, int npes, 
57             int *pes, int size, const void *msg, int timeout);
58
59 int CcsNoResponse(CcsServer *svr);
60 int CcsRecvResponse(CcsServer *svr, 
61                     int maxsize, void *recvBuffer, int timeout);
62 int CcsRecvResponseMsg(CcsServer *svr, 
63                     int *retSize,void **newBuf, int timeout);
64 int CcsNumNodes(CcsServer *svr);
65 int CcsNumPes(CcsServer *svr);
66 int CcsNodeFirst(CcsServer *svr, int node);
67 int CcsNodeSize(CcsServer *svr,int node);
68 int CcsProbe(CcsServer *svr);
69 int CcsProbeTimeout(CcsServer *svr,int timeoutMs);
70 void CcsFinalize(CcsServer *svr);
71
72 #ifdef __cplusplus
73 };
74 #endif
75
76 #endif