www.pudn.com > inet_stock.zip > HQDEST.H
#ifndef _INC_DESTINFO
#define _INC_DESTINFO
#define REQ_HQ10 0 // refresh hq list
#define REQ_GRA10 1 // refresh graph, mmp, maxmin
#define REQ_HQCHKUSR 2
typedef struct tag_ZS_GRAPH
{
MAXMIN_DATA Maxmin[2];
}ZS_GRAPH, *LPZS_GRAPH;
typedef struct tag_GRAPH
{
MMP mmp;
}GRAPH, *LPGRAPH;
typedef struct tag_DP_MAIN
{
float zs;
float zd;
int cjzje;
float npbl;
int cjss;
short upCount, downCount, equalCount;
}DP_MAIN, *LPDP_MAIN;
typedef struct tag_DEST_INFO
{
int sd;
struct sockaddr dest;
int curJys;
int reqType; // hq refresh, mindata refresh
short *params; // * for hq refresh: recFirst, recCount
// for sel hq refresh: recCount, recList;
// for graph refresh: recEnd
int *lpCjss;
int cjss;
short paramsCount;
BYTE isDead, isEchoed, isUsing;
LPGRAPH lpGraph;
LPZS_GRAPH lpZsGraph;
DP_MAIN DpData[2];
char userID[HQ_USERID_SIZE+1];
struct tag_DEST_INFO *lpNext;
}DEST_INFO, *LPDEST_INFO;
typedef struct tag_DEST_INFOS
{
int destCount, aliveCount;
BOOL isUsing;
LPDEST_INFO lpDestHead;
}DEST_INFOS;
extern DEST_INFOS dest_infos;
BOOL DestInit(void);
void DestExit(void);
long GetDestCount(void);
int CheckDest(int sd, struct sockaddr *dest, int curJys,
int reqType, short *params, short paramsCount);
int CreateScanDestThread(void);
void DelDeads(void);
void CheckDestEcho(int sd, struct sockaddr *);
void HqDestSetDead(struct sockaddr *);
int HqDestActiveUsr(int sd, struct sockaddr *, LPSTR usrID);
#endif