46 const char **string_value)
51 while (src->
major < num_attributes)
53 Z_AttributeElement *element;
56 if (src->
type == *element->attributeType)
58 switch (element->which)
60 case Z_AttributeValue_numeric:
62 if (element->attributeSet && attribute_set_oid)
63 *attribute_set_oid = element->attributeSet;
64 return *element->value.numeric;
66 case Z_AttributeValue_complex:
67 if (src->
minor >= element->value.complex->num_list)
69 if (element->attributeSet && attribute_set_oid)
70 *attribute_set_oid = element->attributeSet;
71 if (element->value.complex->list[src->
minor]->which ==
72 Z_StringOrNumeric_numeric)
76 *element->value.complex->list[src->
minor-1]->u.numeric;
78 else if (element->value.complex->list[src->
minor]->which ==
79 Z_StringOrNumeric_string)
85 element->value.complex->list[src->
minor-1]->u.string;
int attr_find(AttrType *src, const Odr_oid **attribute_set_id)
void attr_init_APT(AttrType *src, Z_AttributesPlusTerm *zapt, int type)
void attr_init_AttrList(AttrType *src, Z_AttributeList *list, int type)
int attr_find_ex(AttrType *src, const Odr_oid **attribute_set_oid, const char **string_value)
Z_AttributeElement ** attributeList