|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 38775 (0x9777) Types: TextFile Names: »msap.py«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦e83f91978⟧ »EurOpenD22/isode/osimis-2.0.tar.Z« └─⟦d846658bd⟧ └─⟦this⟧ »osimis/msap/msap.py«
-- -- Copyright (c) 1988 University College London -- All rights reserved. -- -- Redistribution and use in source and binary forms are permitted -- provided that the above copyright notice and this paragraph are -- duplicated in all such forms and that any documentation, -- advertising materials, and other materials related to such -- distribution and use acknowledge that the software was developed -- by the Department of Computer Science, University College London. -- The name of the University 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 ANY EXPRESS OR -- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. -- -- msap.py - pepy source for CMIP -- By George Pavlou, April 1990 CMIP -- ISO 9596-CMIP { joint-iso-ccitt ms(9) cmip(1) version1(1) protocol(3) } DEFINITIONS ::= %{ #include <stdio.h> #include <isode/rosap.h> #include "msap.h" #define encode_UNIV_GeneralizedTime build_UNIV_GeneralizedTime #define decode_UNIV_GeneralizedTime parse_UNIV_GeneralizedTime #define PEPYPARM pepyparm /* LINTLIBRARY */ %} PREFIXES encode decode print BEGIN -- Directory Service Definitions IMPORTS DistinguishedName, RDNSequence FROM IF { joint-iso-ccitt ds(5) modules(1) informationFramework(1) }; ENCODER build ObjectClass [[P MID]] ::= CHOICE << parm -> mid_type + 1 >> { globalForm [0] IMPLICIT OBJECT IDENTIFIER [[O parm -> mid_global]], localForm [1] IMPLICIT INTEGER [[i parm -> mid_local]] } DECODER parse ObjectClass [[P MID]] ::= CHOICE { globalForm [0] IMPLICIT OBJECT IDENTIFIER [[O parm -> mid_global]] %{ parm -> mid_type = MID_GLOBAL; %}, localForm [1] IMPLICIT INTEGER [[i parm -> mid_local]] %{ parm -> mid_type = MID_LOCAL; %} } ENCODER build ObjectInstance [[P MN]] ::= CHOICE << parm -> mn_type == MN_DN ? 1 : (parm -> mn_type == MN_LOCALDN ? 3 : 2) >> { distinguishedName [2] IMPLICIT DistinguishedName [[p parm -> mn_dn]], nonSpecificForm [3] IMPLICIT OCTET STRING [[s parm -> mn_nonspec]], localDistinguishedName [4] IMPLICIT RDNSequence [[p parm -> mn_dn]] } DECODER parse ObjectInstance [[P MN]] ::= CHOICE { distinguishedName [2] IMPLICIT DistinguishedName [[p &parm -> mn_dn]] %{ parm -> mn_type = MN_DN; %}, nonSpecificForm [3] IMPLICIT OCTET STRING [[s parm -> mn_nonspec]] %{ parm -> mn_type = MN_NONSPEC; %}, localDistinguishedName [4] IMPLICIT RDNSequence [[p &parm -> mn_dn]] %{ parm -> mn_type = MN_LOCALDN; %} } SECTIONS build parse none BaseManagedObjectId [[P CMISerrparam *]] ::= SEQUENCE { baseManagedObjectClass ObjectClass [[p &parm -> me_class]], baseManagedObjectInstance ObjectInstance [[p &parm -> me_inst]] } ENCODER build AccessControl [[P External *]] ::= EXTERNAL [[p parm]] DECODER parse AccessControl [[P External **]] ::= EXTERNAL [[p parm]] SECTIONS build parse none CMISSync [[P int *]] ::= ENUMERATED [[i *parm]] { bestEffort (0), atomic (1) } ModifyOperator [[P int *]] ::= ENUMERATED [[i *parm]] { replace (0), addValues (1), removeValues (2), setToDefault (3) } ENCODER build Scope [[P Scope *]] ::= CHOICE << parm -> sc_type == Sc_BaseToNthLevel ? 3 : (parm -> sc_type == Sc_IndividualLevel ? 2 : 1) >> { INTEGER [[i parm -> sc_type]] { baseObject (0), firstLevelOnly (1), wholeSubtree (2) }, individualLevels [1] IMPLICIT INTEGER [[i parm -> sc_level]], baseToNthLevel [2] IMPLICIT INTEGER [[i parm -> sc_level]] } DECODER parse Scope [[P Scope *]] ::= CHOICE { INTEGER [[i parm -> sc_type]] { baseObject (0), firstLevelOnly (1), wholeSubtree (2) }, individualLevels [1] IMPLICIT INTEGER [[i parm -> sc_level]] %{ parm -> sc_type = Sc_IndividualLevel; %}, baseToNthLevel [2] IMPLICIT INTEGER [[i parm -> sc_level]] %{ parm -> sc_type = Sc_BaseToNthLevel; %} } ENCODER build CMISFilter [[P CMISfilter *]] %{ CMISfilter * this; %} ::= CHOICE << parm -> flt_type + 1 >> { item [8] FilterItem [[p parm -> flt_item]], and [9] IMPLICIT SET OF << this = parm -> flt_filter; this; this = this -> flt_next >> CMISFilter [[p this]], or [10] IMPLICIT SET OF << this = parm -> flt_filter; this; this = this -> flt_next >> CMISFilter [[p this]], not [11] CMISFilter [[p parm -> flt_filter]] } DECODER parse CMISFilter [[P CMISfilter **]] %{ CMISfilter **this; %} ::= CHOICE %{ if ((*parm = (CMISfilter *) calloc(1, sizeof(CMISfilter))) == NULL) return NOTOK; %} { item [8] FilterItem [[p &(*parm) -> flt_item]] %{ (*parm) -> flt_type = Filter_Item; %}, and [9] IMPLICIT SET OF %{ this = parm; %} CMISFilter [[p &(*this) -> flt_filter]] %{ (*this) -> flt_type = Filter_And; this = &(*this) -> flt_next; %}, or [10] IMPLICIT SET OF %{ this = parm; %} CMISFilter [[p &(*this) -> flt_filter]] %{ (*this) -> flt_type = Filter_Or; this = &(*this) -> flt_next; %}, not [11] CMISFilter [[p &(*parm) -> flt_filter]] %{ (*parm) -> flt_type = Filter_Not; %} } ENCODER build FilterItem [[P FilterItem *]] %{ FilterSubstrings *this; PE string; %} ::= CHOICE << parm -> fi_type + 1 >> { equality [0] IMPLICIT Attribute [[p &parm -> fi_attr]], substrings [1] IMPLICIT SEQUENCE OF << this = parm -> fi_substrings; this; this = this -> fi_sub_next >> CHOICE %{ string = oct2prim(this -> fi_sub_string, strlen(this -> fi_sub_string)); %} << this -> fi_sub_type + 1 >> { initialString [0] IMPLICIT SEQUENCE { attributeId AttributeId [[p &this -> fi_sub_attrid]], string ANY DEFINED BY attributeId [[a string]] }, anyString [1] IMPLICIT SEQUENCE { attributeId AttributeId [[p &this -> fi_sub_attrid]], string ANY DEFINED BY attributeId [[a string]] }, finalString [2] IMPLICIT SEQUENCE { attributeId AttributeId [[p &this -> fi_sub_attrid]], string ANY DEFINED BY attributeId [[a string]] } } %{ pe_free(string); %}, greaterOrEqual [2] IMPLICIT Attribute [[p &parm -> fi_attr]], lessOrEqual [3] IMPLICIT Attribute [[p &parm -> fi_attr]], present [4] AttributeId [[p &parm -> fi_attr.mp_id]], subsetOf [5] IMPLICIT Attribute [[p &parm -> fi_attr]], supersetOf [6] IMPLICIT Attribute [[p &parm -> fi_attr]], nonNullIntersection [7] IMPLICIT Attribute [[p &parm -> fi_attr]] } DECODER parse FilterItem [[P FilterItem **]] %{ FilterSubstrings **this; PE string; int stringlen; %} ::= CHOICE %{ if ((*parm = (FilterItem *) calloc(1, sizeof(FilterItem))) == NULL) return NOTOK; %} { equality [0] IMPLICIT Attribute [[p &(*parm) -> fi_attr]] %{ (*parm) -> fi_type = FI_Equality; %}, substrings [1] %{ this = &(*parm) -> fi_substrings; %} IMPLICIT SEQUENCE OF %{ if ((*this = (FilterSubstrings *) calloc(1, sizeof(FilterSubstrings))) == NULL) return NOTOK; %} CHOICE { initialString [0] IMPLICIT SEQUENCE { attributeId AttributeId [[p &(*this) -> fi_sub_attrid]], string ANY DEFINED BY attributeId %{ string = pe_cpy($$); %} } %{ (*this) -> fi_sub_type = FI_Substring_Initial; %}, anyString [1] IMPLICIT SEQUENCE { attributeId AttributeId [[p &(*this) -> fi_sub_attrid]], string ANY DEFINED BY attributeId %{ string = pe_cpy($$); %} } %{ (*this) -> fi_sub_type = FI_Substring_Any; %}, finalString [2] IMPLICIT SEQUENCE { attributeId AttributeId [[p &(*this) -> fi_sub_attrid]], string ANY DEFINED BY attributeId %{ string = pe_cpy($$); %} } %{ (*this) -> fi_sub_type = FI_Substring_Final; %} } %{ (*this) -> fi_sub_string = prim2str(string, &stringlen); pe_free(string); this = &(*this) -> fi_sub_next; %}, greaterOrEqual [2] IMPLICIT Attribute [[p &(*parm) -> fi_attr]] %{ (*parm) -> fi_type = FI_GreaterOrEqual; %}, lessOrEqual [3] IMPLICIT Attribute [[p &(*parm) -> fi_attr]] %{ (*parm) -> fi_type = FI_LessOrEqual; %}, present [4] AttributeId [[p &(*parm) -> fi_attr.mp_id]] %{ (*parm) -> fi_type = FI_Present; %}, subsetOf [5] IMPLICIT Attribute [[p &(*parm) -> fi_attr]] %{ (*parm) -> fi_type = FI_SubsetOf; %}, supersetOf [6] IMPLICIT Attribute [[p &(*parm) -> fi_attr]] %{ (*parm) -> fi_type = FI_SupersetOf; %}, nonNullIntersection [7] IMPLICIT Attribute [[p &(*parm) -> fi_attr]] %{ (*parm) -> fi_type = FI_NonNullSetIntersect; %} } ENCODER build AttributeIdList [[P MID]] %{ int nid; %} ::= SET OF << nid = 0; nid < 1; nid++ >> AttributeId [[p parm]] DECODER parse AttributeIdList [[P MID]] %{ int nid = 0; MIDent attrid, * this; %} ::= SET OF %{ this = (nid == 0 ? parm : &attrid); %} AttributeId [[p this]] %{ if (nid && attrid.mid_type == MID_GLOBAL && attrid.mid_global) oid_free(attrid.mid_global); nid++; %} ENCODER build AttributeId [[P MID]] ::= CHOICE << parm -> mid_type + 1 >> { globalForm [0] IMPLICIT OBJECT IDENTIFIER [[O parm -> mid_global]], localForm [1] IMPLICIT INTEGER [[i parm -> mid_local]] } EventTypeId [[P MID]] ::= CHOICE << parm -> mid_type + 1 >> { globalForm [6] IMPLICIT OBJECT IDENTIFIER [[O parm -> mid_global]], localForm [7] IMPLICIT INTEGER [[i parm -> mid_local]] } ActionTypeId [[P MID]] ::= CHOICE << parm -> mid_type + 1 >> { globalForm [2] IMPLICIT OBJECT IDENTIFIER [[O parm -> mid_global]], localForm [3] IMPLICIT INTEGER [[i parm -> mid_local]] } DECODER parse AttributeId [[P MID]] ::= CHOICE { globalForm [0] IMPLICIT OBJECT IDENTIFIER [[O parm -> mid_global]] %{ parm -> mid_type = MID_GLOBAL; %}, localForm [1] IMPLICIT INTEGER [[i parm -> mid_local]] %{ parm -> mid_type = MID_LOCAL; %} } EventTypeId [[P MID]] ::= CHOICE { globalForm [6] IMPLICIT OBJECT IDENTIFIER [[O parm -> mid_global]] %{ parm -> mid_type = MID_GLOBAL; %}, localForm [7] IMPLICIT INTEGER [[i parm -> mid_local]] %{ parm -> mid_type = MID_LOCAL; %} } ActionTypeId [[P MID]] ::= CHOICE { globalForm [2] IMPLICIT OBJECT IDENTIFIER [[O parm -> mid_global]] %{ parm -> mid_type = MID_GLOBAL; %}, localForm [3] IMPLICIT INTEGER [[i parm -> mid_local]] %{ parm -> mid_type = MID_LOCAL; %} } ENCODER build Attribute [[P CMISparam *]] ::= SEQUENCE { attributeId AttributeId [[p &parm -> mp_id]], attributeValue ANY DEFINED BY attributeId [[a parm -> mp_val]] } EventReply [[P CMISparam *]] ::= SEQUENCE { eventType EventTypeId [[p &parm -> mp_id]], eventReplyInfo [8] ANY DEFINED BY eventType [[a parm -> mp_val]] OPTIONAL << parm -> mp_val != NULLPE >> } ActionInfo [[P CMISparam *]] ::= SEQUENCE { actionType ActionTypeId [[p &parm -> mp_id]], actionInfoArg [4] ANY DEFINED BY actionType [[a parm -> mp_val]] OPTIONAL << parm -> mp_val != NULLPE >> } ActionReply [[P CMISparam *]] ::= SEQUENCE { actionType ActionTypeId [[p &parm -> mp_id]], actionReplyInfo [4] ANY DEFINED BY actionType [[a parm -> mp_val]] } DECODER parse Attribute [[P CMISparam *]] ::= SEQUENCE { attributeId AttributeId [[p &parm -> mp_id]], attributeValue ANY DEFINED BY attributeId %{ parm -> mp_val = pe_cpy($$); %} } EventReply [[P CMISparam *]] ::= SEQUENCE { eventType EventTypeId [[p &parm -> mp_id]], eventReplyInfo [8] ANY DEFINED BY eventType %{ parm -> mp_val = pe_cpy($$); %} OPTIONAL } ActionInfo [[P CMISparam *]] ::= SEQUENCE { actionType ActionTypeId [[p &parm -> mp_id]], actionInfoArg [4] ANY DEFINED BY actionType %{ parm -> mp_val = pe_cpy($$); %} OPTIONAL } ActionReply [[P CMISparam *]] ::= SEQUENCE { actionType ActionTypeId [[p &parm -> mp_id]], actionReplyInfo [4] ANY DEFINED BY actionType %{ parm -> mp_val = pe_cpy($$); %} } ENCODER build AttributeIdError [[P CMISparam *]] ::= SEQUENCE { errorStatus ENUMERATED [[i (int) parm -> mp_error - 1]] { accessDenied (2), noSuchAttribute (5) }, attributeId AttributeId [[p &parm -> mp_id]] } DECODER parse AttributeIdError [[P CMISparam *]] ::= SEQUENCE { errorStatus ENUMERATED [[i (int) parm -> mp_error]] { accessDenied (2), noSuchAttribute (5) } %{ ((int) parm -> mp_error)++; %}, attributeId AttributeId [[p &parm -> mp_id]] } ENCODER build AttributeError [[P CMISparam *]] ::= SEQUENCE { errorStatus ENUMERATED [[i (int) parm -> mp_error - 1]] { accessDenied (2), noSuchAttribute (5), invalidAttributeValue (6), invalidOperation (24), invalidOperator (25) }, attributeId AttributeId [[p &parm -> mp_id]], attributeValue ANY DEFINED BY attributeId [[a parm -> mp_val]] } DECODER parse AttributeError [[P CMISparam *]] ::= SEQUENCE { errorStatus ENUMERATED [[i (int) parm -> mp_error]] { accessDenied (2), noSuchAttribute (5), invalidAttributeValue (6), invalidOperation (24), invalidOperator (25) } %{ ((int) parm -> mp_error)++; %}, attributeId AttributeId [[p &parm -> mp_id]], attributeValue ANY DEFINED BY attributeId %{ parm -> mp_val = pe_cpy($$); %} } SECTIONS build parse none NoSuchAction [[P CMISerrparam *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]], actionType ActionTypeId [[p &parm -> me_id]] } NoSuchEventType [[P CMISerrparam *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]], eventType EventTypeId [[p &parm -> me_id]] } ENCODER build NoSuchArgument [[P CMISerrparam *]] ::= CHOICE << parm -> me_operation == M_ACTIONC ? 1 : 2 >> { actionId [0] IMPLICIT SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]] OPTIONAL << parm -> me_class.mid_global != NULLOID || parm -> me_class.mid_type != MID_GLOBAL >>, actionType ActionTypeId [[p &parm -> me_id]] }, eventId [1] IMPLICIT SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]] OPTIONAL << parm -> me_class.mid_global != NULLOID || parm -> me_class.mid_type != MID_GLOBAL >>, eventType EventTypeId [[p &parm -> me_id]] } } InvalidArgumentValue [[P CMISerrparam *]] ::= CHOICE << parm -> me_operation == M_ACTIONC ? 1 : 2 >> { actionValue [0] IMPLICIT SEQUENCE { actionType ActionTypeId [[p &parm -> me_id]], actionInfoArg [4] ANY DEFINED BY actionType [[a parm -> me_val]] OPTIONAL << parm -> me_val != NULLPE >> }, eventValue [1] IMPLICIT SEQUENCE { eventType EventTypeId [[p &parm -> me_id]], eventInfo [8] ANY DEFINED BY eventType [[a parm -> me_val]] OPTIONAL << parm -> me_val != NULLPE >> } } DECODER parse NoSuchArgument [[P CMISerrparam *]] ::= CHOICE { actionId [0] IMPLICIT SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]] OPTIONAL, actionType ActionTypeId [[p &parm -> me_id]] }, eventId [1] IMPLICIT SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]] OPTIONAL, eventType EventTypeId [[p &parm -> me_id]] } } InvalidArgumentValue [[P CMISerrparam *]] ::= CHOICE { actionValue [0] IMPLICIT SEQUENCE { actionType ActionTypeId [[p &parm -> me_id]], actionInfoArg [4] ANY DEFINED BY actionType %{ parm -> me_val = pe_cpy($$); %} OPTIONAL }, eventValue [1] IMPLICIT SEQUENCE { eventType EventTypeId [[p &parm -> me_id]], eventInfo [8] ANY DEFINED BY eventType %{ parm -> me_val = pe_cpy($$); %} OPTIONAL } } ENCODER build ComplexityLimitation [[P CMISerrparam *]] ::= SET { scope [0] Scope [[p &parm -> me_scope]] OPTIONAL << parm -> me_scope.sc_type != Sc_BaseObject >>, filter [1] CMISFilter [[p parm -> me_filter]] OPTIONAL << parm -> me_filter != NULLFILTER >>, sync [2] CMISSync [[p (int *) &parm -> me_sync]] OPTIONAL << parm -> me_sync != s_bestEffort >> } ProcessingFailure [[P CMISerrparam *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]], managedObjectInstance ObjectInstance [[p &parm -> me_inst]] OPTIONAL << parm -> me_inst.mn_dn != NULLDN || parm -> me_inst.mn_type != MN_DN >>, specificErrorInfo [6] ANY DEFINED BY managedObjectClass [[a parm -> me_val]] } DECODER parse ComplexityLimitation [[P CMISerrparam *]] ::= SET { scope [0] Scope [[p &parm -> me_scope]] OPTIONAL, filter [1] CMISFilter [[p &parm -> me_filter]] OPTIONAL, sync [2] CMISSync [[p (int *) &parm -> me_sync]] OPTIONAL } ProcessingFailure [[P CMISerrparam *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]], managedObjectInstance ObjectInstance [[p &parm -> me_inst]] OPTIONAL, specificErrorInfo [6] ANY DEFINED BY managedObjectClass %{ parm -> me_val = pe_cpy($$); %} } ENCODER build GetInfoStatus [[P CMISparam *]] ::= CHOICE << parm -> mp_error == m_noError ? 2 : 1 >> { attributeIdError [0] IMPLICIT AttributeIdError [[p parm]], attribute [1] IMPLICIT Attribute [[p parm]] } SetInfoStatus [[P CMISparam *]] ::= CHOICE << parm -> mp_error == m_noError ? 2 : 1 >> { attributeError [0] IMPLICIT AttributeError [[p parm]], attribute [1] IMPLICIT Attribute [[p parm]] } DECODER parse GetInfoStatus [[P CMISparam *]] ::= CHOICE { attributeIdError [0] IMPLICIT AttributeIdError [[p parm]] %{ parm -> mp_val = NULLPE; %}, attribute [1] IMPLICIT Attribute [[p parm]] %{ parm -> mp_error = m_noError; %} } SetInfoStatus [[P CMISparam *]] ::= CHOICE { attributeError [0] IMPLICIT AttributeError [[p parm]], attribute [1] IMPLICIT Attribute [[p parm]] %{ parm -> mp_error = m_noError; %} } ENCODER build EventReportArgument [[P struct event_rep_arg *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> ea_class]], managedObjectInstance ObjectInstance [[p &parm -> ea_inst]], eventTime [5] IMPLICIT GeneralizedTime [[s parm -> ea_time]] OPTIONAL << parm -> ea_time != NULLCP >>, eventType EventTypeId [[p &parm -> ea_type]], eventInfo [8] ANY DEFINED BY eventType [[a parm -> ea_info]] OPTIONAL << parm -> ea_info != NULLPE >> } DECODER parse EventReportArgument [[P struct event_rep_arg *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> ea_class]], managedObjectInstance ObjectInstance [[p &parm -> ea_inst]], eventTime [5] IMPLICIT GeneralizedTime [[s parm -> ea_time]] OPTIONAL, eventType EventTypeId [[p &parm -> ea_type]], eventInfo [8] ANY DEFINED BY eventType %{ parm -> ea_info = pe_cpy($$); %} OPTIONAL } SECTIONS build parse none EventReportResult [[P struct event_rep_res *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> er_class]] OPTIONAL << parm -> er_class.mid_global != NULLOID || parm -> er_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> er_inst]] OPTIONAL << parm -> er_inst.mn_dn != NULLDN || parm -> er_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> er_time]] OPTIONAL << parm -> er_time != NULLCP >>, eventReply EventReply [[p &parm -> er_reply]] OPTIONAL << parm->er_reply.mp_id.mid_global != NULLOID || parm->er_reply.mp_id.mid_type != MID_GLOBAL >> } ENCODER build ActionArgument [[P struct action_arg *]] ::= SEQUENCE { baseManagedObjectClass ObjectClass [[p &parm -> aa_class]], baseManagedObjectInstance ObjectInstance [[p &parm -> aa_inst]], accessControl [5] AccessControl [[p parm -> aa_access]] OPTIONAL << parm -> aa_access >>, synchronization [6] IMPLICIT CMISSync [[p (int *) &parm -> aa_sync]] DEFAULT bestEffort << parm -> aa_sync != s_bestEffort >>, scope [7] Scope [[p &parm -> aa_scope]] DEFAULT baseObject << parm -> aa_scope.sc_type != Sc_BaseObject >>, filter CMISFilter [[p parm -> aa_filter]] DEFAULT and {} << parm -> aa_filter != NULLFILTER >>, actionInfo [12] IMPLICIT ActionInfo [[p &parm -> aa_info]] } ActionErrorInfo [[P CMISerrparam *]] ::= SEQUENCE { errorStatus ENUMERATED [[i (int) parm -> me_error - 1]] { accessDenied (2), noSuchAction (9), noSuchArgument (14), invalidArgumentValue (15) }, errorInfo CHOICE << parm -> me_error == m_invalidArgumentValue ? 3 : (parm -> me_error == m_noSuchArgument ? 2 : 1) >> { actionType ActionTypeId [[p &parm -> me_id]], actionArgument [0] NoSuchArgument [[p parm]], argumentValue [1] InvalidArgumentValue [[p parm]] } } DECODER parse ActionArgument [[P struct action_arg *]] ::= SEQUENCE { baseManagedObjectClass ObjectClass [[p &parm -> aa_class]], baseManagedObjectInstance ObjectInstance [[p &parm -> aa_inst]], accessControl [5] AccessControl [[p &parm -> aa_access]] OPTIONAL, synchronization [6] IMPLICIT CMISSync [[p (int *) &parm -> aa_sync]] DEFAULT bestEffort, scope [7] Scope [[p &parm -> aa_scope]] DEFAULT baseObject, filter CMISFilter [[p &parm -> aa_filter]] DEFAULT and {}, actionInfo [12] IMPLICIT ActionInfo [[p &parm -> aa_info]] } ActionErrorInfo [[P CMISerrparam *]] ::= SEQUENCE { errorStatus ENUMERATED [[i (int) parm -> me_error]] { accessDenied (2), noSuchAction (9), noSuchArgument (14), invalidArgumentValue (15) } %{ ((int) parm -> me_error)++; %}, errorInfo CHOICE { actionType ActionTypeId [[p &parm -> me_id]], actionArgument [0] NoSuchArgument [[p parm]], argumentValue [1] InvalidArgumentValue [[p parm]] } } SECTIONS build parse none ActionResult [[P struct action_res *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> ar_class]] OPTIONAL << parm -> ar_class.mid_global != NULLOID || parm -> ar_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> ar_inst]] OPTIONAL << parm -> ar_inst.mn_dn != NULLDN || parm -> ar_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> ar_time]] OPTIONAL << parm -> ar_time != NULLCP >>, actionReply [6] IMPLICIT ActionReply [[p &parm -> ar_reply]] OPTIONAL << parm->ar_reply.mp_id.mid_global != NULLOID || parm->ar_reply.mp_id.mid_type != MID_GLOBAL >> } ActionError [[P CMISerrparam *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]] OPTIONAL << parm -> me_class.mid_global != NULLOID || parm -> me_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> me_inst]] OPTIONAL << parm -> me_inst.mn_dn != NULLDN || parm -> me_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> me_time]] OPTIONAL << parm -> me_time != NULLCP >>, actionErrorInfo [6] IMPLICIT ActionErrorInfo [[p parm]] } ENCODER build GetArgument [[P struct get_arg *]] %{ MID mid; int i; %} ::= SEQUENCE { baseManagedObjectClass ObjectClass [[p &parm -> ga_class]], baseManagedObjectInstance ObjectInstance [[p &parm -> ga_inst]], accessControl [5] AccessControl [[p parm -> ga_access]] OPTIONAL << parm -> ga_access >>, synchronization [6] IMPLICIT CMISSync [[p (int *) &parm -> ga_sync]] DEFAULT bestEffort << parm -> ga_sync != s_bestEffort >>, scope [7] Scope [[p &parm -> ga_scope]] DEFAULT baseObject << parm -> ga_scope.sc_type != Sc_BaseObject >>, filter CMISFilter [[p parm -> ga_filter]] DEFAULT and {} << parm -> ga_filter != NULLFILTER >>, attributeIdList [12] IMPLICIT SET OF << i = parm->ga_nattrs, mid = parm->ga_attrs; i; mid++, i-- >> AttributeId [[p mid]] OPTIONAL << parm -> ga_nattrs >> } DECODER parse GetArgument [[P struct get_arg *]] %{ MID mid = parm -> ga_attrs; %} ::= SEQUENCE %{ parm -> ga_nattrs = 0; %} { baseManagedObjectClass ObjectClass [[p &parm -> ga_class]], baseManagedObjectInstance ObjectInstance [[p &parm -> ga_inst]], accessControl [5] AccessControl [[p &parm -> ga_access]] OPTIONAL, synchronization [6] IMPLICIT CMISSync [[p (int *) &parm -> ga_sync]] DEFAULT bestEffort, scope [7] Scope [[p &parm -> ga_scope]] DEFAULT baseObject, filter CMISFilter [[p &parm -> ga_filter]] DEFAULT and {}, attributeIdList [12] IMPLICIT SET OF AttributeId [[p mid++]] %{ parm -> ga_nattrs++; %} OPTIONAL } ENCODER build GetResult [[P struct get_res *]] %{ CMISparam * attr; int i; %} ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> gr_class]] OPTIONAL << parm -> gr_class.mid_global != NULLOID || parm -> gr_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> gr_inst]] OPTIONAL << parm -> gr_inst.mn_dn != NULLDN || parm -> gr_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> gr_time]] OPTIONAL << parm -> gr_time != NULLCP >>, attributeList [6] IMPLICIT SET OF << i = parm->gr_nattrs, attr = parm->gr_attrs; i; attr++, i-- >> Attribute [[p attr]] OPTIONAL << parm -> gr_nattrs >> } GetListError [[P struct get_res *]] %{ CMISparam * attr; int i; %} ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> gr_class]] OPTIONAL << parm -> gr_class.mid_global != NULLOID || parm -> gr_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> gr_inst]] OPTIONAL << parm -> gr_inst.mn_dn != NULLDN || parm -> gr_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> gr_time]] OPTIONAL << parm -> gr_time != NULLCP >>, getInfoList [6] IMPLICIT SET OF << i = parm->gr_nattrs, attr = parm->gr_attrs; i; attr++, i-- >> GetInfoStatus [[p attr]] OPTIONAL << parm -> gr_nattrs >> } DECODER parse GetResult [[P struct get_res *]] %{ CMISparam * attr = parm -> gr_attrs; %} ::= SEQUENCE %{ parm -> gr_nattrs = 0; %} { managedObjectClass ObjectClass [[p &parm -> gr_class]] OPTIONAL, managedObjectInstance ObjectInstance [[p &parm -> gr_inst]] OPTIONAL, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> gr_time]] OPTIONAL, attributeList [6] IMPLICIT SET OF Attribute [[p attr++]] %{ parm -> gr_nattrs++; %} OPTIONAL } GetListError [[P struct get_res *]] %{ CMISparam * attr = parm -> gr_attrs; %} ::= SEQUENCE %{ parm -> gr_nattrs = 0; %} { managedObjectClass ObjectClass [[p &parm -> gr_class]] OPTIONAL, managedObjectInstance ObjectInstance [[p &parm -> gr_inst]] OPTIONAL, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> gr_time]] OPTIONAL, getInfoList [6] IMPLICIT SET OF GetInfoStatus [[p attr++]] %{ parm -> gr_nattrs++; %} } ENCODER build SetArgument [[P struct set_arg *]] %{ CMISparam * attr; int i; %} ::= SEQUENCE { baseManagedObjectClass ObjectClass [[p &parm -> sa_class]], baseManagedObjectInstance ObjectInstance [[p &parm -> sa_inst]], accessControl [5] AccessControl [[p parm -> sa_access]] OPTIONAL << parm -> sa_access >>, synchronization [6] IMPLICIT CMISSync [[p (int *) &parm -> sa_sync]] DEFAULT bestEffort << parm -> sa_sync != s_bestEffort >>, scope [7] Scope [[p &parm -> sa_scope]] DEFAULT baseObject << parm -> sa_scope.sc_type != Sc_BaseObject >>, filter CMISFilter [[p parm -> sa_filter]] DEFAULT and {} << parm -> sa_filter != NULLFILTER >>, modificationList [12] IMPLICIT SET OF << i = parm->sa_nattrs, attr = parm->sa_attrs; i; attr++, i-- >> SEQUENCE { attributeId [0] IMPLICIT AttributeId [[p &attr -> mp_id]], attributeValue [1] ANY DEFINED BY attributeId [[a attr -> mp_val]] OPTIONAL << attr -> mp_val != NULLPE >>, modifyOperator [2] IMPLICIT ModifyOperator [[p (int *) &attr -> mp_modify]] DEFAULT replace << attr -> mp_modify != m_replace >> } } DECODER parse SetArgument [[P struct set_arg *]] %{ CMISparam * attr = parm -> sa_attrs; %} ::= SEQUENCE %{ parm -> sa_nattrs = 0; %} { baseManagedObjectClass ObjectClass [[p &parm -> sa_class]], baseManagedObjectInstance ObjectInstance [[p &parm -> sa_inst]], accessControl [5] AccessControl [[p &parm -> sa_access]] OPTIONAL, synchronization [6] IMPLICIT CMISSync [[p (int *) &parm -> sa_sync]] DEFAULT bestEffort, scope [7] Scope [[p &parm -> sa_scope]] DEFAULT baseObject, filter CMISFilter [[p &parm -> sa_filter]] DEFAULT and {}, modificationList [12] IMPLICIT SET OF SEQUENCE { attributeId [0] IMPLICIT AttributeId [[p &attr -> mp_id]], attributeValue [1] ANY DEFINED BY attributeId %{ attr -> mp_val = pe_cpy($$); %} OPTIONAL, modifyOperator [2] IMPLICIT ModifyOperator [[p (int *) &attr -> mp_modify]] DEFAULT replace } %{ parm -> sa_nattrs++; attr++;%} } ENCODER build SetResult [[P struct set_res *]] %{ CMISparam * attr; int i; %} ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> sr_class]] OPTIONAL << parm -> sr_class.mid_global != NULLOID || parm -> sr_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> sr_inst]] OPTIONAL << parm -> sr_inst.mn_dn != NULLDN || parm -> sr_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> sr_time]] OPTIONAL << parm -> sr_time != NULLCP >>, attributeList [6] IMPLICIT SET OF << i = parm->sr_nattrs, attr = parm->sr_attrs; i; attr++, i-- >> Attribute [[p attr]] OPTIONAL << parm -> sr_nattrs >> } SetListError [[P struct set_res *]] %{ CMISparam * attr; int i; %} ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> sr_class]] OPTIONAL << parm -> sr_class.mid_global != NULLOID || parm -> sr_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> sr_inst]] OPTIONAL << parm -> sr_inst.mn_dn != NULLDN || parm -> sr_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> sr_time]] OPTIONAL << parm -> sr_time != NULLCP >>, setInfoList [6] IMPLICIT SET OF << i = parm->sr_nattrs, attr = parm->sr_attrs; i; attr++, i-- >> SetInfoStatus [[p attr]] OPTIONAL << parm -> sr_nattrs >> } DECODER parse SetResult [[P struct set_res *]] %{ CMISparam * attr = parm -> sr_attrs; %} ::= SEQUENCE %{ parm -> sr_nattrs = 0; %} { managedObjectClass ObjectClass [[p &parm -> sr_class]] OPTIONAL, managedObjectInstance ObjectInstance [[p &parm -> sr_inst]] OPTIONAL, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> sr_time]] OPTIONAL, attributeList [6] IMPLICIT SET OF Attribute [[p attr++]] %{ parm -> sr_nattrs++; %} OPTIONAL } SetListError [[P struct set_res *]] %{ CMISparam * attr = parm -> sr_attrs; %} ::= SEQUENCE %{ parm -> sr_nattrs = 0; %} { managedObjectClass ObjectClass [[p &parm -> sr_class]] OPTIONAL, managedObjectInstance ObjectInstance [[p &parm -> sr_inst]] OPTIONAL, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> sr_time]] OPTIONAL, setInfoList [6] IMPLICIT SET OF SetInfoStatus [[p attr++]] %{ parm -> sr_nattrs++; %} OPTIONAL } ENCODER build CreateArgument [[P struct create_arg *]] %{ CMISparam * attr; int i; %} ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> ca_class]], CHOICE << parm -> ca_instype == CA_OBJECT_INST ? 1 : 2 >> { managedObjectInstance ObjectInstance [[p &parm -> ca_inst]], superiorObjectInstance [8] ObjectInstance [[p &parm -> ca_inst]] } OPTIONAL << parm -> ca_inst.mn_dn != NULLDN || parm -> ca_inst.mn_type != MN_DN >>, accessControl [5] AccessControl [[p parm -> ca_access]] OPTIONAL << parm -> ca_access >>, referenceObjectInstance [6] ObjectInstance [[p &parm -> ca_refinst]] OPTIONAL << parm -> ca_refinst.mn_dn != NULLDN || parm -> ca_refinst.mn_type != MN_DN >>, attributeList [7] IMPLICIT SET OF << i = parm->ca_nattrs, attr = parm->ca_attrs; i; attr++, i-- >> Attribute [[p attr]] OPTIONAL << parm -> ca_nattrs >> } DECODER parse CreateArgument [[P struct create_arg *]] %{CMISparam * attr = parm->ca_attrs;%} ::= SEQUENCE %{ parm -> ca_nattrs = 0; %} { managedObjectClass ObjectClass [[p &parm -> ca_class]], CHOICE { managedObjectInstance ObjectInstance [[p &parm -> ca_inst]] %{ parm -> ca_instype = CA_OBJECT_INST; %}, superiorObjectInstance [8] ObjectInstance [[p &parm -> ca_inst]] %{ parm -> ca_instype = CA_PARENT_INST; %} } OPTIONAL, accessControl [5] AccessControl [[p &parm -> ca_access]] OPTIONAL, referenceObjectInstance [6] ObjectInstance [[p &parm -> ca_refinst]] OPTIONAL, attributeList [7] IMPLICIT SET OF Attribute [[p attr++]] %{ parm -> ca_nattrs++; %} OPTIONAL } ENCODER build CreateResult [[P struct create_res *]] %{ CMISparam * attr; int i; %} ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> cr_class]] OPTIONAL << parm -> cr_class.mid_global != NULLOID || parm -> cr_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> cr_inst]] OPTIONAL << parm -> cr_inst.mn_dn != NULLDN || parm -> cr_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> cr_time]] OPTIONAL << parm -> cr_time != NULLCP >>, attributeList [6] IMPLICIT SET OF << i = parm->cr_nattrs, attr = parm->cr_attrs; i; attr++, i-- >> Attribute [[p attr]] OPTIONAL << parm -> cr_nattrs >> } DECODER parse CreateResult [[P struct create_res *]] %{ CMISparam * attr = parm->cr_attrs; %} ::= SEQUENCE %{ parm -> cr_nattrs = 0; %} { managedObjectClass ObjectClass [[p &parm -> cr_class]] OPTIONAL, managedObjectInstance ObjectInstance [[p &parm -> cr_inst]] OPTIONAL, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> cr_time]] OPTIONAL, attributeList [6] IMPLICIT SET OF Attribute [[p attr++]] %{ parm -> cr_nattrs++; %} OPTIONAL } ENCODER build DeleteArgument [[P struct delete_arg *]] ::= SEQUENCE { baseManagedObjectClass ObjectClass [[p &parm -> da_class]], baseManagedObjectInstance ObjectInstance [[p &parm -> da_inst]], accessControl [5] AccessControl [[p parm -> da_access]] OPTIONAL << parm -> da_access >>, synchronization [6] IMPLICIT CMISSync [[p (int *) &parm -> da_sync]] DEFAULT bestEffort << parm -> da_sync != s_bestEffort >>, scope [7] Scope [[p &parm -> da_scope]] DEFAULT baseObject << parm -> da_scope.sc_type != Sc_BaseObject >>, filter CMISFilter [[p parm -> da_filter]] DEFAULT and {} << parm -> da_filter != NULLFILTER >> } DECODER parse DeleteArgument [[P struct delete_arg *]] ::= SEQUENCE { baseManagedObjectClass ObjectClass [[p &parm -> da_class]], baseManagedObjectInstance ObjectInstance [[p &parm -> da_inst]], accessControl [5] AccessControl [[p &parm -> da_access]] OPTIONAL, synchronization [6] IMPLICIT CMISSync [[p (int *) &parm -> da_sync]] DEFAULT bestEffort, scope [7] Scope [[p &parm -> da_scope]] DEFAULT baseObject, filter CMISFilter [[p &parm -> da_filter]] DEFAULT and {} } SECTIONS build parse none DeleteResult [[P struct delete_res *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> dr_class]] OPTIONAL << parm -> dr_class.mid_global != NULLOID || parm -> dr_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> dr_inst]] OPTIONAL << parm -> dr_inst.mn_dn != NULLDN || parm -> dr_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> dr_time]] OPTIONAL << parm -> dr_time != NULLCP >> } ENCODER build DeleteError [[P CMISerrparam *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]] OPTIONAL << parm -> me_class.mid_global != NULLOID || parm -> me_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> me_inst]] OPTIONAL << parm -> me_inst.mn_dn != NULLDN || parm -> me_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> me_time]] OPTIONAL << parm -> me_time != NULLCP >>, deleteErrorInfo [6] ENUMERATED [[i (int) parm -> me_error - 1]] { accessDenied (2) } } DECODER parse DeleteError [[P CMISerrparam *]] ::= SEQUENCE { managedObjectClass ObjectClass [[p &parm -> me_class]] OPTIONAL << parm -> me_class.mid_global != NULLOID || parm -> me_class.mid_type != MID_GLOBAL >>, managedObjectInstance ObjectInstance [[p &parm -> me_inst]] OPTIONAL << parm -> me_inst.mn_dn != NULLDN || parm -> me_inst.mn_type != MN_DN >>, currentTime [5] IMPLICIT GeneralizedTime [[s parm -> me_time]] OPTIONAL << parm -> me_time != NULLCP >>, deleteErrorInfo [6] ENUMERATED [[i (int) parm -> me_error]] { accessDenied (2) } %{ ((int) parm -> me_error)++; %} } ENCODER build LinkedReplyArgument [[P struct linked_reply_arg *]] ::= CHOICE << parm -> lr_type >> { getResult [0] IMPLICIT GetResult [[p &parm -> lr_getr]], getListError [1] IMPLICIT GetListError [[p &parm -> lr_getr]], setResult [2] IMPLICIT SetResult [[p &parm -> lr_setr]], setListError [3] IMPLICIT SetListError [[p &parm -> lr_setr]], actionResult [4] IMPLICIT ActionResult [[p &parm -> lr_actionr]], processingFailure [5] IMPLICIT ProcessingFailure [[p &parm->lr_error]], deleteResult [6] IMPLICIT DeleteResult [[p &parm -> lr_deleter]], actionError [7] IMPLICIT ActionError [[p &parm -> lr_error]], deleteError [8] IMPLICIT DeleteError [[p &parm -> lr_error]] } DECODER parse LinkedReplyArgument [[P struct linked_reply_arg *]] ::= CHOICE { getResult [0] IMPLICIT GetResult [[p &parm -> lr_getr]] %{ parm -> lr_type = LR_GET_RES; %}, getListError [1] IMPLICIT GetListError [[p &parm -> lr_getr]] %{ parm -> lr_type = LR_GET_LISTERR; %}, setResult [2] IMPLICIT SetResult [[p &parm -> lr_setr]] %{ parm -> lr_type = LR_SET_RES; %}, setListError [3] IMPLICIT SetListError [[p &parm -> lr_setr]] %{ parm -> lr_type = LR_SET_LISTERR; %}, actionResult [4] IMPLICIT ActionResult [[p &parm -> lr_actionr]] %{ parm -> lr_type = LR_ACTION_RES; %}, processingFailure [5] IMPLICIT ProcessingFailure [[p &parm->lr_error]] %{ parm -> lr_type = LR_PROC_FAIL; %}, deleteResult [6] IMPLICIT DeleteResult [[p &parm -> lr_deleter]] %{ parm -> lr_type = LR_DELETE_RES; %}, actionError [7] IMPLICIT ActionError [[p &parm -> lr_error]] %{ parm -> lr_type = LR_ACTION_ERR; %}, deleteError [8] IMPLICIT DeleteError [[p &parm -> lr_error]] %{ parm -> lr_type = LR_DELETE_ERR; %} } END %{ /* VARARGS2 */ static void advise (what, fmt, a, b, c, d, e, f, g, h, i, j) char *what, *fmt, *a, *b, *c, *d, *e, *f, *g, *h, *i, *j; { (void) fflush(stdout); (void) fprintf(stderr, "libmsap: "); (void) fprintf(stderr, fmt, a, b, c, d, e, f, g, h, i, j); if (what) (void) fputc(' ', stderr), perror(what); else (void) fputc('\n', stderr); (void) fflush(stderr); } %}