home *** CD-ROM | disk | FTP | other *** search
/ ftp.parl.clemson.edu / 2015-02-07.ftp.parl.clemson.edu.tar / ftp.parl.clemson.edu / pub / pvfs2 / orangefs-2.8.3-20110323.tar.gz / orangefs-2.8.3-20110323.tar / orangefs / test / io / description / test-req1.c < prev    next >
C/C++ Source or Header  |  2005-07-07  |  3KB  |  121 lines

  1. /*
  2.  * (C) 2002 Clemson University.
  3.  *
  4.  * See COPYING in top-level directory.
  5.  */       
  6.  
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #include <pvfs2-types.h>
  10. #include <gossip.h>
  11. #include <pvfs2-debug.h>
  12.  
  13. #include <pvfs-distribution.h>
  14. #include <pvfs2-request.h>
  15. #include <pint-request.h>
  16.  
  17. #include <simple-stripe.h>
  18.  
  19. #define SEGMAX 32
  20. #define BYTEMAX 250
  21.  
  22. int main(int argc, char **argv)
  23. {
  24.     int i;
  25.     PINT_Request *r1;
  26.     PINT_Request_state *rs;
  27.     PINT_Request_file_data rf;
  28.  
  29.     /* PVFS_Process_request arguments */
  30.     int retval;
  31.     int32_t segmax;
  32.     PVFS_offset *offset_array;
  33.     PVFS_size *size_array;
  34.     PVFS_offset offset;
  35.     PVFS_size bytemax;
  36.     PVFS_boolean eof_flag;
  37.  
  38.     /* set up a request */
  39.     PVFS_Request_vector(16, 4, 64, PVFS_DOUBLE, &r1);
  40.  
  41.     /* set up a request state */
  42.     rs = PINT_new_request_state(r1);
  43.  
  44.     /* set up file data */
  45.     rf.server_nr = 0;
  46.     rf.server_ct = 2;
  47.     rf.fsize = 10000000;
  48.  
  49.     /* grab a distribution */
  50.     rf.dist = PVFS_Dist_create("simple_stripe");
  51.  
  52.     /* get the methods for the distribution */
  53.     PINT_Dist_lookup(rf.dist);
  54.  
  55.    /* Turn on debugging */
  56.     /* gossip_enable_stderr(); */
  57.     /* gossip_set_debug_mask(1,REQUEST_DEBUG); */
  58.  
  59.     offset_array = (int64_t *)malloc(SEGMAX * sizeof(int64_t));
  60.     size_array = (int64_t *)malloc(SEGMAX * sizeof(int64_t));
  61.     eof_flag = 0;
  62.     offset = 0;
  63.     segmax = 1;
  64.     bytemax = BYTEMAX;
  65.  
  66.     /* process request */
  67.     retval = PINT_process_request(rs, &rf, &segmax, NULL, NULL,
  68.             &offset, &bytemax, &eof_flag, PINT_CKSIZE);
  69.  
  70.     /* print return value */
  71.     printf("\nreturn %d, %d segments: offset=%lld bytemax=%lld\n",
  72.             retval, segmax, offset, bytemax);
  73.     offset = 0;
  74.     do {
  75.         segmax = SEGMAX;
  76.         bytemax = BYTEMAX;
  77.         /* process request */
  78.         PINT_process_request(rs, &rf, &segmax, offset_array,
  79.                 size_array, &offset, &bytemax, &eof_flag, PINT_CLIENT);
  80.         printf("processed %lld bytes in %d segments\n", bytemax, segmax);
  81.         for (i = 0; i < segmax; i++)
  82.         {
  83.             printf("segment %d: offset=%lld size=%lld\n", i,
  84.                     offset_array[i], size_array[i]);
  85.         }
  86.     } while (offset != -1);
  87.     printf("finished processing request\n");
  88.     segmax = 1;
  89.     bytemax = BYTEMAX;
  90.     /* process request */
  91.     retval = PINT_process_request(rs, &rf, &segmax, NULL, NULL,
  92.             &offset, &bytemax, &eof_flag, PINT_CKSIZE);
  93.     printf("\nreturn %d, %d segments: offset=%lld bytemax=%lld\n",
  94.             retval, segmax, offset, bytemax);
  95.     offset = 0;
  96.     segmax = 1;
  97.     bytemax = BYTEMAX;
  98.     /* process request */
  99.     retval = PINT_process_request(rs, &rf, &segmax, NULL, NULL,
  100.             &offset, &bytemax, &eof_flag, PINT_CKSIZE);
  101.     printf("\nreturn %d, %d segments: offset=%lld bytemax=%lld\n",
  102.             retval, segmax, offset, bytemax);
  103.     offset = 0;
  104.     do {
  105.         segmax = SEGMAX;
  106.         bytemax = BYTEMAX;
  107.         /* process request */
  108.         PINT_process_request(rs, &rf, &segmax, offset_array,
  109.                 size_array, &offset, &bytemax, &eof_flag, PINT_SERVER);
  110.         printf("processed %lld bytes in %d segments\n", bytemax, segmax);
  111.         for (i = 0; i < segmax; i++)
  112.         {
  113.             printf("segment %d: offset=%lld size=%lld\n", i,
  114.                     offset_array[i], size_array[i]);
  115.         }
  116.     } while (offset != -1);
  117.     printf("finished processing request\n");
  118.  
  119.     return 0;
  120. }
  121.