*** empty log message ***
[yaz-moved-to-github.git] / include / proto.h
index 3d05a57..08a8e90 100644 (file)
  * OF THIS SOFTWARE.
  *
  * $Log: proto.h,v $
- * Revision 1.16  1995-06-15 07:45:06  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
 
 /* ----------------- 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;
@@ -151,7 +178,7 @@ typedef struct Z_OtherInformationUnit
     {
        char *characterInfo; 
        Odr_oct *binaryInfo;
-       Odr_external *externallyDefinedInfo;
+       Z_External *externallyDefinedInfo;
        Odr_oid *oid;
     } information;
 } Z_OtherInformationUnit;
@@ -190,6 +217,8 @@ typedef struct Z_IntUnit
     Z_Unit *unitUsed;
 } Z_IntUnit;
 
+typedef Odr_oct Z_SUTRS;
+
 /* ----------------- INIT SERVICE  ----------------*/
 
 typedef struct
@@ -213,7 +242,7 @@ typedef struct Z_IdAuthentication
        char *open;
        Z_IdPass *idPass;
        Odr_null *anonymous;
-       Odr_external *other;
+       Z_External *other;
     } u;
 } Z_IdAuthentication;
 
@@ -248,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
@@ -265,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
@@ -360,7 +389,7 @@ typedef struct Z_Term
        char *characterString;
        Odr_oid *oid;
        char *dateTime;
-       Odr_external *external;
+       Z_External *external;
        /* Z_IntUnit *integerAndUnit; */
        Odr_null *null;
     } u;
@@ -513,7 +542,7 @@ typedef struct Z_SearchRequest
 
 /* ------------------------ RECORD -------------------------- */
 
-typedef Odr_external Z_DatabaseRecord;
+typedef Z_External Z_DatabaseRecord;
 
 #ifdef Z_95
 
@@ -521,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;
 
@@ -534,7 +570,7 @@ typedef struct Z_DiagRec
     union
     {
        Z_DefaultDiagFormat *defaultFormat;
-       Odr_external *externallyDefined;
+       Z_External *externallyDefined;
     } u;
 } Z_DiagRec;
 
@@ -549,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
 {
@@ -561,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;
 
@@ -591,7 +625,7 @@ typedef struct Z_Records
     {
        Z_NamePlusRecordList *databaseOrSurDiagnostics;
        Z_DiagRec *nonSurrogateDiagnostic;
-       Z_DiagRecList *multipleNonSurDiagnostics;
+       Z_DiagRecs *multipleNonSurDiagnostics;
     } u;
 } Z_Records;
 
@@ -634,7 +668,7 @@ typedef struct Z_ElementSpec
     union
     {
        char *elementSetName;
-       Odr_external *externalSpec;
+       Z_External *externalSpec;
     } u;
 } Z_ElementSpec;
 
@@ -734,7 +768,7 @@ 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
@@ -770,7 +804,7 @@ typedef struct Z_AccessControlRequest
     union
     {
        Odr_oct *simpleForm;
-       Odr_external *externallyDefined;
+       Z_External *externallyDefined;
     } u;
 #ifdef Z_95
     Z_OtherInformation *otherInfo;           /* OPTIONAL */
@@ -788,7 +822,7 @@ typedef struct Z_AccessControlResponse
     union
     {
        Odr_oct *simpleForm;
-       Odr_external *externallyDefined;
+       Z_External *externallyDefined;
     } u;
     Z_DiagRec *diagnostic;                   /* OPTIONAL */
 #ifdef Z_95
@@ -858,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
@@ -981,7 +1009,7 @@ typedef struct Z_Close
 #define Z_Close_unspecified        9
     char *diagnosticInformation;          /* OPTIONAL */
     Odr_oid *resourceReportFormat;        /* OPTIONAL */
-    Odr_external *resourceReport;         /* OPTIONAL */
+    Z_External *resourceReport;         /* OPTIONAL */
 #ifdef Z_95
     Z_OtherInformation *otherInfo;        /* OPTIONAL */
 #endif
@@ -998,6 +1026,55 @@ typedef struct Z_Segment
     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 ---------------------------- */
 
@@ -1019,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
@@ -1037,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);
@@ -1057,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