diff options
author | Mats O Jansson <maja@cvs.openbsd.org> | 1998-03-11 17:48:09 +0000 |
---|---|---|
committer | Mats O Jansson <maja@cvs.openbsd.org> | 1998-03-11 17:48:09 +0000 |
commit | 69de3a9e357327c17caa3b7bb058035e263573bc (patch) | |
tree | f6260f228c4d949b174128d017a7e323c7122f32 /gnu/usr.bin/lynx/WWW/Library/Implementation/HTVMS_WaisProt.h | |
parent | b81973f175db7d3f4c763069b191dd57f4bd83d3 (diff) |
Lynx 2.8
Diffstat (limited to 'gnu/usr.bin/lynx/WWW/Library/Implementation/HTVMS_WaisProt.h')
-rw-r--r-- | gnu/usr.bin/lynx/WWW/Library/Implementation/HTVMS_WaisProt.h | 376 |
1 files changed, 376 insertions, 0 deletions
diff --git a/gnu/usr.bin/lynx/WWW/Library/Implementation/HTVMS_WaisProt.h b/gnu/usr.bin/lynx/WWW/Library/Implementation/HTVMS_WaisProt.h new file mode 100644 index 00000000000..1a4e83d50f1 --- /dev/null +++ b/gnu/usr.bin/lynx/WWW/Library/Implementation/HTVMS_WaisProt.h @@ -0,0 +1,376 @@ +/* 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_ + +/*----------------------------------------------------------------------*/ +/* 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 */ + +DocObj* makeDocObjUsingWholeDocument _AP((any* aDocID,char* type)); +DocObj* makeDocObjUsingBytes _AP((any* aDocID,char* type,long start,long end)); +DocObj* makeDocObjUsingLines _AP((any* aDocID,char* type,long start,long end)); +DocObj* makeDocObjUsingParagraphs _AP((any* aDocID,char* type,any* start,any* end)); +void freeDocObj _AP((DocObj* doc)); + +WAISInitResponse* makeWAISInitResponse _AP((long chunkCode,long chunkIDLen, + char* chunkMarker,char* highlightMarker, + char* deHighlightMarker,char* newLineChars)); +void freeWAISInitResponse _AP((WAISInitResponse* init)); + +WAISSearch* makeWAISSearch _AP(( + char* seedWords,DocObj** docs,char** textList, + long dateFactor,char* beginDateRange,char* endDateRange, + long maxDocsRetrieved)); +void freeWAISSearch _AP((WAISSearch* query)); + +WAISDocumentHeader* makeWAISDocumentHeader _AP(( + any* aDocID,long versionNumber,long score,long bestMatch,long docLen, + long lines,char** types,char* source,char* date,char* headline,char* originCity)); +void freeWAISDocumentHeader _AP((WAISDocumentHeader* header)); +char* writeWAISDocumentHeader _AP((WAISDocumentHeader* header,char* buffer,long* len)); +char* readWAISDocumentHeader _AP((WAISDocumentHeader** header,char* buffer)); + +WAISDocumentShortHeader* makeWAISDocumentShortHeader _AP(( + any* aDocID,long versionNumber,long score,long bestMatch,long docLen,long lines)); +void freeWAISDocumentShortHeader _AP((WAISDocumentShortHeader* header)); +char* writeWAISDocumentShortHeader _AP((WAISDocumentShortHeader* header, + char* buffer,long* len)); +char* readWAISDocumentShortHeader _AP((WAISDocumentShortHeader** header,char* buffer)); + +WAISDocumentLongHeader* makeWAISDocumentLongHeader _AP(( + 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 _AP((WAISDocumentLongHeader* header)); +char* writeWAISDocumentLongHeader _AP((WAISDocumentLongHeader* header,char* buffer,long* len)); +char* readWAISDocumentLongHeader _AP((WAISDocumentLongHeader** header,char* buffer)); + +WAISSearchResponse* makeWAISSearchResponse _AP(( + char* seedWordsUsed,WAISDocumentHeader** docHeaders, + WAISDocumentShortHeader** shortHeaders, + WAISDocumentLongHeader** longHeaders, + WAISDocumentText** text,WAISDocumentHeadlines** headlines, + WAISDocumentCodes** codes, + diagnosticRecord** diagnostics)); +void freeWAISSearchResponse _AP((WAISSearchResponse* response)); + +WAISDocumentText* makeWAISDocumentText _AP((any* aDocID,long versionNumber, + any* documentText)); +void freeWAISDocumentText _AP((WAISDocumentText* docText)); +char* writeWAISDocumentText _AP((WAISDocumentText* docText,char* buffer,long* len)); +char* readWAISDocumentText _AP((WAISDocumentText** docText,char* buffer)); + +WAISDocumentHeadlines* makeWAISDocumentHeadlines _AP(( + any* aDocID,long versionNumber,char* source,char* date,char* headline, + char* originCity)); +void freeWAISDocumentHeadlines _AP((WAISDocumentHeadlines* docHeadline)); +char* writeWAISDocumentHeadlines _AP((WAISDocumentHeadlines* docHeadline,char* buffer,long* len)); +char* readWAISDocumentHeadlines _AP((WAISDocumentHeadlines** docHeadline,char* buffer)); + +WAISDocumentCodes* makeWAISDocumentCodes _AP(( + any* aDocID,long versionNumber,char* stockCodes,char* companyCodes, + char* industryCodes)); +void freeWAISDocumentCodes _AP((WAISDocumentCodes* docCodes)); +char* writeWAISDocumentCodes _AP((WAISDocumentCodes* docCodes,char* buffer,long* len)); +char* readWAISDocumentCodes _AP((WAISDocumentCodes** docCodes,char* buffer)); + +any* makeWAISTextQuery _AP((DocObj** docs)); +DocObj** readWAISTextQuery _AP((any* terms)); + +void CSTFreeWAISInitResponse _AP((WAISInitResponse* init)); +void CSTFreeWAISSearch _AP((WAISSearch* query)); +void CSTFreeDocObj _AP((DocObj* doc)); +void CSTFreeWAISDocumentHeader _AP((WAISDocumentHeader* header)); +void CSTFreeWAISDocumentShortHeader _AP((WAISDocumentShortHeader* header)); +void CSTFreeWAISDocumentLongHeader _AP((WAISDocumentLongHeader* header)); +void CSTFreeWAISSearchResponse _AP((WAISSearchResponse* response)); +void CSTFreeWAISDocumentText _AP((WAISDocumentText* docText)); +void CSTFreeWAISDocHeadlines _AP((WAISDocumentHeadlines* docHeadline)); +void CSTFreeWAISDocumentCodes _AP((WAISDocumentCodes* docCodes)); +void CSTFreeWAISTextQuery _AP(( 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 + +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 _AP((char* msgBuffer,WAISMessage *header_struct)); +long getWAISPacketLength _AP((WAISMessage* header)); +void writeWAISPacketHeader _AP((char* header,long dataLen,long type, + char* server,long compression, + long encoding,long version)); + +#endif /* ndef WMESSAGE_H */ |