Newer
Older
/*
* Distributed under the OSI-approved Apache License, Version 2.0. See
* accompanying file Copyright.txt for details.
*
* WANZmq.h
*
* Created on: May 26, 2017
* Author: Jason Wang wangr1@ornl.gov
*/
#ifndef ADIOS2_TOOLKIT_TRANSPORT_WAN_WANZMQ_H_
#define ADIOS2_TOOLKIT_TRANSPORT_WAN_WANZMQ_H_
#include "adios2/toolkit/transport/Transport.h"
{
namespace transport
{
class WANZmq : public Transport
{
public:
/**
*
* @param ipAddress
* @param port
* @param mpiComm
* @param debugMode
*/
WANZmq(const std::string ipAddress, const std::string port,
MPI_Comm mpiComm, const bool debugMode);
~WANZmq();
void Open(const std::string &name, const Mode openMode) final;
void SetBuffer(char *buffer, size_t size) final;
void Write(const char *buffer, size_t size, size_t start = MaxSizeT) final;
void IWrite(const char *buffer, size_t size, Status &status,
size_t start = MaxSizeT) final;
void Read(char *buffer, size_t size, size_t start = MaxSizeT) final;
void IRead(char *buffer, size_t size, Status &status,
size_t start = MaxSizeT) final;
void Flush() final;
void Close() final;
void SetAddress(const std::string address);
private:
const std::string m_IPAddress;
std::string m_Port;
Wang, Ruonan
committed
/** context handler created by zmq, thread safe */
Wang, Ruonan
committed
/** socket handler created by zmq */
};
} // end namespace transport
} // end namespace adios
#endif /* ADIOS2_TOOLKIT_TRANSPORT_WAN_WANZMQ_H_ */