CIRCT  20.0.0git
Public Member Functions | Private Attributes | List of all members
esi::backends::trace::TraceAccelerator::Impl Struct Reference
Collaboration diagram for esi::backends::trace::TraceAccelerator::Impl:
Collaboration graph
[legend]

Public Member Functions

 Impl (Mode mode, std::filesystem::path manifestJson, std::filesystem::path traceFile)
 
 ~Impl ()
 
ServicecreateService (Service::Type svcType, AppIDPath idPath, const ServiceImplDetails &details, const HWClientDetails &clients)
 
std::map< std::string, ChannelPort & > requestChannelsFor (AppIDPath, const BundleType *)
 Request the host side channel ports for a particular instance (identified by the AppID path). More...
 
void adoptChannelPort (ChannelPort *port)
 
void write (const AppIDPath &id, const std::string &portName, const void *data, size_t size, const std::string &prefix="")
 
std::ostream & write (std::string service)
 
bool isWriteable ()
 

Private Attributes

std::ofstream * traceWrite
 
std::filesystem::path manifestJson
 
std::filesystem::path traceFile
 
std::vector< std::unique_ptr< ChannelPort > > channels
 

Detailed Description

Definition at line 38 of file Trace.cpp.

Constructor & Destructor Documentation

◆ Impl()

esi::backends::trace::TraceAccelerator::Impl::Impl ( Mode  mode,
std::filesystem::path  manifestJson,
std::filesystem::path  traceFile 
)
inline

Definition at line 39 of file Trace.cpp.

References assert().

◆ ~Impl()

esi::backends::trace::TraceAccelerator::Impl::~Impl ( )
inline

Definition at line 59 of file Trace.cpp.

Member Function Documentation

◆ adoptChannelPort()

void esi::backends::trace::TraceAccelerator::Impl::adoptChannelPort ( ChannelPort port)
inline

Definition at line 76 of file Trace.cpp.

Referenced by requestChannelsFor().

◆ createService()

Service * TraceAccelerator::Impl::createService ( Service::Type  svcType,
AppIDPath  idPath,
const ServiceImplDetails details,
const HWClientDetails clients 
)

Definition at line 342 of file Trace.cpp.

◆ isWriteable()

bool esi::backends::trace::TraceAccelerator::Impl::isWriteable ( )
inline

Definition at line 85 of file Trace.cpp.

◆ requestChannelsFor()

std::map< std::string, ChannelPort & > TraceAccelerator::Impl::requestChannelsFor ( AppIDPath  idPath,
const BundleType bundleType 
)

Request the host side channel ports for a particular instance (identified by the AppID path).

For convenience, provide the bundle type and direction of the bundle port.

Definition at line 245 of file Trace.cpp.

References adoptChannelPort(), channels, esi::BundleType::getChannels(), and esi::BundlePort::isWrite().

◆ write() [1/2]

void TraceAccelerator::Impl::write ( const AppIDPath id,
const std::string &  portName,
const void *  data,
size_t  size,
const std::string &  prefix = "" 
)

Definition at line 94 of file Trace.cpp.

References esi::utils::encodeBase64().

◆ write() [2/2]

std::ostream& esi::backends::trace::TraceAccelerator::Impl::write ( std::string  service)
inline

Definition at line 80 of file Trace.cpp.

References assert().

Member Data Documentation

◆ channels

std::vector<std::unique_ptr<ChannelPort> > esi::backends::trace::TraceAccelerator::Impl::channels
private

Definition at line 91 of file Trace.cpp.

Referenced by requestChannelsFor().

◆ manifestJson

std::filesystem::path esi::backends::trace::TraceAccelerator::Impl::manifestJson
private

Definition at line 89 of file Trace.cpp.

◆ traceFile

std::filesystem::path esi::backends::trace::TraceAccelerator::Impl::traceFile
private

Definition at line 90 of file Trace.cpp.

◆ traceWrite

std::ofstream* esi::backends::trace::TraceAccelerator::Impl::traceWrite
private

Definition at line 88 of file Trace.cpp.


The documentation for this struct was generated from the following file: