HOME       UP       PREV       NEXT (Presentation Layer Shim)  

Example Application Server: Convolver Client in our RPC system

Work sent to and from clients via a FarmPort

Suitable for block-level operations.

Block sequence ensured by network ? Presentation layer checks anyway.

[Kiwi.Hardware()]
  public static void Main()
  { int k = 0;
    yy_ch.Reset();
    work_led = false;  poll_led = true;  tx_led = false;
    while(true)
     { rx_led = true;
       uint len = FarmPort.ArrayRead(workbuf);   // ----> Blocking wait for work packet
       rx_led = false;
       yy_ch.Reset(); vv_ch.Reset(); uu_ch.Reset();

       work_led = true;
       for (int i=0; i < len; i+=3) // Work loop
       {  workbuf[i+0] = yy_ch.convolve((int)workbuf[i+0]);
          workbuf[i+1] = uu_ch.convolve((int)workbuf[i+1]);
          workbuf[i+2] = vv_ch.convolve((int)workbuf[i+2]);
          poll_led = !poll_led;
       }
       work_led = false;   tx_led = true; 
       FarmPort.ArrayWrite(workbuf, len);    // <----Send result data out. 
       tx_led = false;
     }
   }

26: (C) 2011, DJ Greaves, S Singh, University of Cambridge, Computer Laboratory.