121 lines
4.1 KiB
C
121 lines
4.1 KiB
C
/* httpsrch.h */
|
|
|
|
//-----------------
|
|
// FULL TEXT SEARCH
|
|
//-----------------
|
|
|
|
// Variables used to echange information between server and client
|
|
#define FTS_DOWNLOAD \
|
|
LPBYTE lpTopicBuf; /* dest buffer for topics */ \
|
|
LPBYTE lpOccBuf; /* dest buffer for occurences */ \
|
|
DWORD dwTopicBsize; /* topic buffer size */ \
|
|
DWORD dwOccBsize; /* Occurence buffer size */ \
|
|
DWORD lcTotalNumOfTopics; /* The total number of topics returned */ \
|
|
DWORD lcReturnedTopics; /* The total number of topics the user wants to get returned */ \
|
|
DWORD lcDownloadedTopics; /* number of topics downloaded during the last request (HTTP) */ \
|
|
DWORD lcMaxTopic; /* Max TopicId number (internal) */ \
|
|
DWORD lcMaxDownloadedTopic;/* Max TopicId number downloaded (HTTP) */ \
|
|
DWORD lLastTopicId; /* Last accessed topicId */ \
|
|
DWORD dwStart; /* first topic in the list to download for current result window */ \
|
|
DWORD dwCount; /* how many topics to download for current result window & Offset in Occurence file (last) */ \
|
|
DWORD dwOccFileOffset
|
|
|
|
|
|
typedef struct _httpFTS_TAG
|
|
{
|
|
HANDLE hStruct; // handle on this structure MUST be first field
|
|
|
|
FTS_DOWNLOAD; // Client/Server info interface
|
|
|
|
/* Info related to the query */
|
|
|
|
HANDLE hTitle; // virtual handle on the client side
|
|
DWORD dwFlags;
|
|
HANDLE hStrQuery; // handle on the query string
|
|
LPCSTR lpstrQuery; // The Query
|
|
LPVOID lpGroup; // LPGROUP lpGroup,
|
|
WORD wNear;
|
|
WORD pad;
|
|
DWORD dwCountQ; // dwCount from the Query
|
|
LPVOID lpGroupHits;
|
|
|
|
// Global result for this query
|
|
DWORD dwGStart; // first topic in the list that has been downloaded from the beginning
|
|
DWORD dwGCount; // how many topics have been downloaded from the beginning
|
|
|
|
} HTTPQ, *LPHTTPQ;
|
|
|
|
// parameters downloaded by the server: This structure MUST
|
|
// match exactly the "Partial download variables Section"
|
|
// in the above HTTPQ structure declaration.
|
|
|
|
typedef struct _httpFTS_VARTAG
|
|
{
|
|
FTS_DOWNLOAD;
|
|
|
|
} VHTTPQ, *LPVHTTPQ;
|
|
|
|
|
|
#define DWNLD_TOPIC_SIZE 20000
|
|
#define DWNLD_OCC_SIZE 44000
|
|
|
|
// number of topics to download in a window of result
|
|
|
|
#define DWNLD_CNT 10
|
|
|
|
// comparison macros
|
|
|
|
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
|
|
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
|
#define ABS(x) ((x > 0) ? (x) : (-x))
|
|
|
|
|
|
//-----------------
|
|
// WORDWHEEL SEARCH
|
|
//-----------------
|
|
|
|
// Variables used to echange information between server and client
|
|
#define WWS_DOWNLOAD \
|
|
LPBYTE lpGroupDestBuf; /* dest buffer for the result group */ \
|
|
DWORD lcItemReturned; /* number of items returned till now */ \
|
|
DWORD lcTotalNumOfItem; /* The total number of Item */ \
|
|
DWORD lcDownloadedTopics; /* number of topics downloaded during the last request (HTTP) */ \
|
|
DWORD lcMaxTopic; /* Max TopicId number (internal) */ \
|
|
DWORD lcMaxDownloadedTopic;/* Max TopicId number downloaded (HTTP) */ \
|
|
DWORD lLastTopicId; /* Last accessed topicId */ \
|
|
DWORD dwStart; /* first topic in the list to download for current result window & how many topics to download for current result window & Offset in Occurence file (last) */ \
|
|
DWORD dwCount
|
|
|
|
|
|
typedef struct _httpWWS_TAG
|
|
{
|
|
HANDLE hStruct; // handle on this structure MUST be first field
|
|
|
|
WWS_DOWNLOAD; // Client/Server info interface
|
|
|
|
/* Info related to the query */
|
|
|
|
HANDLE hCww; // handle on client word wheel container
|
|
DWORD dwFlags;
|
|
HANDLE hStrQuery; // handle on the query string
|
|
LPCSTR lpstrQuery; // The Query
|
|
LPVOID lpGroup; // LPGROUP lpGroup,
|
|
DWORD dwCountQ; // dwCount from the Query
|
|
LPVOID lpGroupHits;
|
|
|
|
// Global result for this query
|
|
DWORD dwGStart; // first topic in the list that has been downloaded from the beginning
|
|
DWORD dwGCount; // how many topics have been downloaded from the beginning
|
|
|
|
} WW_HTTPQ, *LPWW_HTTPQ;
|
|
|
|
// parameters downloaded by the server: This structure MUST
|
|
// match exactly the "Partial download variables Section"
|
|
// in the above HTTPQ structure declaration.
|
|
|
|
typedef struct _httpWWS_VARTAG
|
|
{
|
|
WWS_DOWNLOAD;
|
|
|
|
} WW_VHTTPQ, *LPWW_VHTTPQ;
|