/*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1998, Index Data.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation, in whole or in part, for any purpose, is hereby granted,
* OF THIS SOFTWARE.
*
* $Log: proto.h,v $
- * Revision 1.29 1996-01-02 11:46:49 quinn
+ * Revision 1.46 1998-10-20 13:55:44 quinn
+ * Fixed Scan bug in asn and client
+ *
+ * Revision 1.45 1998/08/19 16:10:07 adam
+ * Changed som member names of DeleteResultSetRequest/Response.
+ *
+ * Revision 1.44 1998/05/18 10:14:08 adam
+ * Minor change - removed 'dead' definitions.
+ *
+ * Revision 1.43 1998/03/31 11:07:45 adam
+ * Furhter work on UNIverse resource report.
+ * Added Extended Services handling in frontend server.
+ *
+ * Revision 1.42 1998/03/20 14:46:06 adam
+ * Added UNIverse Resource Reports.
+ *
+ * Revision 1.41 1998/02/10 15:31:52 adam
+ * Implemented date and time structure. Changed the Update Extended
+ * Service.
+ *
+ * Revision 1.40 1997/09/01 08:49:50 adam
+ * New windows NT/95 port using MSV5.0. To export DLL functions the
+ * YAZ_EXPORT modifier was added. Defined in yconfig.h.
+ *
+ * Revision 1.39 1997/05/14 06:53:44 adam
+ * C++ support.
+ *
+ * Revision 1.38 1997/04/30 08:52:09 quinn
+ * Null
+ *
+ * Revision 1.37 1996/10/09 15:54:58 quinn
+ * Added SearchInfoReport
+ *
+ * Revision 1.36 1996/10/07 15:29:20 quinn
+ * Added SOIF support
+ *
+ * Revision 1.35 1996/06/10 08:57:38 quinn
+ * Added OPAC, ResourceReport
+ *
+ * Revision 1.34 1996/06/10 08:55:36 quinn
+ * Added Summary.
+ *
+ * Revision 1.33 1996/02/23 10:00:51 quinn
+ * SCAN Work
+ *
+ * Revision 1.32 1996/02/20 12:52:39 quinn
+ * Various
+ *
+ * Revision 1.31 1996/01/22 09:46:45 quinn
+ * Added Sort PDU. Moved StringList to main protocol file.
+ *
+ * Revision 1.30 1996/01/10 15:21:32 quinn
+ * Added links to access control PDUs
+ *
+ * Revision 1.29 1996/01/02 11:46:49 quinn
* Changed 'operator' to 'roperator' to avoid C++ conflict.
* Moved to pl3
*
#include <odr_use.h>
#include <yaz-version.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/*
* Because we didn't have time to put all of the extra v3 elements in here
* before the first applications were written, we have to place them
typedef Odr_oct Z_SUTRS;
+typedef struct Z_StringList
+{
+ int num_strings;
+ char **strings;
+} Z_StringList;
+
/* ----------------- INIT SERVICE ----------------*/
typedef struct
Z_AttributesPlusTerm **terms;
} Z_AlternativeTerm;
-typedef struct Z_OccurrenceByAttributes
+typedef struct Z_ByDatabase
+{
+ char *db;
+ int *num; /* OPTIONAL */
+ Z_OtherInformation *otherDbInfo; /* OPTIONAL */
+} Z_ByDatabase;
+
+typedef struct Z_ByDatabaseList
+{
+ int num_elements;
+ Z_ByDatabase **elements;
+} Z_ByDatabaseList;
+
+typedef struct Z_ScanOccurrences
{
- Z_AttributeList *attributes;
-#if 0
int which;
-#define Z_OByAtt_global 0
-#define Z_ObyAtt_byDatabase 1
+#define Z_ScanOccurrences_global 0
+#define Z_ScanOccurrences_byDatabase 1
union
{
-#endif
- int *global;
-#if 0
- /* Z_ByDatabase *byDatabase; */
+ int *global;
+ Z_ByDatabaseList *byDatabase;
} u;
-#endif
+
+} Z_ScanOccurrences;
+
+typedef struct Z_OccurrenceByAttributesElem
+{
+ Z_AttributeList *attributes;
+ Z_ScanOccurrences *occurrences; /* OPTIONAL */
+ Z_OtherInformation *otherOccurInfo; /* OPTIONAL */
+} Z_OccurrenceByAttributesElem;
+
+typedef struct Z_OccurrenceByAttributes
+{
+ int num_elements;
+ Z_OccurrenceByAttributesElem **elements;
} Z_OccurrenceByAttributes;
typedef struct Z_TermInfo
{
Z_Term *term;
+ char *displayTerm; /* OPTIONAL */
Z_AttributeList *suggestedAttributes; /* OPTIONAL */
Z_AlternativeTerm *alternativeTerm; /* OPTIONAL */
int *globalOccurrences; /* OPTIONAL */
Z_OccurrenceByAttributes *byAttributes; /* OPTIONAL */
+ Z_OtherInformation *otherTermInfo; /* OPTIONAL */
} Z_TermInfo;
typedef struct Z_Entry
} u;
} Z_Entry;
+#ifdef BUGGY_LISTENTRIES
+
typedef struct Z_Entries
{
int num_entries;
} u;
} Z_ListEntries;
+#endif
+
+typedef struct Z_ListEntries {
+ int num_entries;
+ Z_Entry **entries; /* OPT */
+ int num_nonsurrogateDiagnostics;
+ Z_DiagRec **nonsurrogateDiagnostics; /* OPT */
+} Z_ListEntries;
+
typedef struct Z_ScanRequest
{
Z_ReferenceId *referenceId; /* OPTIONAL */
int *deleteFunction;
#define Z_DeleteRequest_list 0
#define Z_DeleteRequest_all 1
- int num_ids;
+ int num_resultSetList;
Z_ResultSetId **resultSetList; /* OPTIONAL */
#ifdef Z_95
Z_OtherInformation *otherInfo;
#endif
} Z_DeleteResultSetRequest;
+typedef struct Z_ListStatuses {
+ int num;
+ Z_ListStatus **elements;
+} Z_ListStatuses;
+
typedef struct Z_DeleteResultSetResponse
{
Z_ReferenceId *referenceId; /* OPTIONAL */
int *deleteOperationStatus;
- int num_statuses;
- Z_ListStatus *deleteListStatuses; /* OPTIONAL */
+ Z_ListStatuses *deleteListStatuses;/* OPTIONAL */
int *numberNotDeleted; /* OPTIONAL */
- int num_bulkStatuses;
- Z_ListStatus *bulkStatuses; /* OPTIONAL */
+ Z_ListStatuses *bulkStatuses; /* OPTIONAL */
char *deleteMessage; /* OPTIONAL */
#ifdef Z_95
Z_OtherInformation *otherInfo;
Z_OtherInformation *otherInfo; /* OPTIONAL */
} Z_ExtendedServicesResponse;
+/* ------------------------ Sort --------------------------- */
+
+typedef struct Z_SortAttributes
+{
+ Odr_oid *id;
+ Z_AttributeList *list;
+} Z_SortAttributes;
+
+typedef struct Z_SortKey
+{
+ int which;
+#define Z_SortKey_sortField 0
+#define Z_SortKey_elementSpec 1
+#define Z_SortKey_sortAttributes 2
+ union
+ {
+ char *sortField;
+ Z_Specification *elementSpec;
+ Z_SortAttributes *sortAttributes;
+ } u;
+} Z_SortKey;
+
+typedef struct Z_SortDbSpecific
+{
+ char *databaseName;
+ Z_SortKey *dbSort;
+} Z_SortDbSpecific;
+
+typedef struct Z_SortDbSpecificList
+{
+ int num_dbSpecific;
+ Z_SortDbSpecific **dbSpecific;
+} Z_SortDbSpecificList;
+
+typedef struct Z_SortElement
+{
+ int which;
+#define Z_SortElement_generic 0
+#define Z_SortElement_databaseSpecific 1
+ union
+ {
+ Z_SortKey *generic;
+ Z_SortDbSpecificList *databaseSpecific;
+ } u;
+} Z_SortElement;
+
+typedef struct Z_SortMissingValueAction
+{
+ int which;
+#define Z_SortMissingValAct_abort 0
+#define Z_SortMissingValAct_null 1
+#define Z_SortMissingValAct_valData 2
+ union
+ {
+ Odr_null *abort;
+ Odr_null *null;
+ Odr_oct *valData;
+ } u;
+} Z_SortMissingValueAction;
+
+typedef struct Z_SortKeySpec
+{
+ Z_SortElement *sortElement;
+ int *sortRelation;
+#define Z_SortRelation_ascending 0
+#define Z_SortRelation_descending 1
+#define Z_SortRelation_ascendingByFreq 3
+#define Z_SortRelation_descendingByFreq 4
+ int *caseSensitivity;
+#define Z_SortCase_caseSensitive 0
+#define Z_SortCase_caseInsensitive 1
+ Z_SortMissingValueAction *missingValueAction; /* OPTIONAL */
+} Z_SortKeySpec;
+
+typedef struct Z_SortResponse
+{
+ Z_ReferenceId *referenceId; /* OPTIONAL */
+ int *sortStatus;
+#define Z_SortStatus_success 0
+#define Z_SortStatus_partial_1 1
+#define Z_SortStatus_failure 2
+ int *resultSetStatus; /* OPTIONAL */
+#define Z_SortResultSetStatus_empty 1
+#define Z_SortResultSetStatus_interim 2
+#define Z_SortResultSetStatus_unchanged 3
+#define Z_SortResultSetStatus_none 4
+ Z_DiagRecs *diagnostics; /* OPTIONAL */
+ Z_OtherInformation *otherInfo; /* OPTIONAL */
+} Z_SortResponse;
+
+typedef struct Z_SortKeySpecList
+{
+ int num_specs;
+ Z_SortKeySpec **specs;
+} Z_SortKeySpecList;
+
+typedef struct Z_SortRequest
+{
+ Z_ReferenceId *referenceId; /* OPTIONAL */
+ Z_StringList *inputResultSetNames;
+ char *sortedResultSetName;
+ Z_SortKeySpecList *sortSequence;
+ Z_OtherInformation *otherInfo; /* OPTIONAL */
+} Z_SortRequest;
+
+/* ----------------------- Resource Report ------------------ */
+
+typedef struct Z_ResourceReportRequest
+{
+ Z_ReferenceId *referenceId; /* OPTIONAL */
+ Z_ReferenceId *opId; /* OPTIONAL */
+ Odr_oid *prefResourceReportFormat; /* OPTIONAL */
+ Z_OtherInformation *otherInfo; /* OPTIONAL */
+} Z_ResourceReportRequest;
+
+typedef struct Z_ResourceReportResponse
+{
+ Z_ReferenceId *referenceId; /* OPTIONAL */
+ int *resourceReportStatus;
+#define Z_ResourceReportStatus_success 0
+#define Z_ResourceReportStatus_partial 1
+#define Z_ResourceReportStatus_failure_1 2
+#define Z_ResourceReportStatus_failure_2 3
+#define Z_ResourceReportStatus_failure_3 4
+#define Z_ResourceReportStatus_failure_4 5
+#define Z_ResourceReportStatus_failure_5 6
+#define Z_ResourceReportStatus_failure_6 7
+ Z_External *resourceReport; /* OPTIONAL */
+ Z_OtherInformation *otherInfo; /* OPTIONAL */
+} Z_ResourceReportResponse;
+
/* ------------------------ APDU ---------------------------- */
typedef struct Z_APDU
#define Z_APDU_extendedServicesRequest 14
#define Z_APDU_extendedServicesResponse 15
#define Z_APDU_close 16
+#define Z_APDU_accessControlRequest 17
+#define Z_APDU_accessControlResponse 18
+#define Z_APDU_sortRequest 20
+#define Z_APDU_sortResponse 21
+#define Z_APDU_resourceReportRequest 22
+#define Z_APDU_resourceReportResponse 23
union
{
Z_InitRequest *initRequest;
Z_PresentResponse *presentResponse;
Z_DeleteResultSetRequest *deleteResultSetRequest;
Z_DeleteResultSetResponse *deleteResultSetResponse;
+ Z_AccessControlRequest *accessControlRequest;
+ Z_AccessControlResponse *accessControlResponse;
Z_ResourceControlRequest *resourceControlRequest;
Z_ResourceControlResponse *resourceControlResponse;
Z_TriggerResourceControlRequest *triggerResourceControlRequest;
+ Z_ResourceReportRequest *resourceReportRequest;
+ Z_ResourceReportResponse *resourceReportResponse;
Z_ScanRequest *scanRequest;
Z_ScanResponse *scanResponse;
+ Z_SortRequest *sortRequest;
+ Z_SortResponse *sortResponse;
Z_Segment *segmentRequest;
Z_ExtendedServicesRequest *extendedServicesRequest;
Z_ExtendedServicesResponse *extendedServicesResponse;
} u;
} Z_APDU;
-int z_APDU(ODR o, Z_APDU **p, int opt);
-int z_SUTRS(ODR o, Odr_oct **p, int opt);
-
-Z_InitRequest *zget_InitRequest(ODR o);
-Z_InitResponse *zget_InitResponse(ODR o);
-Z_SearchRequest *zget_SearchRequest(ODR o);
-Z_SearchResponse *zget_SearchResponse(ODR o);
-Z_PresentRequest *zget_PresentRequest(ODR o);
-Z_PresentResponse *zget_PresentResponse(ODR o);
-Z_DeleteResultSetRequest *zget_DeleteResultSetRequest(ODR o);
-Z_DeleteResultSetResponse *zget_DeleteResultSetResponse(ODR o);
-Z_ScanRequest *zget_ScanRequest(ODR o);
-Z_ScanResponse *zget_ScanResponse(ODR o);
-Z_TriggerResourceControlRequest *zget_TriggerResourceControlRequest(ODR o);
-Z_ResourceControlRequest *zget_ResourceControlRequest(ODR o);
-Z_ResourceControlResponse *zget_ResourceControlResponse(ODR o);
-Z_Close *zget_Close(ODR o);
-int z_InternationalString(ODR o, char **p, int opt);
-int z_OtherInformation(ODR o, Z_OtherInformation **p, int opt);
-int z_ElementSetName(ODR o, char **p, int opt);
-int z_IntUnit(ODR o, Z_IntUnit **p, int opt);
-int z_Unit(ODR o, Z_Unit **p, int opt);
-int z_DatabaseName(ODR o, Z_DatabaseName **p, int opt);
-int z_StringOrNumeric(ODR o, Z_StringOrNumeric **p, int opt);
-int z_OtherInformationUnit(ODR o, Z_OtherInformationUnit **p, int opt);
-int z_Term(ODR o, Z_Term **p, int opt);
-int z_Specification(ODR o, Z_Specification **p, int opt);
-int z_Permissions(ODR o, Z_Permissions **p, int opt);
-int z_DiagRec(ODR o, Z_DiagRec **p, int opt);
-int z_AttributeList(ODR o, Z_AttributeList **p, int opt);
-int z_DefaultDiagFormat(ODR o, Z_DefaultDiagFormat **p, int opt);
-Z_APDU *zget_APDU(ODR o, int which);
+YAZ_EXPORT int z_APDU(ODR o, Z_APDU **p, int opt);
+YAZ_EXPORT int z_SUTRS(ODR o, Odr_oct **p, int opt);
+
+YAZ_EXPORT Z_InitRequest *zget_InitRequest(ODR o);
+YAZ_EXPORT Z_InitResponse *zget_InitResponse(ODR o);
+YAZ_EXPORT Z_SearchRequest *zget_SearchRequest(ODR o);
+YAZ_EXPORT Z_SearchResponse *zget_SearchResponse(ODR o);
+YAZ_EXPORT Z_PresentRequest *zget_PresentRequest(ODR o);
+YAZ_EXPORT Z_PresentResponse *zget_PresentResponse(ODR o);
+YAZ_EXPORT Z_DeleteResultSetRequest *zget_DeleteResultSetRequest(ODR o);
+YAZ_EXPORT Z_DeleteResultSetResponse *zget_DeleteResultSetResponse(ODR o);
+YAZ_EXPORT Z_ScanRequest *zget_ScanRequest(ODR o);
+YAZ_EXPORT Z_ScanResponse *zget_ScanResponse(ODR o);
+YAZ_EXPORT Z_TriggerResourceControlRequest *zget_TriggerResourceControlRequest(ODR o);
+YAZ_EXPORT Z_ResourceControlRequest *zget_ResourceControlRequest(ODR o);
+YAZ_EXPORT Z_ResourceControlResponse *zget_ResourceControlResponse(ODR o);
+YAZ_EXPORT Z_Close *zget_Close(ODR o);
+YAZ_EXPORT int z_StringList(ODR o, Z_StringList **p, int opt);
+YAZ_EXPORT int z_InternationalString(ODR o, char **p, int opt);
+YAZ_EXPORT int z_OtherInformation(ODR o, Z_OtherInformation **p, int opt);
+YAZ_EXPORT int z_ElementSetName(ODR o, char **p, int opt);
+YAZ_EXPORT int z_IntUnit(ODR o, Z_IntUnit **p, int opt);
+YAZ_EXPORT int z_Unit(ODR o, Z_Unit **p, int opt);
+YAZ_EXPORT int z_DatabaseName(ODR o, Z_DatabaseName **p, int opt);
+YAZ_EXPORT int z_StringOrNumeric(ODR o, Z_StringOrNumeric **p, int opt);
+YAZ_EXPORT int z_OtherInformationUnit(ODR o, Z_OtherInformationUnit **p, int opt);
+YAZ_EXPORT int z_Term(ODR o, Z_Term **p, int opt);
+YAZ_EXPORT int z_Specification(ODR o, Z_Specification **p, int opt);
+YAZ_EXPORT int z_Permissions(ODR o, Z_Permissions **p, int opt);
+YAZ_EXPORT int z_DiagRec(ODR o, Z_DiagRec **p, int opt);
+YAZ_EXPORT int z_DiagRecs(ODR o, Z_DiagRecs **p, int opt);
+YAZ_EXPORT int z_AttributeList(ODR o, Z_AttributeList **p, int opt);
+YAZ_EXPORT int z_DefaultDiagFormat(ODR o, Z_DefaultDiagFormat **p, int opt);
+YAZ_EXPORT Z_APDU *zget_APDU(ODR o, int which);
+YAZ_EXPORT int z_Query(ODR o, Z_Query **p, int opt);
+
+#ifdef __cplusplus
+}
+#endif
#include <prt-rsc.h>
#include <prt-acc.h>
#include <prt-exp.h>
#include <prt-grs.h>
+#include <prt-arc.h>
#include <prt-exd.h>
#include <prt-dia.h>
#include <prt-esp.h>
+#include <prt-add.h>
+#include <prt-dat.h>
+#include <prt-univ.h>
#include <prt-ext.h>
#endif