+ struct oident ent;
+ ent.proto = PROTO_Z3950;
+ ent.oclass = CLASS_RECSYN;
+ ent.value = (enum oid_value) m_preferredRecordSyntax;
+
+ int oid[OID_SIZE];
+ oid_ent_to_oid (&ent, oid);
+ struct oident *entp = oid_getentbyoid (oid);
+
+ *dst = entp ? entp->desc : "";
+}
+
+void Yaz_IR_Assoc::set_elementSetName (const char *elementSetName)
+{
+ if (m_elementSetNames)
+ delete [] m_elementSetNames->u.generic;
+ delete m_elementSetNames;
+ m_elementSetNames = 0;
+ if (elementSetName && *elementSetName)
+ {
+ m_elementSetNames = new Z_ElementSetNames;
+ m_elementSetNames->which = Z_ElementSetNames_generic;
+ m_elementSetNames->u.generic = new char[strlen(elementSetName)+1];
+ strcpy (m_elementSetNames->u.generic, elementSetName);
+ }
+}
+
+void Yaz_IR_Assoc::get_elementSetName (Z_ElementSetNames **elementSetNames)
+{
+ *elementSetNames = m_elementSetNames;
+}
+
+void Yaz_IR_Assoc::get_elementSetName (const char **elementSetName)
+{
+ if (!m_elementSetNames ||
+ m_elementSetNames->which != Z_ElementSetNames_generic)
+ {
+ *elementSetName = 0;
+ return;
+ }
+ *elementSetName = m_elementSetNames->u.generic;
+}
+
+void Yaz_IR_Assoc::recv_Z_PDU(Z_APDU *apdu)
+{
+ logf (LOG_LOG, "recv_Z_PDU");
+ m_lastReceived = apdu->which;
+ switch (apdu->which)
+ {
+ case Z_APDU_initResponse:
+ logf (LOG_LOG, "recv InitResponse");
+ recv_initResponse(apdu->u.initResponse);
+ break;
+ case Z_APDU_initRequest:
+ logf (LOG_LOG, "recv InitRequest");
+ recv_initRequest(apdu->u.initRequest);
+ break;
+ case Z_APDU_searchRequest:
+ logf (LOG_LOG, "recv searchRequest");
+ recv_searchRequest(apdu->u.searchRequest);
+ break;
+ case Z_APDU_searchResponse:
+ logf (LOG_LOG, "recv searchResponse");
+ recv_searchResponse(apdu->u.searchResponse);
+ break;
+ case Z_APDU_presentRequest:
+ logf (LOG_LOG, "recv presentRequest");
+ recv_presentRequest(apdu->u.presentRequest);
+ break;
+ case Z_APDU_presentResponse:
+ logf (LOG_LOG, "recv presentResponse");
+ recv_presentResponse(apdu->u.presentResponse);
+ break;
+ }