* Sebastian Hammer, Adam Dickmeiss
*
* $Log: client.c,v $
- * Revision 1.88 1999-10-11 10:00:29 adam
+ * Revision 1.89 1999-11-04 14:58:44 adam
+ * Added status elements for backend delete result set handler.
+ * Updated delete result result set command for client.
+ *
+ * Revision 1.88 1999/10/11 10:00:29 adam
* Modified printing of records.
*
* Revision 1.87 1999/08/27 09:40:32 adam
static int send_deleteResultSetRequest(char *arg)
{
+ char names[8][32];
+ int i;
+
Z_APDU *apdu = zget_APDU(out, Z_APDU_deleteResultSetRequest);
Z_DeleteResultSetRequest *req = apdu->u.deleteResultSetRequest;
req->referenceId = set_refid (out);
- req->num_resultSetList = 1;
- req->resultSetList = (char **)
- odr_malloc (out, sizeof(*req->resultSetList));
- *req->resultSetList = arg;
+ req->num_resultSetList =
+ sscanf (arg, "%30s %30s %30s %30s %30s %30s %30s %30s",
+ names[0], names[1], names[2], names[3],
+ names[4], names[5], names[6], names[7]);
+
req->deleteFunction = (int *)
odr_malloc (out, sizeof(*req->deleteFunction));
- *req->deleteFunction = Z_DeleteRequest_list;
+ if (req->num_resultSetList > 0)
+ {
+ *req->deleteFunction = Z_DeleteRequest_list;
+ req->resultSetList = (char **)
+ odr_malloc (out, sizeof(*req->resultSetList)*
+ req->num_resultSetList);
+ for (i = 0; i<req->num_resultSetList; i++)
+ req->resultSetList[i] = names[i];
+ }
+ else
+ {
+ *req->deleteFunction = Z_DeleteRequest_all;
+ req->resultSetList = 0;
+ }
send_apdu(apdu);
printf("Sent deleteResultSetRequest.\n");
static int cmd_delete(char *arg)
{
- if (!*arg)
- {
- printf("Delete what?\n");
- return 0;
- }
if (!conn)
{
printf("Not connected yet\n");
#endif
}
+void process_deleteResultSetResponse (Z_DeleteResultSetResponse *res)
+{
+ printf("Got deleteResultSetResponse status=%d\n",
+ *res->deleteOperationStatus);
+ if (res->deleteListStatuses)
+ {
+ int i;
+ for (i = 0; i < res->deleteListStatuses->num; i++)
+ {
+ printf ("%s status=%d\n", res->deleteListStatuses->elements[i]->id,
+ *res->deleteListStatuses->elements[i]->status);
+ }
+ }
+}
+
int cmd_sort_generic(char *arg, int newset)
{
if (!conn)
(apdu->u.resourceControlRequest);
break;
case Z_APDU_deleteResultSetResponse:
- printf("Got deleteResultSetResponse status=%d\n",
- *apdu->u.deleteResultSetResponse->
- deleteOperationStatus);
+ process_deleteResultSetResponse(apdu->u.
+ deleteResultSetResponse);
break;
default:
printf("Received unknown APDU type (%d).\n",
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: seshigh.c,v $
- * Revision 1.95 1999-10-11 10:01:24 adam
+ * Revision 1.96 1999-11-04 14:58:44 adam
+ * Added status elements for backend delete result set handler.
+ * Updated delete result result set command for client.
+ *
+ * Revision 1.95 1999/10/11 10:01:24 adam
* Implemented bend_sort_rr handler for frontend server.
*
* Revision 1.94 1999/08/27 09:40:32 adam
bdrr->stream = assoc->encode;
bdrr->function = *req->deleteFunction;
bdrr->referenceId = req->referenceId;
-
+ bdrr->statuses = 0;
+ if (bdrr->num_setnames > 0)
+ {
+ int i;
+ bdrr->statuses = odr_malloc(assoc->encode, sizeof(*bdrr->statuses) *
+ bdrr->num_setnames);
+ for (i = 0; i < bdrr->num_setnames; i++)
+ bdrr->statuses[i] = 0;
+ }
((int (*)(void *, bend_delete_rr *))
(*assoc->bend_delete))(assoc->backend, bdrr);
*res->deleteOperationStatus = bdrr->delete_status;
res->deleteListStatuses = 0;
+ if (bdrr->num_setnames > 0)
+ {
+ int i;
+ res->deleteListStatuses = odr_malloc(assoc->encode,
+ sizeof(*res->deleteListStatuses));
+ res->deleteListStatuses->num = bdrr->num_setnames;
+ res->deleteListStatuses->elements =
+ odr_malloc (assoc->encode,
+ sizeof(*res->deleteListStatuses->elements) *
+ bdrr->num_setnames);
+ for (i = 0; i<bdrr->num_setnames; i++)
+ {
+ res->deleteListStatuses->elements[i] =
+ odr_malloc (assoc->encode,
+ sizeof(**res->deleteListStatuses->elements));
+ res->deleteListStatuses->elements[i]->status = bdrr->statuses+i;
+ res->deleteListStatuses->elements[i]->id =
+ odr_strdup (assoc->encode, bdrr->setnames[i]);
+
+ }
+ }
res->numberNotDeleted = 0;
res->bulkStatuses = 0;
res->deleteMessage = 0;