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-encode-basic.c < prev    next >
C/C++ Source or Header  |  2005-07-07  |  3KB  |  98 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 <string.h>
  10. #include <assert.h>
  11. #include <pvfs2-types.h>
  12. #include <gossip.h>
  13. #include <pvfs2-debug.h>
  14.  
  15. #include <pint-distribution.h>
  16. #include <pvfs2-request.h>
  17. #include <pint-request.h>
  18.  
  19. #define SEGMAX 16
  20. #define BYTEMAX (1024*1024)
  21.  
  22. void Dump_request(PVFS_Request req);
  23.  
  24. int main(int argc, char **argv)
  25. {
  26.     PINT_Request *r;
  27.     PINT_Request *r_enc;
  28.     PINT_Request *r_dec;
  29.     int ret = -1;
  30.     int pack_size = 0;
  31.  
  32.     r = PVFS_BYTE;
  33.     Dump_request(r); 
  34.  
  35.     /* allocate a new request and pack the original one into it */
  36.     pack_size = PINT_REQUEST_PACK_SIZE(r);
  37.     fprintf(stderr, "pack size is %d\n",pack_size);
  38.     r_enc = (PINT_Request*)malloc(pack_size);
  39.     assert(r_enc != NULL);
  40.  
  41.     ret = PINT_request_commit(r_enc, r);
  42.     if(ret < 0)
  43.     {
  44.         fprintf(stderr, "PINT_Request_commit() failure.\n");
  45.         return(-1);
  46.     }
  47.     fprintf(stderr, "commit returns %d\n", ret);
  48.     Dump_request(r_enc);
  49.     ret = PINT_request_encode(r_enc);
  50.     if(ret < 0)
  51.     {
  52.         fprintf(stderr, "PINT_Request_encode() failure.\n");
  53.         return(-1);
  54.     }
  55.     fprintf(stderr, "encode returns %d\n", ret);
  56.     Dump_request(r_enc);
  57.  
  58.  
  59.     /* decode the encoded request (hopefully ending up with something
  60.      * equivalent to the original request)
  61.      */
  62.     r_dec = (PINT_Request*)malloc(pack_size);
  63.     memcpy(r_dec, r_enc, pack_size);
  64.     free(r_enc);
  65.     // free(r);
  66.     ret = PINT_request_decode(r_dec);
  67.     if(ret < 0)
  68.     {
  69.         fprintf(stderr, "PINT_request_decode() failure.\n");
  70.         return(-1);
  71.     }
  72.     fprintf(stderr, "decode returns %d\n", ret);
  73.  
  74.     return 0;
  75. }
  76.  
  77. void Dump_request(PVFS_Request req)
  78. {
  79.     fprintf(stderr,"**********************\n");
  80.     fprintf(stderr,"address:\t%p\n",req);
  81.     fprintf(stderr,"offset:\t\t%d\n",(int)req->offset);
  82.     fprintf(stderr,"num_ereqs:\t%d\n",(int)req->num_ereqs);
  83.     fprintf(stderr,"num_blocks:\t%d\n",(int)req->num_blocks);
  84.     fprintf(stderr,"stride:\t\t%d\n",(int)req->stride);
  85.     fprintf(stderr,"ub:\t\t%d\n",(int)req->ub);
  86.     fprintf(stderr,"lb:\t\t%d\n",(int)req->lb);
  87.     fprintf(stderr,"agg_size:\t%d\n",(int)req->aggregate_size);
  88.     fprintf(stderr,"num_chunk:\t%d\n",(int)req->num_contig_chunks);
  89.     fprintf(stderr,"depth:\t\t%d\n",(int)req->depth);
  90.     fprintf(stderr,"num_nest:\t%d\n",(int)req->num_nested_req);
  91.     fprintf(stderr,"commit:\t\t%d\n",(int)req->committed);
  92.     fprintf(stderr,"refcount:\t\t%d\n",(int)req->refcount);
  93.     fprintf(stderr,"ereq:\t\t%p\n",req->ereq);
  94.     fprintf(stderr,"sreq:\t\t%p\n",req->sreq);
  95.     fprintf(stderr,"**********************\n");
  96. }
  97.  
  98.