ld_rpc_data_ws.hpp 1.03 KiB
Newer Older
#ifndef IFS_PRELOAD_C_DATA_WS_HPP
#define IFS_PRELOAD_C_DATA_WS_HPP

extern "C" {
#include <abt.h>
#include <abt-snoozer.h>
#include <mercury_types.h>
#include <mercury_proc_string.h>
#include <margo.h>
}

#include <preload/preload.hpp>
// XXX these two structs can be merged. How to deal with const void* then?
    std::shared_ptr<std::string> path;
    size_t total_chunk_size;
    size_t in_size;
    off_t in_offset;
    const void* buf;
    size_t chnk_start;
    size_t chnk_end;
    std::vector<unsigned long>* chnk_ids;
Marc Vef's avatar
Marc Vef committed
    size_t recipient;
    ABT_eventual eventual;
    std::shared_ptr<std::string> path;
    size_t total_chunk_size;
    size_t in_size;
    off_t in_offset;
    void* buf;
    size_t chnk_end;
    std::vector<unsigned long>* chnk_ids;
Marc Vef's avatar
Marc Vef committed
    size_t recipient;
    ABT_eventual eventual;

void rpc_send_write_abt(void* _arg);

void rpc_send_read_abt(void* _arg);

#endif //IFS_PRELOAD_C_DATA_WS_HPP