📄 htvms_waisui.h
字号:
char* writeBinaryInteger PARAMS((long num,unsigned long size, char* buf,long* len));char* readBinaryInteger PARAMS((long* num,unsigned long size,char* buf));unsigned long writtenCompressedBinIntSize PARAMS((long num));char* writeNum PARAMS((long num,data_tag tag,char* buffer,long* len));char* readNum PARAMS((long* num,char* buffer));unsigned long writtenNumSize PARAMS((data_tag tag,long num));void doList PARAMS((void** list,void (*func)(void *)));char* writeProtocolVersion PARAMS((char* buf,long* len));char* defaultImplementationID PARAMS((void));char* defaultImplementationName PARAMS((void));char* defaultImplementationVersion PARAMS((void));/*----------------------------------------------------------------------*//*** Routines originally from ZType1.c -- FM****----------------------------------------------------------------------*//* This file implements the type 1 query defined in appendices B & C of the SR 1 spec. *//*----------------------------------------------------------------------*//* types and constants *//* new data tags */#define DT_AttributeList (data_tag)44#define DT_Term (data_tag)45#define DT_Operator (data_tag)46#define QT_BooleanQuery "1" /* standard boolean query *//* general attribute code - use in place of any attribute */#define IGNORE "ig"/* use value codes */#define UV_ISBN "ub"#define CORPORATE_NAME "uc"#define ISSN "us"#define PERSONAL_NAME "up"#define SUBJECT "uj"#define TITLE "ut"#define GEOGRAPHIC_NAME "ug"#define CODEN "ud"#define SUBJECT_SUBDIVISION "ue"#define SERIES_TITLE "uf"#define MICROFORM_GENERATION "uh"#define PLACE_OF_PUBLICATION "ui"#define NUC_CODE "uk"#define LANGUAGE "ul"#define COMBINATION_OF_USE_VALUES "um"#define SYSTEM_CONTROL_NUMBER "un"#define DATE "uo"#define LC_CONTROL_NUMBER "ur"#define MUSIC_PUBLISHERS_NUMBER "uu"#define GOVERNMENT_DOCUMENTS_NUMBER "uv"#define SUBJECT_CLASSIFICATION "uw"#define RECORD_TYPE "uy"/* relation value codes */#define EQUAL "re"#define GREATER_THAN "rg"#define GREATER_THAN_OR_EQUAL "ro"#define LESS_THAN "rl"#define LESS_THAN_OR_EQUAL "rp"#define NOT_EQUAL "rn"/* position value codes */#define FIRST_IN_FIELD "pf"#define FIRST_IN_SUBFIELD "ps"#define FIRST_IN_A_SUBFIELD "pa"#define FIRST_IN_NOT_A_SUBFIELD "pt"#define ANY_POSITION_IN_FIELD "py"/* structure value codes */#define PHRASE "sp"#define WORD "sw"#define KEY "sk"#define WORD_LIST "sl"/* truncation value codes */#define NO_TRUNCATION "tn"#define RIGHT_TRUNCATION "tr"#define PROC_NUM_INCLUDED_IN_SEARCH_ARG "ti"/* completeness value codes */#define INCOMPLETE_SUBFIELD "ci"#define COMPLETE_SUBFIELD "cs"#define COMPLETEFIELD "cf"/* operator codes */#define AND "a"#define OR "o"#define AND_NOT "n"/* term types */#define TT_Attribute 1#define TT_ResultSetID 2#define TT_Operator 3#define ATTRIBUTE_SIZE 3#define OPERATOR_SIZE 2typedef struct query_term { /* type */ long TermType; /* for term */ char Use[ATTRIBUTE_SIZE]; char Relation[ATTRIBUTE_SIZE]; char Position[ATTRIBUTE_SIZE]; char Structure[ATTRIBUTE_SIZE]; char Truncation[ATTRIBUTE_SIZE]; char Completeness[ATTRIBUTE_SIZE]; any* Term; /* for result set */ any* ResultSetID; /* for operator */ char Operator[OPERATOR_SIZE];} query_term;/*----------------------------------------------------------------------*//* functions */query_term* makeAttributeTerm PARAMS(( char* use,char* relation,char* position,char* structure, char* truncation,char* completeness,any* term));query_term* makeResultSetTerm PARAMS((any* resultSet));query_term* makeOperatorTerm PARAMS((char* operatorCode));void freeTerm PARAMS((void* qt));char* writeQueryTerm PARAMS((query_term* qt,char* buffer,long* len));char* readQueryTerm PARAMS((query_term** qt,char* buffer));any* writeQuery PARAMS((query_term** terms));query_term** readQuery PARAMS((any* info));/*----------------------------------------------------------------------*//*** Routines originally from UI.c -- FM****----------------------------------------------------------------------*/char *generate_retrieval_apdu PARAMS((char *buff, long *buff_len, any *docID, long chunk_type, long start_line, long end_line, char *type, char *database_name));longinterpret_message PARAMS((char *request_message, long request_length, char *response_message, long response_buffer_length, /* length of the buffer (modified)*/ long connection, boolean verbose));char *trim_junk PARAMS((char *headline));/*** Routines originally from ZProt.c -- FM****----------------------------------------------------------------------*//* APDU types */typedef struct InitAPDU { pdu_type PDUType; boolean willSearch,willPresent,willDelete; boolean supportAccessControl,supportResourceControl; long PreferredMessageSize; long MaximumRecordSize; char* IDAuthentication; char* ImplementationID; char* ImplementationName; char* ImplementationVersion; any* ReferenceID; void* UserInformationField; } InitAPDU;typedef struct InitResponseAPDU { pdu_type PDUType; boolean Result; boolean willSearch,willPresent,willDelete; boolean supportAccessControl,supportResourceControl; long PreferredMessageSize; long MaximumRecordSize; char* IDAuthentication; char* ImplementationID; char* ImplementationName; char* ImplementationVersion; any* ReferenceID; void* UserInformationField; } InitResponseAPDU;typedef struct SearchAPDU { pdu_type PDUType; long SmallSetUpperBound; long LargeSetLowerBound; long MediumSetPresentNumber; boolean ReplaceIndicator; char* ResultSetName; char** DatabaseNames; char* QueryType; char** ElementSetNames; any* ReferenceID; void* Query; } SearchAPDU;typedef struct SearchResponseAPDU { pdu_type PDUType; long SearchStatus; long ResultCount; long NumberOfRecordsReturned; long NextResultSetPosition; long ResultSetStatus; long PresentStatus; any* ReferenceID; void* DatabaseDiagnosticRecords; } SearchResponseAPDU;typedef struct PresentAPDU { pdu_type PDUType; long NumberOfRecordsRequested; long ResultSetStartPosition; char* ResultSetID; char* ElementSetNames; any* ReferenceID; void* PresentInfo; } PresentAPDU;typedef struct PresentResponseAPDU { pdu_type PDUType; boolean PresentStatus; long NumberOfRecordsReturned; long NextResultSetPosition; any* ReferenceID; void* DatabaseDiagnosticRecords; } PresentResponseAPDU;/*----------------------------------------------------------------------*//* Functions */InitAPDU* makeInitAPDU PARAMS((boolean search,boolean present,boolean deleteIt, boolean accessControl,boolean resourceControl, long prefMsgSize,long maxMsgSize, char* auth,char* id,char* name, char* version, any* refID,void* userInfo));void freeInitAPDU PARAMS((InitAPDU* init));char* writeInitAPDU PARAMS((InitAPDU* init,char* buffer,long* len));char* readInitAPDU PARAMS((InitAPDU** init,char* buffer));InitResponseAPDU* makeInitResponseAPDU PARAMS((boolean result, boolean search,boolean present,boolean deleteIt, boolean accessControl,boolean resourceControl, long prefMsgSize,long maxMsgSize, char* auth,char* id,char* name, char* version, any* refID,void* userInfo));void freeInitResponseAPDU PARAMS((InitResponseAPDU* init));char* writeInitResponseAPDU PARAMS((InitResponseAPDU* init,char* buffer,long* len));char* readInitResponseAPDU PARAMS((InitResponseAPDU** init,char* buffer));InitResponseAPDU* replyToInitAPDU PARAMS((InitAPDU* init,boolean result,void* userInfo));SearchAPDU* makeSearchAPDU PARAMS((long small,long large, long medium, boolean replace,char* name,char** databases, char* type,char** elements,any* refID,void* queryInfo));void freeSearchAPDU PARAMS((SearchAPDU* query));char* writeSearchAPDU PARAMS((SearchAPDU* query,char* buffer,long* len));char* readSearchAPDU PARAMS((SearchAPDU** query,char* buffer));SearchResponseAPDU* makeSearchResponseAPDU PARAMS((long result,long count, long recordsReturned,long nextPos, long resultStatus,long presentStatus, any* refID,void* records));void freeSearchResponseAPDU PARAMS((SearchResponseAPDU* queryResponse));char* writeSearchResponseAPDU PARAMS((SearchResponseAPDU* queryResponse,char* buffer,long* len));char* readSearchResponseAPDU PARAMS((SearchResponseAPDU** queryResponse,char* buffer));PresentAPDU* makePresentAPDU PARAMS((long recsReq, long startPos, char* resultID,any* refID,void* info));void freePresentAPDU PARAMS((PresentAPDU* present));char* writePresentAPDU PARAMS((PresentAPDU* present,char* buffer,long* len));char* readPresentAPDU PARAMS((PresentAPDU** present,char* buffer));PresentResponseAPDU* makePresentResponseAPDU PARAMS((boolean status,long recsRet, long nextPos,any* refID, void* records));void freePresentResponseAPDU PARAMS((PresentResponseAPDU* present));char* writePresentResponseAPDU PARAMS((PresentResponseAPDU* present,char* buffer,long* len));char* readPresentResponseAPDU PARAMS((PresentResponseAPDU** present,char* buffer));/*----------------------------------------------------------------------*//* user extension hooks: */extern char* writeInitInfo PARAMS((InitAPDU* init,char* buffer,long* len));extern char* readInitInfo PARAMS((void** info,char* buffer));extern char* writeInitResponseInfo PARAMS((InitResponseAPDU* init,char* buffer,long* len));extern char* readInitResponseInfo PARAMS((void** info,char* buffer));extern char* writeSearchInfo PARAMS((SearchAPDU* query,char* buffer,long* len));extern char* readSearchInfo PARAMS((void** info,char* buffer));extern char* writeSearchResponseInfo PARAMS((SearchResponseAPDU* query,char* buffer,long* len));extern char* readSearchResponseInfo PARAMS((void** info,char* buffer));extern char* writePresentInfo PARAMS((PresentAPDU* present,char* buffer,long* len));extern char* readPresentInfo PARAMS((void** info,char* buffer));extern char* writePresentResponseInfo PARAMS((PresentResponseAPDU* present,char* buffer,long* len));extern char* readPresentResponseInfo PARAMS((void** info,char* buffer));#endif /* HTVMSWAIS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -