Show
Ignore:
Timestamp:
06/29/10 12:53:16 (3 years ago)
Author:
elaine
Message:

Pass multiple dirent handles between server and client.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/Orange-Elaine-Distr-Dir-Branch/src/proto/pvfs2-attr.h

    r8386 r8418  
    185185{ 
    186186    /* list of files to hold directory entries */ 
    187     PVFS_handle dirent_handle; 
     187    PVFS_handle *dirent_handle; 
    188188    uint32_t dirent_file_count; 
    189189    PVFS_size dirent_count; 
     
    194194#ifdef __PINT_REQPROTO_ENCODE_FUNCS_C 
    195195#define encode_PVFS_directory_attr(pptr, x) do { \ 
     196    int dirent_files_i;\ 
    196197    encode_uint32_t(pptr, &(x)->dirent_file_count);\ 
     198    for (dirent_files_i=0; dirent_files_i<(x)->dirent_file_count; dirent_files_i++)\ 
     199        encode_PVFS_handle(pptr, &(x)->dirent_handle[dirent_files_i]);\ 
    197200    encode_skip4(pptr,);\ 
    198     encode_PVFS_handle(pptr, &(x)->dirent_handle);\ 
    199201    encode_PVFS_size(pptr, &(x)->dirent_count);\ 
    200202    encode_PVFS_directory_hint(pptr, &(x)->hint);\ 
     
    204206    int dirent_files_i;\ 
    205207    for (dirent_files_i=0; dirent_files_i<(x)->dirent_file_count; dirent_files_i++)\ 
    206         encode_PVFS_handle(pptr, &(x)->dirent_file_array[dirent_files_i]);\ 
     208        encode_PVFS_handle(pptr, &(x)->dirent_handle[dirent_files_i]);\ 
    207209 
    208210#endif 
    209211 
    210212#define decode_PVFS_directory_attr(pptr, x) do { \ 
     213    int dirent_files_i;\ 
    211214    decode_uint32_t(pptr, &(x)->dirent_file_count);\ 
     215    (x)->dirent_handle = decode_malloc((x)->dirent_file_count \ 
     216      * sizeof(*(x)->dirent_handle));\ 
     217    for (dirent_files_i=0; dirent_files_i<(x)->dirent_file_count; dirent_files_i++)\ 
     218    { \ 
     219        decode_PVFS_handle(pptr, &(x)->dirent_handle[dirent_files_i]);\ 
     220    } \ 
    212221    decode_skip4(pptr,);\ 
    213     decode_PVFS_handle(pptr, &(x)->dirent_handle);\ 
    214222    decode_PVFS_size(pptr, &(x)->dirent_count);\ 
    215223    decode_PVFS_directory_hint(pptr, &(x)->hint);\ 
     
    219227#if 0 
    220228    int dirent_files_i;\ 
    221     (x)->dirent_file_array = decode_malloc((x)->dirent_file_count \ 
    222       * sizeof(*(x)->dirent_file_array));\ 
     229    (x)->dirent_handle = decode_malloc((x)->dirent_file_count \ 
     230      * sizeof(*(x)->dirent_handle));\ 
    223231    for (dirent_files_i=0; dirent_files_i<(x)->dirent_file_count; dirent_files_i++)\ 
    224232    { \ 
    225         decode_PVFS_handle(pptr, &(x)->dirent_file_array[dirent_files_i]);\ 
     233        decode_PVFS_handle(pptr, &(x)->dirent_handle[dirent_files_i]);\ 
    226234    } \ 
    227235