home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994…tember: Reference Library / Dev.CD Sep 94.toast / Periodicals / develop / develop Issue 11 / develop 11 code / The NetWork Project / Examples (Sources) / NetSim / task.reply.impl.p < prev    next >
Encoding:
Text File  |  1992-07-15  |  1.3 KB  |  45 lines  |  [TEXT/MPS ]

  1. {---------------------------------------------------------------}
  2. {    ReplyResultHandler. Used for SlaveTaskHandler    }
  3. {    so far, we are using the default buffer strategy.
  4. To improve: should use a latched version.}
  5. { © 1991 G. Sawitzki, Heidelberg}
  6. type
  7.     tReplyResultHandler=object(tMessageHandler)
  8.         function tReplyResultHandler.DoReply(msg:msgPtr;h:handle):OsErr; 
  9.     end;
  10.  
  11.     function tReplyResultHandler.DoReply(msg:msgPtr;h:handle):OsErr; 
  12. var     myMsg:MsgRec;
  13. begin
  14.     myMsg:=msg^;    {take a local copy}
  15.     with myMsg do begin
  16.         MsgUserRefCon:=0;
  17.         Stamp(@myMsg);
  18.         MsgCoreSize:=GetHandleSize(h);
  19.         if (theConfiguration.UseMessageSizes) & (MsgCoreSize<= theConfiguration.MinCoreSize) then 
  20.         MsgCoreSize:=theConfiguration.MinCoreSize;
  21.  
  22.         MsgCorePtr:=NewCorePtr(MsgCoreSize);
  23.  
  24.         if MsgCorePtr<>nil then begin
  25.             BlockMove(h^,MsgCorePtr,GetHandleSize(h));
  26.             hunlock(h);
  27.  
  28.             MsgPrioSize:=sizeof(tMsgHeader);
  29.  
  30.             if (theConfiguration.UseMessageSizes) & (MsgPrioSize<= theConfiguration.MinPrioSize) then 
  31.             MsgPrioSize:=theConfiguration.MinPrioSize;
  32.  
  33.             MsgPrioPtr:=NewPrioPtr(MsgPrioSize);
  34.             tMsgHeaderPtr(MsgPrioPtr)^:=tMsgHeaderPtr(msg^.MsgPrioPtr)^;
  35.             tMsgHeaderPtr(MsgPrioPtr)^.ContentsToken:=longint('PICT'); {so far, PICT only}
  36.  
  37.             NetWorkScheduler.ReplyMessage(@MyMsg,cMustBeLaunched);
  38.  
  39.         end;
  40.         DoReply:=NoErr;
  41.     end;{with}
  42. end;
  43.  
  44.  
  45.