DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T i

⟦b34672e6a⟧ TextFile

    Length: 5050 (0x13ba)
    Types: TextFile
    Names: »if-dec.py«

Derivation

└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape
    └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« 
        └─⟦d3ac74d73⟧ 
            └─⟦this⟧ »isode-5.0/dsap/x500as/if-dec.py« 

TextFile

-- if-dec.py - manually-augmented InformationFramework module

-- $Header: /f/osi/dsap/x500as/RCS/if-dec.py,v 6.0 89/03/18 23:29:50 mrose Rel $
--
--
-- $Log:	if-dec.py,v $
-- Revision 6.0  89/03/18  23:29:50  mrose
-- Release 5.0
-- 

--
--				  NOTICE
--
--    Acquisition, use, and distribution of this module and related
--    materials are subject to the restrictions of a license agreement.
--    Consult the Preface in the User's Manual for the full terms of
--    this agreement.
--
--


IF
	{
	joint-iso-ccitt
	ds(5)
	modules(1)
	informationFramework(1)
	}

DEFINITIONS ::=

%{
#include <stdio.h>
#include "quipu/util.h"
#include "quipu/attrvalue.h"

extern  LLog    * log_dsap;
OID             grab_oid();
PE              grab_pe();
%}

PREFIXES encode decode print

BEGIN

-- EXPORTS
--	AttributeType,
-- 	AttributeValue,
--	AttributeValueAssertion,
--	Attribute, 
-- 	RelativeDistinguishedName,
--	DistinguishedName,
--	Name;

DECODER decode

AttributeType [[P AttributeType*]]
%{
%}
        ::=
        %{
        DLOG(log_dsap, LLOG_TRACE, ("About to decode AttributeType (IF)"));
            (*parm) = AttrT_alloc();
	    (*parm)->at_oid = NULLOID;
            (*parm)->at_table = NULL;
        %}
        OBJECT IDENTIFIER [[O (*parm)->at_oid]] 
        %{
        DLOG(log_dsap, LLOG_TRACE, ("Done decode AttributeType (IF)"));
        %}

AttributeValue [[P AttributeValue*]]
%{
%}
        ::=
        %{
        DLOG(log_dsap, LLOG_TRACE, ("About to decode AttributeValue (IF)"));
            (*parm) = AttrV_alloc();
	    (*parm)->av_pe = NULLPE;
            (*parm)->av_syntax = AV_UNKNOWN;
        %}
        ANY [[a (*parm)->av_pe]]
        %{
        DLOG(log_dsap, LLOG_TRACE, ("Done decode AttributeValue (IF)"));
        %}

AttributeValueAssertion [[P AVA *]]
%{
%}
        ::=
        %{
        DLOG(log_dsap, LLOG_TRACE, ("About to decode AttributeValueAssertion (IF)"));
        %}
        SEQUENCE
        {
                AttributeType [[p &(parm->ava_type)]]
                %{
                %} ,
                AttributeValue [[p &(parm->ava_value)]]
                %{
                %}
        }
        %{
        DLOG(log_dsap, LLOG_TRACE, ("Done decode AttributeValueAssertion (IF)"));
        %}

Attribute [[P Attr_Sequence]]
%{
        AV_Sequence     *avs_next;
%}
        ::=
        %{
        DLOG(log_dsap, LLOG_TRACE, ("About to decode Attribute (IF)"));
		parm->attr_value = NULLAV;
		parm->attr_acl = NULLACL_INFO;
		parm->attr_link = NULLATTR;
		avs_next = &(parm->attr_value);
        %}
        SEQUENCE
        {
        type
                AttributeType [[p &(parm->attr_type)]]
                %{
                %} ,
        values
                SET OF
                	%{
				(*avs_next) = avs_comp_alloc();
                	%}
                        AttributeValue [[p &((*avs_next)->avseq_av)]]
                        %{
				avs_next = &((*avs_next)->avseq_next);
                        %}
                %{
			(*avs_next) = NULLAV;
                %}
        }
        %{
        DLOG(log_dsap, LLOG_TRACE, ("Done decode Attribute (IF)"));
        %}

RelativeDistinguishedName [[P RDN*]]
%{
        AVA             ava_next_s;
        AVA             * ava_next = &(ava_next_s);
        RDN             * rdn_next;
%}
        ::=
        %{
        DLOG(log_dsap, LLOG_TRACE, ("About to decode RelativeDistinguishedName (IF)"));
                (*parm) = NULLRDN;
		rdn_next = parm;
        %}
        SET OF
        %{
        %}
                AttributeValueAssertion [[p ava_next]]
                %{
                        (*rdn_next) = rdn_comp_new(ava_next->ava_type,ava_next->ava_value);
			rdn_next = &((*rdn_next)->rdn_next);
                %}
        %{
		(*rdn_next) = NULLRDN;
        DLOG(log_dsap, LLOG_TRACE, ("Done decode RelativeDistinguishedName (IF)"));
        %}

RDNSequence [[P DN*]]
%{
        DN              * dn_next;
%}
        ::=
        %{
        DLOG(log_dsap, LLOG_TRACE, ("About to decode RDNSequence (IF)"));
                (*parm) = NULLDN;
		dn_next = parm;
        %}
        SEQUENCE OF
        	%{
			(*dn_next) = dn_comp_alloc();
        	%}
                RelativeDistinguishedName [[p &((*dn_next)->dn_rdn)]]
                %{
                        dn_next = &((*dn_next)->dn_parent);
                %}
        %{
		(*dn_next) = NULLDN;
        DLOG(log_dsap, LLOG_TRACE, ("Done decode RDNSequence (IF)"));
        %}

DistinguishedName [[P DN*]]
%{
%}
        ::=
        %{
        DLOG(log_dsap, LLOG_TRACE, ("About to decode DistinguishedName (IF)"));
        %}
        RDNSequence [[p parm]]
        %{
        DLOG(log_dsap, LLOG_TRACE, ("Done decode DistinguishedName (IF)"));
        %}

Name [[P DN*]]
%{
%}
        ::=
        %{
        DLOG(log_dsap, LLOG_TRACE, ("About to decode Name (IF)"));
        %}
        CHOICE
        {
                RDNSequence [[p parm]]
                %{
                %}
        }
        %{
        DLOG(log_dsap, LLOG_TRACE, ("Done decode Name (IF)"));
        %}

END