X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fproto.h;h=0cd1a222df173688904d0038c272ead86118b2e3;hb=826b36840ea0cb5c0a6262ec25691e83ea20780a;hp=95e22773aee6f235e70bdb991565a8cd9831db5f;hpb=78f86cdd3cc8d44fb8c4329e408a3aa679bd8b9e;p=yaz-moved-to-github.git diff --git a/include/proto.h b/include/proto.h index 95e2277..0cd1a22 100644 --- a/include/proto.h +++ b/include/proto.h @@ -24,7 +24,47 @@ * OF THIS SOFTWARE. * * $Log: proto.h,v $ - * Revision 1.17 1995-06-15 15:42:05 quinn + * 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 + * 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 @@ -111,6 +151,7 @@ #ifndef PROTO_H #define PROTO_H +#include #include #include #include @@ -129,6 +170,9 @@ /* ----------------- 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; @@ -143,18 +187,16 @@ typedef struct Z_InfoCategory 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; Odr_oct *binaryInfo; - Odr_external *externallyDefinedInfo; + Z_External *externallyDefinedInfo; Odr_oid *oid; } information; } Z_OtherInformationUnit; @@ -167,11 +209,9 @@ typedef struct Z_OtherInformation 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; @@ -193,6 +233,8 @@ typedef struct Z_IntUnit Z_Unit *unitUsed; } Z_IntUnit; +typedef Odr_oct Z_SUTRS; + /* ----------------- INIT SERVICE ----------------*/ typedef struct @@ -204,19 +246,17 @@ 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; Z_IdPass *idPass; Odr_null *anonymous; - Odr_external *other; + Z_External *other; } u; } Z_IdAuthentication; @@ -251,7 +291,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 @@ -268,7 +308,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 @@ -328,11 +368,9 @@ typedef struct Z_AttributeElement #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; @@ -345,17 +383,15 @@ typedef struct Z_AttributeElement 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 */ @@ -363,7 +399,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; @@ -395,11 +431,9 @@ typedef struct Z_ProximityOperator #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 @@ -416,13 +450,11 @@ typedef struct Z_ProximityOperator 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. */ @@ -434,12 +466,10 @@ typedef struct Z_Operator 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; @@ -452,16 +482,14 @@ typedef struct Z_Complex { 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; @@ -479,13 +507,10 @@ typedef struct Z_RPNQuery 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; @@ -516,7 +541,7 @@ typedef struct Z_SearchRequest /* ------------------------ RECORD -------------------------- */ -typedef Odr_external Z_DatabaseRecord; +typedef Z_External Z_DatabaseRecord; #ifdef Z_95 @@ -524,20 +549,23 @@ 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. */ + 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; - Odr_external *externallyDefined; + Z_External *externallyDefined; } u; } Z_DiagRec; @@ -561,12 +589,9 @@ typedef struct Z_DiagRecs 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; @@ -582,12 +607,10 @@ typedef struct Z_NamePlusRecordList 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; @@ -627,15 +650,13 @@ typedef struct Z_SearchResponse 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; - Odr_external *externalSpec; + Z_External *externalSpec; } u; } Z_ElementSpec; @@ -663,11 +684,9 @@ typedef struct Z_CompSpec 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; @@ -735,7 +754,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 @@ -763,15 +782,13 @@ typedef struct Z_ResourceControlResponse 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; - Odr_external *externallyDefined; + Z_External *externallyDefined; } u; #ifdef Z_95 Z_OtherInformation *otherInfo; /* OPTIONAL */ @@ -781,15 +798,13 @@ typedef struct Z_AccessControlRequest 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; - Odr_external *externallyDefined; + Z_External *externallyDefined; } u; Z_DiagRec *diagnostic; /* OPTIONAL */ #ifdef Z_95 @@ -815,11 +830,9 @@ 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 @@ -841,11 +854,9 @@ typedef struct 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; @@ -861,11 +872,9 @@ typedef struct Z_Entries 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; @@ -976,7 +985,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 @@ -993,29 +1002,80 @@ 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 ---------------------------- */ 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_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 union { Z_InitRequest *initRequest; @@ -1026,17 +1086,22 @@ typedef struct Z_APDU 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_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); @@ -1052,9 +1117,30 @@ Z_TriggerResourceControlRequest *zget_TriggerResourceControlRequest(ODR o); Z_ResourceControlRequest *zget_ResourceControlRequest(ODR o); Z_ResourceControlResponse *zget_ResourceControlResponse(ODR o); Z_Close *zget_Close(ODR o); -Z_APDU *zget_APDU(ODR o, enum Z_APDU_which which); +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); #include #include +#include +#include +#include +#include +#include + +#include #endif