|
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 n
Length: 2438 (0x986) Types: TextFile Names: »ns_ro_invoke.c«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« └─⟦d3ac74d73⟧ └─⟦this⟧ »isode-5.0/dsap/net/ns_ro_invoke.c«
/* ns_ro_invoke.c - encode argument and invoke operation */ #ifndef lint static char *rcsid = "$Header: /f/osi/dsap/net/RCS/ns_ro_invoke.c,v 6.0 89/03/18 23:28:45 mrose Rel $"; #endif /* * $Header: /f/osi/dsap/net/RCS/ns_ro_invoke.c,v 6.0 89/03/18 23:28:45 mrose Rel $ * * * $Log: ns_ro_invoke.c,v $ * Revision 6.0 89/03/18 23:28:45 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. * */ /* LINTLIBRARY */ #include "rosap.h" #include "quipu/util.h" #include "quipu/connection.h" extern LLog * log_dsap; void ros_log (); net_send_ro_invoke(oper) register struct activity * oper; { PE arg_pe; int arg_type; struct RoSAPindication roi_s; struct RoSAPindication *roi = &roi_s; struct RoSAPpreject *rop = &(roi->roi_preject); DLOG(log_dsap, LLOG_TRACE, ("net_send_ro_invoke")); if(oper == NULLACTIVITY) { LLOG(log_dsap, LLOG_FATAL, ("Task memerr 3")); return; } if(oper->on_task == NULLACTIVITY) { LLOG(log_dsap, LLOG_FATAL, ("Task memerr 4")); return; } /* * Attempt to encode argument. */ if(encode_OPArgument(oper->act_conn->cn_dsa, &arg_pe, &arg_type, oper->on_arg) == OK) { /* * Genrate an id unique over this connection for this operation. */ oper->act_id = ++(oper->act_conn->cn_op_id); /* * RO-INVOKE.REQUEST */ if(RoInvokeRequest(oper->act_conn->cn_ad, arg_type, ROS_ASYNC, arg_pe, oper->act_id, NULLIP, oper->act_prio, roi) == OK) { DLOG(log_dsap, LLOG_TRACE, ("RO-INVOKE.REQUEST: OK")); oper->act_class = ACTIVITY_NET_WAIT; oper->on_task->act_class = ACTIVITY_NET_WAIT; } else { ros_log(rop, "RO-INVOKE.REQUEST"); oper->act_class = ACTIVITY_COLLATE; oper->act_type = ACT_TYPE_RESP; oper->act_resp.resp_type = RESP_TYPE_REJ; oper->on_task->act_class = ACTIVITY_COLLATE; } pe_free(arg_pe); } else { LLOG(log_dsap, LLOG_EXCEPTIONS, ("Couldn't encode argument.")); oper->act_class = ACTIVITY_COLLATE; oper->act_type = ACT_TYPE_RESP; oper->act_resp.resp_type = RESP_TYPE_REJ; oper->on_task->act_class = ACTIVITY_COLLATE; } }