* OF THIS SOFTWARE.
*
* $Log: proto.h,v $
- * Revision 1.24 1995-08-29 11:17:43 quinn
+ * 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
+ *
+ * Revision 1.28 1996/01/02 08:57:32 quinn
+ * Changed enums in the ASN.1 .h files to #defines. Changed oident.class to oclass
+ *
+ * Revision 1.27 1995/10/12 10:34:46 quinn
+ * Added Espec-1.
+ *
+ * Revision 1.26 1995/09/29 17:12:08 quinn
+ * Smallish
+ *
+ * Revision 1.25 1995/09/27 15:02:49 quinn
+ * Modified function heads & prototypes.
+ *
+ * Revision 1.24 1995/08/29 11:17:43 quinn
* *** empty log message ***
*
* Revision 1.23 1995/08/21 09:10:36 quinn
#ifndef PROTO_H
#define PROTO_H
+#include <yconfig.h>
#include <odr.h>
#include <oid.h>
#include <odr_use.h>
typedef struct Z_OtherInformationUnit
{
Z_InfoCategory *category; /* OPTIONAL */
- enum
- {
- Z_OtherInfo_characterInfo,
- Z_OtherInfo_binaryInfo,
- Z_OtherInfo_externallyDefinedInfo,
- Z_OtherInfo_oid
- } which;
+ int which;
+#define Z_OtherInfo_characterInfo 0
+#define Z_OtherInfo_binaryInfo 1
+#define Z_OtherInfo_externallyDefinedInfo 2
+#define Z_OtherInfo_oid 3
union
{
char *characterInfo;
typedef struct Z_StringOrNumeric
{
- enum
- {
- Z_StringOrNumeric_string,
- Z_StringOrNumeric_numeric
- } which;
+ int which;
+#define Z_StringOrNumeric_string 0
+#define Z_StringOrNumeric_numeric 1
union
{
char *string;
typedef Odr_oct Z_SUTRS;
+typedef struct Z_StringList
+{
+ int num_strings;
+ char **strings;
+} Z_StringList;
+
/* ----------------- INIT SERVICE ----------------*/
typedef struct
typedef struct Z_IdAuthentication
{
- enum
- {
- Z_IdAuthentication_open,
- Z_IdAuthentication_idPass,
- Z_IdAuthentication_anonymous,
- Z_IdAuthentication_other
- } which;
+ int which;
+#define Z_IdAuthentication_open 0
+#define Z_IdAuthentication_idPass 1
+#define Z_IdAuthentication_anonymous 2
+#define Z_IdAuthentication_other 3
union
{
char *open;
#endif
int *attributeType;
#ifdef Z_95
- enum
- {
- Z_AttributeValue_numeric,
- Z_AttributeValue_complex
- } which;
+ int which;
+#define Z_AttributeValue_numeric 0
+#define Z_AttributeValue_complex 1
union
{
int *numeric;
typedef struct Z_Term
{
- enum
- {
- Z_Term_general,
- Z_Term_numeric,
- Z_Term_characterString,
- Z_Term_oid,
- Z_Term_dateTime,
- Z_Term_external,
- Z_Term_integerAndUnit,
- Z_Term_null
- } which;
+ int which;
+#define Z_Term_general 0
+#define Z_Term_numeric 1
+#define Z_Term_characterString 2
+#define Z_Term_oid 3
+#define Z_Term_dateTime 4
+#define Z_Term_external 5
+#define Z_Term_integerAndUnit 6
+#define Z_Term_null 7
union
{
Odr_oct *general; /* this is required for v2 */
#define Z_Prox_greaterThanOrEqual 4
#define Z_Prox_greaterThan 5
#define Z_Prox_notEqual 6
- enum
- {
- Z_ProxCode_known,
- Z_ProxCode_private
- } which;
+ int which;
+#define Z_ProxCode_known 0
+#define Z_ProxCode_private 1
int *proximityUnitCode;
#define Z_ProxUnit_character 1
#define Z_ProxUnit_word 2
typedef struct Z_Operator
{
- enum
- {
- Z_Operator_and,
- Z_Operator_or,
- Z_Operator_and_not,
- Z_Operator_prox
- } which;
+ int which;
+#define Z_Operator_and 0
+#define Z_Operator_or 1
+#define Z_Operator_and_not 2
+#define Z_Operator_prox 3
union
{
Odr_null *and; /* these guys are nulls. */
typedef struct Z_Operand
{
- enum
- {
- Z_Operand_APT,
- Z_Operand_resultSetId,
- Z_Operand_resultAttr /* v3 only */
- } which;
+ int which;
+#define Z_Operand_APT 0
+#define Z_Operand_resultSetId 1
+#define Z_Operand_resultAttr /* v3 only */ 2
union
{
Z_AttributesPlusTerm *attributesPlusTerm;
{
struct Z_RPNStructure *s1;
struct Z_RPNStructure *s2;
- Z_Operator *operator;
+ Z_Operator *roperator;
} Z_Complex;
typedef struct Z_RPNStructure
{
- enum
- {
- Z_RPNStructure_simple,
- Z_RPNStructure_complex
- } which;
+ int which;
+#define Z_RPNStructure_simple 0
+#define Z_RPNStructure_complex 1
union
{
Z_Operand *simple;
typedef struct Z_Query
{
- enum
- {
- Z_Query_type_1 = 1,
- Z_Query_type_2,
- Z_Query_type_101
- }
- which;
+ int which;
+#define Z_Query_type_1 1
+#define Z_Query_type_2 2
+#define Z_Query_type_101 3
union
{
Z_RPNQuery *type_1;
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;
+ int which;
+#define Z_DiagForm_v2AddInfo 0
+#define Z_DiagForm_v3AddInfo 1
char *addinfo;
} Z_DefaultDiagFormat;
typedef struct Z_DiagRec
{
- enum
- {
- Z_DiagRec_defaultFormat,
- Z_DiagRec_externallyDefined
- } which;
+ int which;
+#define Z_DiagRec_defaultFormat 0
+#define Z_DiagRec_externallyDefined 1
union
{
Z_DefaultDiagFormat *defaultFormat;
typedef struct Z_NamePlusRecord
{
char *databaseName; /* OPTIONAL */
- enum
- {
- Z_NamePlusRecord_databaseRecord,
- Z_NamePlusRecord_surrogateDiagnostic
- }
- which;
+ int which;
+#define Z_NamePlusRecord_databaseRecord 0
+#define Z_NamePlusRecord_surrogateDiagnostic 1
union
{
Z_DatabaseRecord *databaseRecord;
typedef struct Z_Records
{
- enum
- {
- Z_Records_DBOSD,
- Z_Records_NSD,
- Z_Records_multipleNSD
- } which;
+ int which;
+#define Z_Records_DBOSD 0
+#define Z_Records_NSD 1
+#define Z_Records_multipleNSD 2
union
{
Z_NamePlusRecordList *databaseOrSurDiagnostics;
typedef struct Z_ElementSpec
{
- enum
- {
- Z_ElementSpec_elementSetName,
- Z_ElementSpec_externalSpec
- } which;
+ int which;
+#define Z_ElementSpec_elementSetName 0
+#define Z_ElementSpec_externalSpec 1
union
{
char *elementSetName;
typedef struct Z_RecordComposition
{
- enum
- {
- Z_RecordComp_simple,
- Z_RecordComp_complex
- } which;
+ int which;
+#define Z_RecordComp_simple 0
+#define Z_RecordComp_complex 1
union
{
Z_ElementSetNames *simple;
typedef struct Z_AccessControlRequest
{
Z_ReferenceId *referenceId; /* OPTIONAL */
- enum
- {
- Z_AccessRequest_simpleForm,
- Z_AccessRequest_externallyDefined
- } which;
+ int which;
+#define Z_AccessRequest_simpleForm 0
+#define Z_AccessRequest_externallyDefined 1
union
{
Odr_oct *simpleForm;
typedef struct Z_AccessControlResponse
{
Z_ReferenceId *referenceId; /* OPTIONAL */
- enum
- {
- Z_AccessResponse_simpleForm,
- Z_AccessResponse_externallyDefined
- } which;
+ int which;
+#define Z_AccessResponse_simpleForm 0
+#define Z_AccessResponse_externallyDefined 1
union
{
Odr_oct *simpleForm;
Z_AttributesPlusTerm **terms;
} Z_AlternativeTerm;
+#if 1
+
+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
+{
+ int which;
+#define Z_ScanOccurrences_global 0
+#define Z_ScanOccurrences_byDatabase 1
+ union
+ {
+ int *global;
+ Z_ByDatabaseList *byDatabase;
+ } u;
+
+} 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;
+
+#else
+
+/*
+ * Old, incomplete definition of OccurrenceByAttributes.
+ */
+
typedef struct Z_OccurrenceByAttributes
{
Z_AttributeList *attributes;
#if 0
- enum
- {
- Z_OByAtt_global,
- Z_ObyAtt_byDatabase
- } which;
+ int which;
+#define Z_OByAtt_global 0
+#define Z_ObyAtt_byDatabase 1
union
{
#endif
#endif
} Z_OccurrenceByAttributes;
+#endif
+
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
{
- enum
- {
- Z_Entry_termInfo,
- Z_Entry_surrogateDiagnostic
- } which;
+ int which;
+#define Z_Entry_termInfo 0
+#define Z_Entry_surrogateDiagnostic 1
union
{
Z_TermInfo *termInfo;
typedef struct Z_ListEntries
{
- enum
- {
- Z_ListEntries_entries,
- Z_ListEntries_nonSurrogateDiagnostics
- } which;
+ int which;
+#define Z_ListEntries_entries 0
+#define Z_ListEntries_nonSurrogateDiagnostics 1
union
{
Z_Entries *entries;
Z_ReferenceId *referenceId; /* OPTIONAL */
int *deleteOperationStatus;
int num_statuses;
- Z_ListStatus *deleteListStatuses; /* OPTIONAL */
+ Z_ListStatus **deleteListStatuses; /* OPTIONAL */
int *numberNotDeleted; /* OPTIONAL */
int num_bulkStatuses;
- Z_ListStatus *bulkStatuses; /* OPTIONAL */
+ Z_ListStatus **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
{
- enum Z_APDU_which
- {
- Z_APDU_initRequest,
- Z_APDU_initResponse,
- Z_APDU_searchRequest,
- Z_APDU_searchResponse,
- Z_APDU_presentRequest,
- Z_APDU_presentResponse,
- Z_APDU_deleteResultSetRequest,
- Z_APDU_deleteResultSetResponse,
- Z_APDU_resourceControlRequest,
- Z_APDU_resourceControlResponse,
- Z_APDU_triggerResourceControlRequest,
- Z_APDU_scanRequest,
- Z_APDU_scanResponse,
- Z_APDU_segmentRequest,
- Z_APDU_extendedServicesRequest,
- Z_APDU_extendedServicesResponse,
- Z_APDU_close
- } which;
+ int which;
+#define Z_APDU_initRequest 0
+#define Z_APDU_initResponse 1
+#define Z_APDU_searchRequest 2
+#define Z_APDU_searchResponse 3
+#define Z_APDU_presentRequest 4
+#define Z_APDU_presentResponse 5
+#define Z_APDU_deleteResultSetRequest 6
+#define Z_APDU_deleteResultSetResponse 7
+#define Z_APDU_resourceControlRequest 8
+#define Z_APDU_resourceControlResponse 9
+#define Z_APDU_triggerResourceControlRequest 10
+#define Z_APDU_scanRequest 11
+#define Z_APDU_scanResponse 12
+#define Z_APDU_segmentRequest 13
+#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;
Z_ResourceControlRequest *zget_ResourceControlRequest(ODR o);
Z_ResourceControlResponse *zget_ResourceControlResponse(ODR o);
Z_Close *zget_Close(ODR o);
+int z_StringList(ODR o, Z_StringList **p, int opt);
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_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);
+Z_APDU *zget_APDU(ODR o, int which);
#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-ext.h>