Changed code so that it compiles as C++.
[yaz-moved-to-github.git] / include / prt-exp.h
index 8e27785..832763b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1998, 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,
  *
  */
 
+#ifndef PRT_EXP_H
+#define PRT_EXP_H
+
+#include <yconfig.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define multipleDbSearch multipleDBsearch
 
 typedef struct Z_CommonInfo
 {
@@ -49,12 +59,10 @@ typedef struct Z_HumanString
 
 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;
@@ -96,12 +104,10 @@ typedef struct Z_NetworkAddressOther
 
 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;
@@ -112,7 +118,7 @@ typedef struct Z_NetworkAddress
 
 typedef struct Z_PrivateCapOperator
 {
-    char *operator;
+    char *roperator;
     Z_HumanString *description;             /* OPTIONAL */
 } Z_PrivateCapOperator;
     
@@ -140,15 +146,13 @@ typedef struct Z_ProxSupportPrivate
 
 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;
-       Z_ProxSupportPrivate *private;
+       int *known;
+       Z_ProxSupportPrivate *zprivate;
     } u;
 } Z_ProxSupportUnit;
 
@@ -177,18 +181,16 @@ typedef struct Z_Iso8777Capabilities
 
 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;
+       Z_PrivateCapabilities *zprivate;
        Z_RpnCapabilities *rpn;
        Z_Iso8777Capabilities *iso8777;
        Z_HumanString *z3958;
@@ -203,9 +205,9 @@ typedef struct Z_AccessRestrictionsUnit
 #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 */
@@ -262,7 +264,7 @@ typedef struct Z_AccessInfo
     int num_elementSetNames;
     char **elementSetNames;     /* OPTIONAL */
     int num_unitSystems;
-    char **unitSystems;
+    char **unitSystems;                     /* OPTIONAL */
 } Z_AccessInfo;
 
 typedef struct Z_DatabaseList
@@ -282,16 +284,14 @@ typedef struct Z_AttributeOccurrence
     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_AttributeValueList *specific;
-    } *attributeValues;
+    } attributeValues;
 } Z_AttributeOccurrence;
 
 typedef struct Z_AttributeCombination
@@ -331,7 +331,7 @@ typedef struct Z_TargetInfo
     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 */
@@ -381,11 +381,9 @@ typedef struct Z_DatabaseInfo
     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 */
@@ -444,11 +442,9 @@ typedef struct Z_ElementInfoList
 
 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;
@@ -768,12 +764,10 @@ typedef struct Z_RetrievalRecordDetails
 
 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;
@@ -834,15 +828,13 @@ typedef struct 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;
@@ -868,11 +860,9 @@ typedef struct Z_ValueSetEnumerated
 
 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;
@@ -969,26 +959,24 @@ typedef struct Z_CategoryList
 
 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;
@@ -1011,4 +999,10 @@ typedef struct Z_ExplainRecord
     } u;
 } Z_ExplainRecord;
 
-int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt);
+YAZ_EXPORT int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif