* OF THIS SOFTWARE.
*
* $Log: proto.h,v $
- * Revision 1.19 1995-06-19 12:38:28 quinn
+ * 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
+ * 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
#ifndef PROTO_H
#define PROTO_H
+#include <yconfig.h>
#include <odr.h>
#include <oid.h>
#include <odr_use.h>
/* ----------------- 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;
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;
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;
Z_IdPass *idPass;
Odr_null *anonymous;
- Odr_external *other;
+ Z_External *other;
} u;
} Z_IdAuthentication;
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
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
#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 */
char *characterString;
Odr_oid *oid;
char *dateTime;
- Odr_external *external;
+ Z_External *external;
/* Z_IntUnit *integerAndUnit; */
Odr_null *null;
} u;
#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;
/* ------------------------ RECORD -------------------------- */
-typedef Odr_external Z_DatabaseRecord;
+typedef Z_External Z_DatabaseRecord;
#ifdef Z_95
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;
- Odr_external *externallyDefined;
+ Z_External *externallyDefined;
} u;
} Z_DiagRec;
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;
- Odr_external *externalSpec;
+ Z_External *externalSpec;
} u;
} Z_ElementSpec;
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;
{
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
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 */
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
{
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
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;
#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
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;
+
+/* ------------------------ 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;
/* ------------------------ 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
+#define Z_APDU_sortRequest 20
+#define Z_APDU_sortResponse 21
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_ScanRequest *scanRequest;
Z_ScanResponse *scanResponse;
+ Z_SortRequest *sortRequest;
+ Z_SortResponse *sortResponse;
Z_Segment *segmentRequest;
+ Z_ExtendedServicesRequest *extendedServicesRequest;
+ Z_ExtendedServicesResponse *extendedServicesResponse;
Z_Close *close;
} u;
} Z_APDU;
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_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_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 <prt-rsc.h>
#include <prt-acc.h>
+#include <prt-exp.h>
+#include <prt-grs.h>
+#include <prt-exd.h>
+#include <prt-dia.h>
+#include <prt-esp.h>
+
+#include <prt-ext.h>
#endif