X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fproto.h;h=f536d832d54a339fa639c7ce703271b9238bbda5;hb=d4c12ec7c451e74a949cc7c8d5fef226c995ddc6;hp=1f659cd6a1e72bca2de0c568809b695241c60d10;hpb=f16b3e60529eece2026d584d1f420555690488a6;p=yaz-moved-to-github.git diff --git a/include/proto.h b/include/proto.h index 1f659cd..f536d83 100644 --- a/include/proto.h +++ b/include/proto.h @@ -1,10 +1,46 @@ /* - * Copyright (C) 1994, Index Data I/S - * All rights reserved. - * Sebastian Hammer, Adam Dickmeiss + * Copyright (c) 1995, 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, + * provided that: + * + * 1. This copyright and permission notice appear in all copies of the + * software and its documentation. Notices of copyright or attribution + * which appear at the beginning of any file must remain unchanged. + * + * 2. The name of Index Data or the individual authors may not be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, + * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR + * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. * * $Log: proto.h,v $ - * Revision 1.4 1995-04-10 10:22:47 quinn + * Revision 1.9 1995-05-22 11:31:25 quinn + * Added PDUs + * + * Revision 1.8 1995/05/17 08:41:35 quinn + * Added delete to proto & other little things. + * Relaying auth info to backend. + * + * Revision 1.7 1995/05/16 08:50:37 quinn + * License, documentation, and memory fixes + * + * Revision 1.6 1995/05/15 11:55:55 quinn + * Work on asynchronous activity. + * + * Revision 1.5 1995/04/17 11:28:18 quinn + * Smallish + * + * Revision 1.4 1995/04/10 10:22:47 quinn * Added SCAN * * Revision 1.3 1995/03/30 12:18:09 quinn @@ -62,6 +98,37 @@ typedef char Z_ResultSetId; typedef Odr_oct Z_ResultsetId; typedef Odr_external Z_UserInformationField; +typedef struct Z_InfoCategory +{ + Odr_oid *categoryTypeId; /* OPTIONAL */ + int *categoryValue; +} Z_InfoCategory; + +typedef struct Z_OtherInformationUnit +{ + Z_InfoCategory *category; /* OPTIONAL */ + enum + { + Z_OtherInfo_characterInfo, + Z_OtherInfo_binaryInfo, + Z_OtherInfo_externallyDefinedInfo, + Z_OtherInfo_oid + } which; + union + { + char *characterInfo; + Odr_oct *binaryInfo; + Odr_external *externallyDefinedInfo; + Odr_oid *oid; + } u; +} Z_OtherInformationUnit; + +typedef struct Z_OtherInformation +{ + int num_elements; + Z_OtherInformationUnit **list; +} Z_OtherInformation; + /* ----------------- INIT SERVICE ----------------*/ typedef struct @@ -84,7 +151,7 @@ typedef struct Z_IdAuthentication { char *open; Z_IdPass *idPass; - void *anonymous; /* NULL */ + Odr_null *anonymous; Odr_external *other; } u; } Z_IdAuthentication; @@ -243,7 +310,7 @@ typedef struct Z_Term char *dateTime; Odr_external *external; /* Z_IntUnit *integerAndUnit; */ - void *null; + Odr_null *null; } u; } Z_Term; @@ -266,16 +333,29 @@ typedef struct Z_ProximityOperator int *distance; bool_t *ordered; int *relationType; +#define Z_Prox_lessThan 1 +#define Z_Prox_lessThanOrEqual 2 +#define Z_Prox_equal 3 +#define Z_Prox_greaterThanOrEqual 4 +#define Z_Prox_greaterThan 5 +#define Z_Prox_notEqual 6 enum { - Z_ProximityOperator_known, - Z_ProximityOperator_private + Z_ProxCode_known, + Z_ProxCode_private } which; - union - { - int *known; - int *private; - } u; + int *proximityUnitCode; +#define Z_ProxUnit_character 1 +#define Z_ProxUnit_word 2 +#define Z_ProxUnit_sentence 3 +#define Z_ProxUnit_paragraph 4 +#define Z_ProxUnit_section 5 +#define Z_ProxUnit_chapter 6 +#define Z_ProxUnit_document 7 +#define Z_ProxUnit_element 8 +#define Z_ProxUnit_subelement 9 +#define Z_ProxUnit_elementType 10 +#define Z_ProxUnit_byte 11 /* v3 only */ } Z_ProximityOperator; typedef struct Z_Operator @@ -285,14 +365,14 @@ typedef struct Z_Operator Z_Operator_and, Z_Operator_or, Z_Operator_and_not, - Z_Operator_proximity + Z_Operator_prox } which; union { - void *and; /* these guys are nulls. */ - void *or; - void *and_not; - Z_ProximityOperator *proximity; + Odr_null *and; /* these guys are nulls. */ + Odr_null *or; + Odr_null *and_not; + Z_ProximityOperator *prox; } u; } Z_Operator; @@ -405,6 +485,45 @@ typedef struct Z_Records } u; } Z_Records; +/* ------------------ ACCESS CTRL SERVICE ----------------*/ + +typedef struct Z_AccessControlRequest +{ + Z_ReferenceId *referenceId; /* OPTIONAL */ + enum + { + Z_AccessRequest_simpleForm, + Z_AccessRequest_externallyDefined + } which; + union + { + Odr_oct *simpleForm; + Odr_external *externallyDefined; + } u; +#ifdef Z_OTHERINFO + Z_OtherInformation *otherInfo; /* OPTIONAL */ +#endif +} Z_AccessControlRequest; + +typedef struct Z_AccessControlResponse +{ + Z_ReferenceId *referenceId; /* OPTIONAL */ + enum + { + Z_AccessResponse_simpleForm, + Z_AccessResponse_externallyDefined + } which; + union + { + Odr_oct *simpleForm; + Odr_external *externallyDefined; + } u; + Z_DiagRec *diagnostic; /* OPTIONAL */ +#ifdef Z_OTHERINFO + Z_OtherInformation *otherInfo; /* OPTIONAL */ +#endif +} Z_AccessControlResponse; + /* ------------------------ SCAN SERVICE -------------------- */ typedef struct Z_AttributeList @@ -562,11 +681,59 @@ typedef struct Z_PresentResponse Z_Records *records; } Z_PresentResponse; +/* ------------------------ DELETE -------------------------- */ + +#define Z_DeleteStatus_success 0 +#define Z_DeleteStatus_resultSetDidNotExist 1 +#define Z_DeleteStatus_previouslyDeletedByTarget 2 +#define Z_DeleteStatus_systemProblemAtTarget 3 +#define Z_DeleteStatus_accessNotAllowed 4 +#define Z_DeleteStatus_resourceControlAtOrigin 5 +#define Z_DeleteStatus_resourceControlAtTarget 6 +#define Z_DeleteStatus_bulkDeleteNotSupported 7 +#define Z_DeleteStatus_notAllRsltSetsDeletedOnBulkDlte 8 +#define Z_DeleteStatus_notAllRequestedResultSetsDeleted 9 +#define Z_DeleteStatus_resultSetInUse 10 + +typedef struct Z_ListStatus +{ + Z_ResultSetId *id; + int *status; +} Z_ListStatus; + +typedef struct Z_DeleteResultSetRequest +{ + Z_ReferenceId *referenceId; /* OPTIONAL */ + int *deleteFunction; +#define Z_DeleteRequest_list 0 +#define Z_DeleteRequest_all 1 + int num_ids; + Z_ResultSetId **resultSetList; /* OPTIONAL */ +#ifdef Z_OTHERINFO + Z_OtherInformation *otherInfo; +#endif +} Z_DeleteResultSetRequest; + +typedef struct Z_DeleteResultSetResponse +{ + Z_ReferenceId *referenceId; /* OPTIONAL */ + int *deleteOperationStatus; + int num_statuses; + Z_ListStatus *deleteListStatuses; /* OPTIONAL */ + int *numberNotDeleted; /* OPTIONAL */ + int num_bulkStatuses; + Z_ListStatus *bulkStatuses; /* OPTIONAL */ + char *deleteMessage; /* OPTIONAL */ +#ifdef Z_OTHERINFO + Z_OtherInformation *otherInfo; +#endif +} Z_DeleteResultSetResponse; + /* ------------------------ APDU ---------------------------- */ typedef struct Z_APDU { - enum + enum Z_APDU_which { Z_APDU_initRequest, Z_APDU_initResponse, @@ -574,6 +741,11 @@ typedef struct Z_APDU 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 } which; @@ -585,6 +757,11 @@ typedef struct Z_APDU Z_SearchResponse *searchResponse; Z_PresentRequest *presentRequest; Z_PresentResponse *presentResponse; + Z_DeleteResultSetRequest *deleteResultSetRequest; + Z_DeleteResultSetResponse *deleteResultSetResponse; + Z_ResourceControlRequest *resourceControlRequest; + Z_ResourceControlResponse *resourceControlResponse; + Z_TriggerResourceControlRequest *triggerResourceControlRequest; Z_ScanRequest *scanRequest; Z_ScanResponse *scanResponse; } u; @@ -592,4 +769,19 @@ typedef struct Z_APDU int z_APDU(ODR o, Z_APDU **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_APDU *zget_APDU(ODR o, enum Z_APDU_which which); + #endif