summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/lynx/WWW/Library/Implementation/HTVMS_WaisProt.h
diff options
context:
space:
mode:
authorMats O Jansson <maja@cvs.openbsd.org>1998-03-11 17:48:09 +0000
committerMats O Jansson <maja@cvs.openbsd.org>1998-03-11 17:48:09 +0000
commit69de3a9e357327c17caa3b7bb058035e263573bc (patch)
treef6260f228c4d949b174128d017a7e323c7122f32 /gnu/usr.bin/lynx/WWW/Library/Implementation/HTVMS_WaisProt.h
parentb81973f175db7d3f4c763069b191dd57f4bd83d3 (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.h376
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 */