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