⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htvms_waisprot.h

📁 elinks下lynx是最重要的二个文本浏览器, 在linux下非常实用, lynx比elinks早的多, 目前好像停止开发, 这是lynx源代码
💻 H
字号:
/*							HTVMS_WAISProt.h****	Adaptation for Lynx by F.Macrides (macrides@sci.wfeb.edu)****	31-May-1994 FM	Initial version.****----------------------------------------------------------------------*//***	Routines originally from WProt.h -- FM****----------------------------------------------------------------------*//* WIDE AREA INFORMATION SERVER SOFTWARE:   No guarantees or restrictions.  See the readme file for the full standard   disclaimer.   3.26.90	Harry Morris, morris@think.com   3.30.90  Harry Morris			-	removed chunk code from WAISSearchAPDU,			-	added makeWAISQueryType1Query() and readWAISType1Query() which				replace makeWAISQueryTerms() and makeWAISQueryDocs().   4.11.90  HWM - added definitions of wais element set names   4.14.90  HWM - changed symbol for relevance feedback query from QT_3 to				  QT_RelevanceFeedbackQuery added QT_TextRetrievalQuery as a				  synonym for QT_BooleanQuery				- renamed makeWAISType1Query() to makeWAISTextQuery()				  renamed readWAISType1Query() to readWAISTextQuery()   5.29.90  TS - added CSTFreeWAISFoo functions*/#ifndef _H_WAIS_protocol_#define _H_WAIS_protocol_#ifndef HTUTILS_H#include <HTUtils.h>#endif#include <HTVMS_WaisUI.h>/*----------------------------------------------------------------------*//* Data types / constants *//* date factor constants */#define	DF_INDEPENDENT		1#define DF_LATER		2#define DF_EARLIER		3#define DF_SPECIFIED_RANGE	4/* chunk types */#define CT_document		0#define CT_byte			1#define CT_line			2#define CT_paragraph	3/* relevance feedback query */#define QT_RelevanceFeedbackQuery	"3"#define QT_TextRetrievalQuery		QT_BooleanQuery/* new data tags */#define DT_UserInformationLength	(data_tag)99#define	DT_ChunkCode			(data_tag)100#define	DT_ChunkIDLength		(data_tag)101#define	DT_ChunkMarker			(data_tag)102#define	DT_HighlightMarker		(data_tag)103#define	DT_DeHighlightMarker		(data_tag)104#define	DT_NewlineCharacters		(data_tag)105#define	DT_SeedWords			(data_tag)106#define	DT_DocumentIDChunk		(data_tag)107#define	DT_ChunkStartID			(data_tag)108#define	DT_ChunkEndID			(data_tag)109#define	DT_TextList			(data_tag)110#define	DT_DateFactor			(data_tag)111#define	DT_BeginDateRange		(data_tag)112#define	DT_EndDateRange			(data_tag)113#define	DT_MaxDocumentsRetrieved	(data_tag)114#define	DT_SeedWordsUsed		(data_tag)115#define	DT_DocumentID			(data_tag)116#define	DT_VersionNumber		(data_tag)117#define	DT_Score			(data_tag)118#define	DT_BestMatch			(data_tag)119#define	DT_DocumentLength		(data_tag)120#define	DT_Source			(data_tag)121#define	DT_Date				(data_tag)122#define	DT_Headline			(data_tag)123#define	DT_OriginCity			(data_tag)124#define	DT_PresentStartByte		(data_tag)125#define	DT_TextLength			(data_tag)126#define	DT_DocumentText			(data_tag)127#define	DT_StockCodes			(data_tag)128#define	DT_CompanyCodes			(data_tag)129#define	DT_IndustryCodes		(data_tag)130/* added by harry */#define DT_DocumentHeaderGroup		(data_tag)150#define DT_DocumentShortHeaderGroup	(data_tag)151#define DT_DocumentLongHeaderGroup	(data_tag)152#define DT_DocumentTextGroup		(data_tag)153#define DT_DocumentHeadlineGroup	(data_tag)154#define DT_DocumentCodeGroup		(data_tag)155#define DT_Lines			(data_tag)131#define	DT_TYPE_BLOCK			(data_tag)132#define DT_TYPE				(data_tag)133/* wais element sets */#define ES_DocumentHeader		"Document Header"#define ES_DocumentShortHeader		"Document Short Header"#define ES_DocumentLongHeader		"Document Long Header"#define ES_DocumentText			"Document Text"#define ES_DocumentHeadline		"Document Headline"#define ES_DocumentCodes		"Document Codes"typedef struct DocObj { /* specifies a section of a document */	any*	DocumentID;	char*   Type;	long	ChunkCode;	union {		long	Pos;		any*	ID;	} ChunkStart;	union {		long	Pos;		any*	ID;	} ChunkEnd;	} DocObj;/*----------------------------------------------------------------------*//* WAIS APDU extensions */typedef struct WAISInitResponse {	long				ChunkCode;	long				ChunkIDLength;	char*				ChunkMarker;	char*				HighlightMarker;	char*				DeHighlightMarker;	char*				NewlineCharacters;	/* XXX  need to add UpdateFrequency and Update Time */	} WAISInitResponse;typedef struct WAISSearch {	char*				SeedWords;	DocObj**			Docs;	char**				TextList;	long				DateFactor;	char*				BeginDateRange;	char*				EndDateRange;	long				MaxDocumentsRetrieved;	} WAISSearch;typedef struct WAISDocumentHeader {	any*				DocumentID;	long				VersionNumber;	long				Score;	long				BestMatch;	long				DocumentLength;	long				Lines;	char**				Types;	char*				Source;	char*				Date;	char*				Headline;	char*				OriginCity;	} WAISDocumentHeader;typedef struct WAISDocumentShortHeader {	any*				DocumentID;	long				VersionNumber;	long				Score;	long				BestMatch;	long				DocumentLength;	long				Lines;	} WAISDocumentShortHeader;typedef struct WAISDocumentLongHeader {	any*				DocumentID;	long				VersionNumber;	long				Score;	long				BestMatch;	long				DocumentLength;	long				Lines;	char**				Types;	char*				Source;	char*				Date;	char*				Headline;	char*				OriginCity;	char*				StockCodes;	char*				CompanyCodes;	char*				IndustryCodes;	} WAISDocumentLongHeader;typedef struct WAISDocumentText {	any*				DocumentID;	long				VersionNumber;	any*				DocumentText;	} WAISDocumentText;typedef struct WAISDocumentHeadlines {	any*				DocumentID;	long				VersionNumber;	char*				Source;	char*				Date;	char*				Headline;	char*				OriginCity;	} WAISDocumentHeadlines;typedef struct WAISDocumentCodes {	any*				DocumentID;	long				VersionNumber;	char*				StockCodes;	char*				CompanyCodes;	char*				IndustryCodes;	} WAISDocumentCodes;typedef struct WAISSearchResponse {	char*					SeedWordsUsed;	WAISDocumentHeader**		DocHeaders;	WAISDocumentShortHeader**	ShortHeaders;	WAISDocumentLongHeader**	LongHeaders;	WAISDocumentText**			Text;	WAISDocumentHeadlines**		Headlines;	WAISDocumentCodes**			Codes;	diagnosticRecord**			Diagnostics;	} WAISSearchResponse;/*----------------------------------------------------------------------*//* Functions */char *generate_search_apdu PARAMS((char* buff,  /* buffer to hold the apdu */			  long *buff_len, /* number of bytes written to the buffer */			  char *seed_words, /* string of the seed words */			  char *database_name,			  DocObj** docobjs,			  long maxDocsRetrieved			  ));DocObj* makeDocObjUsingWholeDocument PARAMS((any* aDocID,char* type));DocObj* makeDocObjUsingBytes PARAMS((any* aDocID,char* type,long start,long end));DocObj* makeDocObjUsingLines PARAMS((any* aDocID,char* type,long start,long end));DocObj* makeDocObjUsingParagraphs PARAMS((any* aDocID,char* type,any* start,any* end));void freeDocObj PARAMS((DocObj* doc));WAISInitResponse* makeWAISInitResponse PARAMS((long chunkCode,long chunkIDLen,					    char* chunkMarker,char* highlightMarker,					    char* deHighlightMarker,char* newLineChars));void freeWAISInitResponse PARAMS((WAISInitResponse* init));WAISSearch* makeWAISSearch PARAMS((	char* seedWords,DocObj** docs,char** textList,	long dateFactor,char* beginDateRange,char* endDateRange,	long maxDocsRetrieved));void freeWAISSearch PARAMS((WAISSearch* query));WAISDocumentHeader* makeWAISDocumentHeader PARAMS((	any* aDocID,long versionNumber,long score,long bestMatch,long docLen,	long lines,char** types,char* source,char* date,char* headline,char* originCity));void freeWAISDocumentHeader PARAMS((WAISDocumentHeader* header));char* writeWAISDocumentHeader PARAMS((WAISDocumentHeader* header,char* buffer,long* len));char* readWAISDocumentHeader PARAMS((WAISDocumentHeader** header,char* buffer));WAISDocumentShortHeader* makeWAISDocumentShortHeader PARAMS((	any* aDocID,long versionNumber,long score,long bestMatch,long docLen,long lines));void freeWAISDocumentShortHeader PARAMS((WAISDocumentShortHeader* header));char* writeWAISDocumentShortHeader PARAMS((WAISDocumentShortHeader* header,                                   char* buffer,long* len));char* readWAISDocumentShortHeader PARAMS((WAISDocumentShortHeader** header,char* buffer));WAISDocumentLongHeader* makeWAISDocumentLongHeader PARAMS((	any* aDocID,long versionNumber,long score,long bestMatch,long docLen,	long lines,char** types,char* source,char* date, char* headline,char* originCity,	char* stockCodes,char* companyCodes,char* industryCodes));void freeWAISDocumentLongHeader PARAMS((WAISDocumentLongHeader* header));char* writeWAISDocumentLongHeader PARAMS((WAISDocumentLongHeader* header,char* buffer,long* len));char* readWAISDocumentLongHeader PARAMS((WAISDocumentLongHeader** header,char* buffer));WAISSearchResponse* makeWAISSearchResponse PARAMS((	char* seedWordsUsed,WAISDocumentHeader** docHeaders,	WAISDocumentShortHeader** shortHeaders,	WAISDocumentLongHeader** longHeaders,	WAISDocumentText** text,WAISDocumentHeadlines** headlines,	WAISDocumentCodes** codes,	diagnosticRecord** diagnostics));void freeWAISSearchResponse PARAMS((WAISSearchResponse* response));WAISDocumentText* makeWAISDocumentText PARAMS((any* aDocID,long versionNumber,				       any* documentText));void freeWAISDocumentText PARAMS((WAISDocumentText* docText));char* writeWAISDocumentText PARAMS((WAISDocumentText* docText,char* buffer,long* len));char* readWAISDocumentText PARAMS((WAISDocumentText** docText,char* buffer));WAISDocumentHeadlines* makeWAISDocumentHeadlines PARAMS((	any* aDocID,long versionNumber,char* source,char* date,char* headline,	char* originCity));void freeWAISDocumentHeadlines PARAMS((WAISDocumentHeadlines* docHeadline));char* writeWAISDocumentHeadlines PARAMS((WAISDocumentHeadlines* docHeadline,char* buffer,long* len));char* readWAISDocumentHeadlines PARAMS((WAISDocumentHeadlines** docHeadline,char* buffer));WAISDocumentCodes* makeWAISDocumentCodes PARAMS((	any* aDocID,long versionNumber,char* stockCodes,char* companyCodes,	char* industryCodes));void freeWAISDocumentCodes PARAMS((WAISDocumentCodes* docCodes));char* writeWAISDocumentCodes PARAMS((WAISDocumentCodes* docCodes,char* buffer,long* len));char* readWAISDocumentCodes PARAMS((WAISDocumentCodes** docCodes,char* buffer));any* makeWAISTextQuery PARAMS((DocObj** docs));DocObj** readWAISTextQuery PARAMS((any* terms));void CSTFreeWAISInitResponse PARAMS((WAISInitResponse* init));void CSTFreeWAISSearch PARAMS((WAISSearch* query));void CSTFreeDocObj PARAMS((DocObj* doc));void CSTFreeWAISDocumentHeader PARAMS((WAISDocumentHeader* header));void CSTFreeWAISDocumentShortHeader PARAMS((WAISDocumentShortHeader* header));void CSTFreeWAISDocumentLongHeader PARAMS((WAISDocumentLongHeader* header));void CSTFreeWAISSearchResponse PARAMS((WAISSearchResponse* response));void CSTFreeWAISDocumentText PARAMS((WAISDocumentText* docText));void CSTFreeWAISDocHeadlines PARAMS((WAISDocumentHeadlines* docHeadline));void CSTFreeWAISDocumentCodes PARAMS((WAISDocumentCodes* docCodes));void CSTFreeWAISTextQuery PARAMS(( any* query));/*----------------------------------------------------------------------*/#endif /* ndef _H_WAIS_protocol_ *//***	Routines originally from WMessage.h -- FM****----------------------------------------------------------------------*//* WIDE AREA INFORMATION SERVER SOFTWARE   No guarantees or restrictions.  See the readme file for the full standard   disclaimer.   3.26.90*//* wais-message.h * * This is the header outside of WAIS Z39.50 messages.  The header will be * printable ascii, so as to be transportable.  This header will precede each * Z39.50 APDU, or zero-length message if it is an ACK or NACK.  Be sure to * change hdr_vers current value if you change the structure of the header. * * The characters in the header are case insensitive so that the systems from * the past that only handle one case can at least read the header. * * 7.5.90 HWM - added constants * 7/5/90 brewster added funtion prototypes and comments * 11/30/90 HWM - went to version 2 (inits and typed retrieval) */#ifndef WMESSAGE_H#define WMESSAGE_H#ifndef HTUTILS_H#include <HTUtils.h>#endif#include <HTVMS_WaisUI.h>typedef struct wais_header {        char    msg_len[10];    /* length in bytes of following message */        char    msg_type;       /* type of message: 'z'=Z39.50 APDU,                                   'a'=ACK, 'n'=NACK */        char    hdr_vers;       /* version of this header, currently = '2' */        char    server[10];     /* name or address of server */        char    compression;    /* <sp>=no compression, 'u'=unix compress */        char    encoding;       /* <sp>=no encoding, 'h'=hexize,				   'u'=uuencode */        char    msg_checksum;   /* XOR of every byte of message */        } WAISMessage;#define HEADER_LENGTH	25	/* number of bytes needed to write a				   wais-header (not sizeof(wais_header)) */#define HEADER_VERSION	(long)'2'/* message type */#define Z3950			'z'#define ACK			'a'#define	NAK			'n'/* compression */#define NO_COMPRESSION		' '#define UNIX_COMPRESSION	'u'/* encoding */#define NO_ENCODING		' '#define HEX_ENCODING		'h'  /* Swartz 4/3 encoding */#define IBM_HEXCODING		'i'  /* same as h but uses characters acceptable for IBM mainframes */#define UUENCODE		'u'void readWAISPacketHeader PARAMS((char* msgBuffer,WAISMessage *header_struct));long getWAISPacketLength PARAMS((WAISMessage* header));void writeWAISPacketHeader PARAMS((char* header,long dataLen,long type,				char* server,long compression,				long encoding,long version));#endif /* ndef WMESSAGE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -