Program Listing for File InstrumentationAggregatingSpoutWrapper.hpp¶
↰ Return to documentation for file (include/uit/spouts/wrappers/InstrumentationAggregatingSpoutWrapper.hpp)
#pragma once
#ifndef UIT_SPOUTS_WRAPPERS_INSTRUMENTATIONAGGREGATINGSPOUTWRAPPER_HPP_INCLUDE
#define UIT_SPOUTS_WRAPPERS_INSTRUMENTATIONAGGREGATINGSPOUTWRAPPER_HPP_INCLUDE
#include <string>
#include <tuple>
#include "inlet/InstrumentationAggregatingInletWrapper.hpp"
#include "outlet/InstrumentationAggregatingOutletWrapper.hpp"
#include "impl/RoundTripCountPacket.hpp"
namespace uit {
template<typename T_>
class InstrumentationAggregatingSpoutWrapper {
public:
using T = uit::impl::RoundTripCountPacket<T_>;
template<typename Inlet>
using inlet_wrapper_t
= uit::internal::InstrumentationAggregatingInletWrapper<Inlet>;
template<typename Outlet>
using outlet_wrapper_t
= uit::internal::InstrumentationAggregatingOutletWrapper<Outlet>;
template<typename Inlet>
decltype(auto) MakeInletContainerDataFile(const std::string& filename) {
return inlet_wrapper_t<Inlet>::MakeContainerDataFile(filename);
}
template<typename Inlet>
decltype(auto) MakeInletSummaryDataFile(const std::string& filename) {
return inlet_wrapper_t<Inlet>::MakeSummaryDataFile(filename);
}
template<typename Outlet>
decltype(auto) MakeOutletContainerDataFile(const std::string& filename) {
return outlet_wrapper_t<Outlet>::MakeContainerDataFile(filename);
}
template<typename Outlet>
decltype(auto) MakeOutletSummaryDataFile(const std::string& filename) {
return outlet_wrapper_t<Outlet>::MakeSummaryDataFile(filename);
}
};
} // namespace uit
#endif // #ifndef UIT_SPOUTS_WRAPPERS_INSTRUMENTATIONAGGREGATINGSPOUTWRAPPER_HPP_INCLUDE