+/*
+ * 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 names 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.
+ *
+ */
+
+#ifndef PRT_EXP_H
+#define PRT_EXP_H
+
+#include <yconfig.h>
+
+#define multipleDbSearch multipleDBsearch
+
typedef struct Z_CommonInfo
{
char *dateAdded; /* OPTIONAL */
typedef struct Z_IconObjectUnit
{
- enum
- {
- Z_IconObject_ianaType,
- Z_IconObject_z3950type,
- Z_IconObject_otherType
- } which;
+ int which;
+#define Z_IconObject_ianaType 0
+#define Z_IconObject_z3950type 1
+#define Z_IconObject_otherType 2
char *bodyType;
Odr_oct *content;
} Z_IconObjectUnit;
typedef struct Z_NetworkAddress
{
- enum
- {
- Z_NetworkAddress_iA,
- Z_NetworkAddress_oPA,
- Z_NetworkAddress_other
- } which;
+ int which;
+#define Z_NetworkAddress_iA 0
+#define Z_NetworkAddress_oPA 1
+#define Z_NetworkAddress_other 2
union
{
Z_NetworkAddressIA *internetAddress;
typedef struct Z_PrivateCapOperator
{
- char *operator;
+ char *roperator;
Z_HumanString *description; /* OPTIONAL */
} Z_PrivateCapOperator;
typedef struct Z_ProxSupportUnit
{
- enum
- {
- Z_ProxSupportUnit_known,
- Z_ProxSupportUnit_private
- } which;
+ int which;
+#define Z_ProxSupportUnit_known 0
+#define Z_ProxSupportUnit_private 1
union
{
int known;
typedef struct Z_QueryTypeDetails
{
- enum
- {
- Z_QueryTypeDetails_private,
- Z_QueryTypeDetails_rpn,
- Z_QueryTypeDetails_iso8777,
- Z_QueryTypeDetails_z3958,
- Z_QueryTypeDetails_erpn,
- Z_QueryTypeDetails_rankedList
- } which;
+ int which;
+#define Z_QueryTypeDetails_private 0
+#define Z_QueryTypeDetails_rpn 1
+#define Z_QueryTypeDetails_iso8777 2
+#define Z_QueryTypeDetails_z3958 3
+#define Z_QueryTypeDetails_erpn 4
+#define Z_QueryTypeDetails_rankedList 5
union
{
Z_PrivateCapabilities *private;
#define Z_AccessRestrictions_any 0
#define Z_AccessRestrictions_search 1
#define Z_AccessRestrictions_present 2
-#define Z_AccessRestrictions_specific-elements 3
-#define Z_AccessRestrictions_extended-services 4
-#define Z_AccessRestrictions_by-database 5
+#define Z_AccessRestrictions_specific_elements 3
+#define Z_AccessRestrictions_extended_services 4
+#define Z_AccessRestrictions_by_database 5
Z_HumanString *accessText; /* OPTIONAL */
int num_accessChallenges;
Odr_oid **accessChallenges; /* OPTIONAL */
int num_elementSetNames;
char **elementSetNames; /* OPTIONAL */
int num_unitSystems;
- char **unitSystems;
+ char **unitSystems; /* OPTIONAL */
} Z_AccessInfo;
typedef struct Z_DatabaseList
Odr_oid *attributeSet; /* OPTIONAL */
int *attributeType;
Odr_null *mustBeSupplied; /* OPTIONAL */
- enum
- {
- Z_AttributeOcc_anyOrNone,
- Z_AttributeOcc_specific
- } which;
+ int which;
+#define Z_AttributeOcc_anyOrNone 0
+#define Z_AttributeOcc_specific 1
union
{
Odr_null *anyOrNone;
Z_HumanString *recentNews; /* OPTIONAL */
Z_IconObject *icon; /* OPTIONAL */
bool_t *namedResultSets;
- bool_t *multipleDBsearch;
+ bool_t *multipleDbSearch;
int *maxResultSets; /* OPTIONAL */
int *maxResultSize; /* OPTIONAL */
int *maxTerms; /* OPTIONAL */
Z_DatabaseList *subDbs; /* OPTIONAL */
Z_HumanString *disclaimers; /* OPTIONAL */
Z_HumanString *news; /* OPTIONAL */
- enum
- {
- Z_Exp_RecordCount_actualNumber,
- Z_Exp_RecordCount_approxNumber
- } recordCount_which;
+ int recordCount_which;
+#define Z_Exp_RecordCount_actualNumber 0
+#define Z_Exp_RecordCount_approxNumber 1
int *recordCount; /* OPTIONAL */
Z_HumanString *defaultOrder; /* OPTIONAL */
int *avRecordSize; /* OPTIONAL */
struct Z_ElementDataType
{
- enum
- {
- Z_ElementDataType_primitive,
- Z_ElementDataType_structured
- } which;
+ int which;
+#define Z_ElementDataType_primitive 0
+#define Z_ElementDataType_structured 1
union
{
int *primitive;
* Non-brief elements
*/
Z_HumanString *description; /* OPTIONAL */
- Odr_external *specificExplain; /* OPTIONAL */
+ Z_External *specificExplain; /* OPTIONAL */
char *esASN; /* OPTIONAL */
} Z_ExtendedServicesInfo;
typedef struct Z_SortKeyDetailsSortType
{
- enum
- {
- Z_SortKeyDetailsSortType_character,
- Z_SortKeyDetailsSortType_numeric,
- Z_SortKeyDetailsSortType_structured
- } which;
+ int which;
+#define Z_SortKeyDetailsSortType_character 0
+#define Z_SortKeyDetailsSortType_numeric 1
+#define Z_SortKeyDetailsSortType_structured 2
union
{
Odr_null *character;
* Non-brief elements
*/
Z_HumanString *description; /* OPTIONAL */
- Odr_external *instructions; /* OPTIONAL */
+ Z_External *instructions; /* OPTIONAL */
} Z_ProcessingInformation;
typedef struct Z_ValueDescription
{
- enum
- {
- Z_ValueDescription_integer,
- Z_ValueDescription_string,
- Z_ValueDescription_octets,
- Z_ValueDescription_oid,
- Z_ValueDescription_unit,
- Z_ValueDescription_valueAndUnit
- } which;
+ int which;
+#define Z_ValueDescription_integer 0
+#define Z_ValueDescription_string 1
+#define Z_ValueDescription_octets 2
+#define Z_ValueDescription_oid 3
+#define Z_ValueDescription_unit 4
+#define Z_ValueDescription_valueAndUnit 5
union
{
int *integer;
typedef struct Z_ValueSet
{
- enum
- {
- Z_ValueSet_range,
- Z_ValueSet_enumerated
- } which;
+ int which;
+#define Z_ValueSet_range 0
+#define Z_ValueSet_enumerated 1
union
{
Z_ValueRange *range;
typedef struct Z_ExplainRecord
{
- enum
- {
- Z_Explain_targetInfo,
- Z_Explain_databaseInfo,
- Z_Explain_schemaInfo,
- Z_Explain_tagSetInfo,
- Z_Explain_recordSyntaxInfo,
- Z_Explain_attributeSetInfo,
- Z_Explain_termListInfo,
- Z_Explain_extendedServicesInfo,
- Z_Explain_attributeDetails,
- Z_Explain_termListDetails,
- Z_Explain_elementSetDetails,
- Z_Explain_retrievalRecordDetails,
- Z_Explain_sortDetails,
- Z_Explain_processing,
- Z_Explain_variants,
- Z_Explain_units,
- Z_Explain_categoryList
- } which;
+ int which;
+#define Z_Explain_targetInfo 0
+#define Z_Explain_databaseInfo 1
+#define Z_Explain_schemaInfo 2
+#define Z_Explain_tagSetInfo 3
+#define Z_Explain_recordSyntaxInfo 4
+#define Z_Explain_attributeSetInfo 5
+#define Z_Explain_termListInfo 6
+#define Z_Explain_extendedServicesInfo 7
+#define Z_Explain_attributeDetails 8
+#define Z_Explain_termListDetails 9
+#define Z_Explain_elementSetDetails 10
+#define Z_Explain_retrievalRecordDetails 11
+#define Z_Explain_sortDetails 12
+#define Z_Explain_processing 13
+#define Z_Explain_variants 14
+#define Z_Explain_units 15
+#define Z_Explain_categoryList 16
union
{
Z_TargetInfo *targetInfo;
Z_CategoryList *categoryList;
} u;
} Z_ExplainRecord;
+
+int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt);
+
+#endif