- int i;
- Z_OtherInformation *otherInformation = *otherInformationP;
- if (!otherInformation)
- {
- if (!createFlag)
- return 0;
- otherInformation = *otherInformationP = (Z_OtherInformation *)
- odr_malloc (odr_encode(), sizeof(*otherInformation));
- otherInformation->num_elements = 0;
- otherInformation->list = (Z_OtherInformationUnit **)
- odr_malloc (odr_encode(), 8*sizeof(*otherInformation));
- for (i = 0; i<8; i++)
- otherInformation->list[i] = 0;
- }
- logf (LOG_LOG, "Yaz_Z_Assoc::update_otherInformation num=%d",
- otherInformation->num_elements);
- for (i = 0; i<otherInformation->num_elements; i++)
- {
- assert (otherInformation->list[i]);
- if (!oid)
- {
- if (!otherInformation->list[i]->category)
- return otherInformation->list[i];
- }
- else
- {
- if (otherInformation->list[i]->category &&
- categoryValue ==
- *otherInformation->list[i]->category->categoryValue &&
- !oid_oidcmp (oid, otherInformation->list[i]->category->
- categoryTypeId))
- return otherInformation->list[i];
- }
- }
- if (!createFlag)
- return 0;
- otherInformation->list[i] = (Z_OtherInformationUnit*)
- odr_malloc (odr_encode(), sizeof(Z_OtherInformationUnit));
- if (oid)
+ return yaz_oi_update (otherInformationP,
+ (createFlag ? odr_encode() : 0),
+ oid, categoryValue, deleteFlag);
+}
+
+Z_ReferenceId* Yaz_Z_Assoc::getRefID(char* str)
+{
+ Z_ReferenceId* id = NULL;
+
+ if ( str )