Pathmaker Programming Guide
Coding Custom Services
Creating Services and Servers
4–42 067868 Tandem Computers Incorporated
Example 6: Update.
 ?section svc-006
/*
 Transaction logic module for service : SVC-006
 Update employee record
*/
void svc_006setup ( T9154_SERVICE_CONTROL *control )
{
}
void svc_006cleanup ( T9154_SERVICE_CONTROL *control )
{
}
void svc_006 ( T9154_SERVICE_REQUEST *request,
 T9154_SERVICE_REPLY *reply,
 T9154_SERVICE_CONTROL *control )
{
 #include <string.h>
 short cc;
 reply->t9154_header.reply_code = REPLY_SHORT;
 if ( lfseekkey ( &control->file.employee_file,
 (short) 0,
 LFSK_EXACT,
 &request->employee_rec.emp_no,
 sizeof request->employee_rec.emp_no,
 NULL,
 0,
 0 ))
 {
 return;
 }
 cc = ( lfreadupdate ( &control->file.employee_file,
 &reply->employee_rec, sizeof reply->employee_rec));
 if (cc != LFE_OK)
 {
%INVOKE "evaluate-read-error"
 return;
 }
 if ( lfwriteupdate ( &control->file.employee_file,
 &request->employee_rec, sizeof request->employee_rec));
 {
 return;
 }
 else
 svc_advisory (REPLY_NORMAL, "Record updated successfully");
 }










