|
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 a
Length: 3614 (0xe1e) Types: TextFile Names: »attrvalue.h«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« └─⟦d3ac74d73⟧ └─⟦this⟧ »isode-5.0/h/quipu/attrvalue.h«
/* attrvalue.h - */ /* * $Header: /f/osi/h/quipu/RCS/attrvalue.h,v 6.0 89/03/18 23:32:43 mrose Rel $ * * * * $Log: attrvalue.h,v $ * Revision 6.0 89/03/18 23:32:43 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. * */ #ifndef ATTRVALUE #define ATTRVALUE #include "quipu/name.h" #define SOUNDEXKEYSIZE 4 #define MAXSOUNDEXKEYS 6 #define NOSOUNDEX 0 #define SOUNDEX 1 typedef char Soundex; /* Soundex array size will be */ /* SOUNDEXKEYSIZE by MAXSOUNDEXKEYS. */ /* Soundex structure is defined here */ /* so that DUA and DSA can use a common */ /* structure */ char ** AttrV_soundex_key (); typedef struct avseqcomp { /* attribute may have multiple values */ /* respresents SET OF AttributeValue */ AttributeValue avseq_av; Soundex avseq_soundex [MAXSOUNDEXKEYS][SOUNDEXKEYSIZE]; /* Component NOT for use by DUA */ struct avseqcomp *avseq_next; } avseqcomp, *AV_Sequence; #define NULLAV ((AV_Sequence) 0) #define avs_comp_alloc() (AV_Sequence) smalloc(sizeof(avseqcomp)) #define avs_comp_fill(w,y) w->avseq_av = y #define avs_cmp_comp(x,y,error) AttrV_cmp (x->avseq_av ,y->avseq_av,error) AV_Sequence avs_comp_new (); AV_Sequence avs_comp_cpy (); AV_Sequence avs_cpy (); AV_Sequence avs_merge (); AV_Sequence str2avs (); typedef struct attrcomp { /* A sequence of attributes */ /* represents Attribute */ /* and SET OF Attribute */ AttributeType attr_type; AV_Sequence attr_value; struct attrcomp *attr_link; /* ACL is NOT for use by DUA */ /* this must be done by use of ACL */ /* attribute */ struct acl_info *attr_acl; } attrcomp, *Attr_Sequence; #define NULLATTR ((Attr_Sequence) 0) #define as_comp_alloc() (Attr_Sequence) smalloc(sizeof(attrcomp)) #define as_comp_fill(x,y,z,w) x -> attr_type = y ; x -> attr_value = z ; x-> attr_acl = w #define as_comp_cmp(x,y) (((oid_cmp (x->attr_type ,y->attr_type) == OK) && (avs_cmp (x->attr_value ,y->attr_value) == OK)) ? OK : NOTOK) Attr_Sequence as_comp_new (); Attr_Sequence as_comp_cpy (); Attr_Sequence as_cpy (); Attr_Sequence as_find_type (); Attr_Sequence as_merge (); Attr_Sequence str2as(); /* ACL is defined here as it is */ /* referenced. it is only used by */ /* DSA */ /* represents ACLInfo defined by INCA */ struct acl_info { int acl_categories; #define ACL_NONE 0 #define ACL_DETECT 1 #define ACL_COMPARE 2 #define ACL_READ 3 #define ACL_ADD 4 #define ACL_WRITE 5 int acl_selector_type; #define ACL_ENTRY 0 #define ACL_OTHER 1 #define ACL_PREFIX 2 #define ACL_GROUP 3 struct dn_seq *acl_name; /* prefix and group only */ struct acl_info *acl_next; }; #define NULLACL_INFO (struct acl_info *) NULL #define acl_info_alloc() (struct acl_info *) smalloc (sizeof (struct acl_info)) #define acl_info_fill(w,x,y,z) w -> acl_categories = x ; \ w -> acl_selector_type = y; \ w -> acl_name = z; struct acl_info *acl_info_new (); struct acl_info *acl_info_cpy(); struct acl_info *acl_default(); #endif