*** empty log message ***
[yaz-moved-to-github.git] / include / proto.h
index a34002b..08a8e90 100644 (file)
  * OF THIS SOFTWARE.
  *
  * $Log: proto.h,v $
- * Revision 1.15  1995-06-14 15:26:43  quinn
+ * Revision 1.24  1995-08-29 11:17:43  quinn
+ * *** empty log message ***
+ *
+ * Revision 1.23  1995/08/21  09:10:36  quinn
+ * Smallish fixes to suppport new formats.
+ *
+ * Revision 1.22  1995/08/17  12:45:14  quinn
+ * Fixed minor problems with GRS-1. Added support in c&s.
+ *
+ * Revision 1.21  1995/08/15  12:00:11  quinn
+ * Updated External
+ *
+ * Revision 1.20  1995/08/10  08:54:35  quinn
+ * Added Explain.
+ *
+ * Revision 1.19  1995/06/19  12:38:28  quinn
+ * Reorganized include-files. Added small features.
+ *
+ * Revision 1.18  1995/06/16  13:16:05  quinn
+ * Fixed Defaultdiagformat.
+ *
+ * Revision 1.17  1995/06/15  15:42:05  quinn
+ * Fixed some v3 bugs
+ *
+ * Revision 1.16  1995/06/15  07:45:06  quinn
+ * Moving to v3.
+ *
+ * Revision 1.15  1995/06/14  15:26:43  quinn
  * *** empty log message ***
  *
  * Revision 1.14  1995/06/07  14:42:34  quinn
  * apps have been updated, we'll remove the #ifdefs.
  */
 
-#define Z_V3
+#define Z_95
 
 /* ----------------- GLOBAL AUXILIARY DEFS ----------------*/
 
+struct Z_External;
+typedef struct Z_External Z_External;
+
 typedef Odr_oct Z_ReferenceId;
 typedef char Z_DatabaseName;
 typedef char Z_ResultSetId;
@@ -148,7 +178,7 @@ typedef struct Z_OtherInformationUnit
     {
        char *characterInfo; 
        Odr_oct *binaryInfo;
-       Odr_external *externallyDefinedInfo;
+       Z_External *externallyDefinedInfo;
        Odr_oid *oid;
     } information;
 } Z_OtherInformationUnit;
@@ -187,6 +217,8 @@ typedef struct Z_IntUnit
     Z_Unit *unitUsed;
 } Z_IntUnit;
 
+typedef Odr_oct Z_SUTRS;
+
 /* ----------------- INIT SERVICE  ----------------*/
 
 typedef struct
@@ -210,7 +242,7 @@ typedef struct Z_IdAuthentication
        char *open;
        Z_IdPass *idPass;
        Odr_null *anonymous;
-       Odr_external *other;
+       Z_External *other;
     } u;
 } Z_IdAuthentication;
 
@@ -245,7 +277,7 @@ typedef struct Z_InitRequest
     char *implementationId;                      /* OPTIONAL */
     char *implementationName;                    /* OPTIONAL */
     char *implementationVersion;                 /* OPTIONAL */
-    Odr_external *userInformationField;          /* OPTIONAL */
+    Z_External *userInformationField;          /* OPTIONAL */
 #ifdef Z_95
     Z_OtherInformation *otherInfo;               /* OPTIONAL */
 #endif
@@ -262,7 +294,7 @@ typedef struct Z_InitResponse
     char *implementationId;      /* OPTIONAL */
     char *implementationName;    /* OPTIONAL */
     char *implementationVersion; /* OPTIONAL */
-    Odr_external *userInformationField; /* OPTIONAL */
+    Z_External *userInformationField; /* OPTIONAL */
 #ifdef Z_95
     Z_OtherInformation *otherInfo;    /* OPTIONAL */
 #endif
@@ -331,14 +363,12 @@ typedef struct Z_AttributeElement
     {
        int *numeric;
        Z_ComplexAttribute *complex;
-    } u;
+    } value;
 #else
     int *attributeValue;
 #endif
 } Z_AttributeElement;
 
-#ifdef Z_V3
-
 typedef struct Z_Term 
 {
     enum
@@ -359,23 +389,17 @@ typedef struct Z_Term
        char *characterString;
        Odr_oid *oid;
        char *dateTime;
-       Odr_external *external;
+       Z_External *external;
        /* Z_IntUnit *integerAndUnit; */
        Odr_null *null;
     } u;
 } Z_Term;
 
-#endif
-
 typedef struct Z_AttributesPlusTerm
 {
     int num_attributes;
     Z_AttributeElement **attributeList;
-#ifdef Z_V3
     Z_Term *term;
-#else
-    Odr_oct *term;
-#endif
 } Z_AttributesPlusTerm;
 
 typedef struct Z_ResultSetPlusAttributes
@@ -518,7 +542,7 @@ typedef struct Z_SearchRequest
 
 /* ------------------------ RECORD -------------------------- */
 
-typedef Odr_external Z_DatabaseRecord;
+typedef Z_External Z_DatabaseRecord;
 
 #ifdef Z_95
 
@@ -526,6 +550,13 @@ typedef struct Z_DefaultDiagFormat
 {
     Odr_oid *diagnosticSetId; /* This is opt'l to interwork with bad targets */
     int *condition;
+    /* until the whole character set issue becomes more definite,
+     * you can probably ignore this on input. */
+    enum  
+    {
+       Z_DiagForm_v2AddInfo,
+       Z_DiagForm_v3AddInfo
+    } which;
     char *addinfo;
 } Z_DefaultDiagFormat;
 
@@ -539,7 +570,7 @@ typedef struct Z_DiagRec
     union
     {
        Z_DefaultDiagFormat *defaultFormat;
-       Odr_external *externallyDefined;
+       Z_External *externallyDefined;
     } u;
 } Z_DiagRec;
 
@@ -554,11 +585,11 @@ typedef struct Z_DiagRec
 
 #endif
 
-typedef struct Z_DiagRecList
+typedef struct Z_DiagRecs
 {
-    int num;
-    Z_DiagRec **list;
-} Z_DiagRecList;
+    int num_diagRecs;
+    Z_DiagRec **diagRecs;
+} Z_DiagRecs;
 
 typedef struct Z_NamePlusRecord
 {
@@ -566,15 +597,13 @@ typedef struct Z_NamePlusRecord
     enum
     {
        Z_NamePlusRecord_databaseRecord,
-       Z_NamePlusRecord_surrogateDiagnostic,
-       Z_NamePlusRecord_multipleNonSurDiagnostics
+       Z_NamePlusRecord_surrogateDiagnostic
     }
     which;
     union
     {
        Z_DatabaseRecord *databaseRecord;
        Z_DiagRec *surrogateDiagnostic;
-       Z_DiagRecList *multipleNonSurDiagnostics;
     } u;
 } Z_NamePlusRecord;
 
@@ -596,7 +625,7 @@ typedef struct Z_Records
     {
        Z_NamePlusRecordList *databaseOrSurDiagnostics;
        Z_DiagRec *nonSurrogateDiagnostic;
-       Z_DiagRecList *multipleNonSurDiagnostics;
+       Z_DiagRecs *multipleNonSurDiagnostics;
     } u;
 } Z_Records;
 
@@ -639,7 +668,7 @@ typedef struct Z_ElementSpec
     union
     {
        char *elementSetName;
-       Odr_external *externalSpec;
+       Z_External *externalSpec;
     } u;
 } Z_ElementSpec;
 
@@ -730,19 +759,25 @@ typedef struct Z_TriggerResourceControlRequest
 #define Z_TriggerResourceCtrl_cancel          3
     Odr_oid *prefResourceReportFormat;  /* OPTIONAL */
     bool_t *resultSetWanted;            /* OPTIONAL */
+#ifdef Z_95
+    Z_OtherInformation *otherInfo;
+#endif
 } Z_TriggerResourceControlRequest;
 
 typedef struct Z_ResourceControlRequest
 {
     Z_ReferenceId *referenceId;    /* OPTIONAL */
     bool_t *suspendedFlag;         /* OPTIONAL */
-    Odr_external *resourceReport; /* OPTIONAL */
+    Z_External *resourceReport; /* OPTIONAL */
     int *partialResultsAvailable;  /* OPTIONAL */
 #define Z_ResourceControlRequest_subset    1
 #define Z_ResourceControlRequest_interim   2
 #define Z_ResourceControlRequest_none      3
     bool_t *responseRequired;
     bool_t *triggeredRequestFlag;  /* OPTIONAL */
+#ifdef Z_95
+    Z_OtherInformation *otherInfo;
+#endif
 } Z_ResourceControlRequest;
 
 typedef struct Z_ResourceControlResponse
@@ -750,6 +785,9 @@ typedef struct Z_ResourceControlResponse
     Z_ReferenceId *referenceId;    /* OPTIONAL */
     bool_t *continueFlag;
     bool_t *resultSetWanted;       /* OPTIONAL */
+#ifdef Z_95
+    Z_OtherInformation *otherInfo;
+#endif
 } Z_ResourceControlResponse;
 
 
@@ -766,9 +804,9 @@ typedef struct Z_AccessControlRequest
     union
     {
        Odr_oct *simpleForm;
-       Odr_external *externallyDefined;
+       Z_External *externallyDefined;
     } u;
-#ifdef Z_OTHERINFO
+#ifdef Z_95
     Z_OtherInformation *otherInfo;           /* OPTIONAL */
 #endif
 } Z_AccessControlRequest;
@@ -784,10 +822,10 @@ typedef struct Z_AccessControlResponse
     union
     {
        Odr_oct *simpleForm;
-       Odr_external *externallyDefined;
+       Z_External *externallyDefined;
     } u;
     Z_DiagRec *diagnostic;                   /* OPTIONAL */
-#ifdef Z_OTHERINFO
+#ifdef Z_95
     Z_OtherInformation *otherInfo;           /* OPTIONAL */
 #endif
 } Z_AccessControlResponse;
@@ -854,12 +892,6 @@ typedef struct Z_Entries
     Z_Entry **entries;
 } Z_Entries;
 
-typedef struct Z_DiagRecs
-{
-    int num_diagRecs;
-    Z_DiagRec **diagRecs;
-} Z_DiagRecs;
-
 typedef struct Z_ListEntries
 {
     enum
@@ -884,6 +916,9 @@ typedef struct Z_ScanRequest
     int *stepSize;                    /* OPTIONAL */
     int *numberOfTermsRequested;
     int *preferredPositionInResponse;   /* OPTIONAL */
+#ifdef Z_95
+    Z_OtherInformation *otherInfo;
+#endif
 } Z_ScanRequest;
 
 typedef struct Z_ScanResponse
@@ -902,6 +937,9 @@ typedef struct Z_ScanResponse
     int *positionOfTerm;              /* OPTIONAL */
     Z_ListEntries *entries;           /* OPTIONAL */
     Odr_oid *attributeSet;            /* OPTIONAL */
+#ifdef Z_95
+    Z_OtherInformation *otherInfo;
+#endif
 } Z_ScanResponse; 
 
 
@@ -933,7 +971,7 @@ typedef struct Z_DeleteResultSetRequest
 #define Z_DeleteRequest_all     1
     int num_ids;
     Z_ResultSetId **resultSetList;      /* OPTIONAL */
-#ifdef Z_OTHERINFO
+#ifdef Z_95
     Z_OtherInformation *otherInfo;
 #endif
 } Z_DeleteResultSetRequest;
@@ -948,7 +986,7 @@ typedef struct Z_DeleteResultSetResponse
     int num_bulkStatuses;
     Z_ListStatus *bulkStatuses;        /* OPTIONAL */
     char *deleteMessage;               /* OPTIONAL */
-#ifdef Z_OTHERINFO
+#ifdef Z_95
     Z_OtherInformation *otherInfo;
 #endif
 } Z_DeleteResultSetResponse;
@@ -971,8 +1009,8 @@ typedef struct Z_Close
 #define Z_Close_unspecified        9
     char *diagnosticInformation;          /* OPTIONAL */
     Odr_oid *resourceReportFormat;        /* OPTIONAL */
-    Odr_external *resourceReport;         /* OPTIONAL */
-#ifdef Z_OTHERINFO
+    Z_External *resourceReport;         /* OPTIONAL */
+#ifdef Z_95
     Z_OtherInformation *otherInfo;        /* OPTIONAL */
 #endif
 } Z_Close;
@@ -981,12 +1019,62 @@ typedef struct Z_Close
 
 typedef struct Z_Segment
 {
-    Z_ReferenceId *referenceid;   /* OPTIONAL */
+    Z_ReferenceId *referenceId;   /* OPTIONAL */
     int *numberOfRecordsReturned;
-    Z_NamePlusRecord *segmentRecords;
+    int num_segmentRecords;
+    Z_NamePlusRecord **segmentRecords;
     Z_OtherInformation *otherInfo;  /* OPTIONAL */
 } Z_Segment;
 
+/* ----------------------- Extended Services ---------------- */
+
+typedef struct Z_Permissions
+{
+    char *userId;                         
+    int num_allowableFunctions;
+    int **allowableFunctions;             
+#define Z_Permissions_delete              1
+#define Z_Permissions_modifyContents      2
+#define Z_Permissions_modifyPermissions   3
+#define Z_Permissions_present             4
+#define Z_Permissions_invoke              5
+} Z_Permissions;
+
+typedef struct Z_ExtendedServicesRequest
+{
+    Z_ReferenceId *referenceId;             /* OPTIONAL */
+    int *function;                        
+#define Z_ExtendedServicesRequest_create              1
+#define Z_ExtendedServicesRequest_delete              2
+#define Z_ExtendedServicesRequest_modify              3
+    Odr_oid *packageType;                 
+    char *packageName;                      /* OPTIONAL */
+    char *userId;                           /* OPTIONAL */
+    Z_IntUnit *retentionTime;               /* OPTIONAL */
+    Z_Permissions *permissions;             /* OPTIONAL */
+    char *description;                      /* OPTIONAL */
+    Z_External *taskSpecificParameters;     /* OPTIONAL */
+    int *waitAction;                      
+#define Z_ExtendedServicesRequest_wait                1
+#define Z_ExtendedServicesRequest_waitIfPossible      2
+#define Z_ExtendedServicesRequest_dontWait            3
+#define Z_ExtendedServicesRequest_dontReturnPackage   4
+    char *elements;             /* OPTIONAL */
+    Z_OtherInformation *otherInfo;          /* OPTIONAL */
+} Z_ExtendedServicesRequest;
+
+typedef struct Z_ExtendedServicesResponse
+{
+    Z_ReferenceId *referenceId;             /* OPTIONAL */
+    int *operationStatus;                 
+#define Z_ExtendedServicesResponse_done                1
+#define Z_ExtendedServicesResponse_accepted            2
+#define Z_ExtendedServicesResponse_failure             3
+    int num_diagnostics;
+    Z_DiagRec **diagnostics;                /* OPTIONAL */
+    Z_External *taskPackage;                /* OPTIONAL */
+    Z_OtherInformation *otherInfo;          /* OPTIONAL */
+} Z_ExtendedServicesResponse;
 
 /* ------------------------ APDU ---------------------------- */
 
@@ -1008,6 +1096,8 @@ typedef struct Z_APDU
        Z_APDU_scanRequest,
        Z_APDU_scanResponse,
        Z_APDU_segmentRequest,
+       Z_APDU_extendedServicesRequest,
+       Z_APDU_extendedServicesResponse,
        Z_APDU_close
     } which;
     union
@@ -1026,11 +1116,14 @@ typedef struct Z_APDU
        Z_ScanRequest *scanRequest;
        Z_ScanResponse *scanResponse;
        Z_Segment *segmentRequest;
+       Z_ExtendedServicesRequest *extendedServicesRequest;
+       Z_ExtendedServicesResponse *extendedServicesResponse;
        Z_Close *close;
     } 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);
@@ -1046,9 +1139,29 @@ 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, enum Z_APDU_which which);
 
 #include <prt-rsc.h>
 #include <prt-acc.h>
+#include <prt-exp.h>
+#include <prt-grs.h>
+#include <prt-exd.h>
+#include <prt-dia.h>
+
+#include <prt-ext.h>
 
 #endif