LLVM  14.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::orc::FDSimpleRemoteEPCTransport Class Reference

Uses read/write on FileDescriptors for transport. More...

#include "llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h"

Inheritance diagram for llvm::orc::FDSimpleRemoteEPCTransport:
Inheritance graph
[legend]
Collaboration diagram for llvm::orc::FDSimpleRemoteEPCTransport:
Collaboration graph
[legend]

Public Member Functions

 ~FDSimpleRemoteEPCTransport () override
 
Error start () override
 Called during setup of the client to indicate that the client is ready to receive messages. More...
 
Error sendMessage (SimpleRemoteEPCOpcode OpC, uint64_t SeqNo, ExecutorAddr TagAddr, ArrayRef< char > ArgBytes) override
 Send a SimpleRemoteEPC message. More...
 
void disconnect () override
 Trigger disconnection from the transport. More...
 
- Public Member Functions inherited from llvm::orc::SimpleRemoteEPCTransport
virtual ~SimpleRemoteEPCTransport ()
 

Static Public Member Functions

static Expected< std::unique_ptr< FDSimpleRemoteEPCTransport > > Create (SimpleRemoteEPCTransportClient &C, int InFD, int OutFD)
 Create a FDSimpleRemoteEPCTransport using the given FDs for reading (InFD) and writing (OutFD). More...
 
static Expected< std::unique_ptr< FDSimpleRemoteEPCTransport > > Create (SimpleRemoteEPCTransportClient &C, int FD)
 Create a FDSimpleRemoteEPCTransport using the given FD for both reading and writing. More...
 

Detailed Description

Uses read/write on FileDescriptors for transport.

Definition at line 102 of file SimpleRemoteEPCUtils.h.

Constructor & Destructor Documentation

◆ ~FDSimpleRemoteEPCTransport()

llvm::orc::FDSimpleRemoteEPCTransport::~FDSimpleRemoteEPCTransport ( )
override

Definition at line 72 of file SimpleRemoteEPCUtils.cpp.

Member Function Documentation

◆ Create() [1/2]

static Expected<std::unique_ptr<FDSimpleRemoteEPCTransport> > llvm::orc::FDSimpleRemoteEPCTransport::Create ( SimpleRemoteEPCTransportClient C,
int  FD 
)
inlinestatic

Create a FDSimpleRemoteEPCTransport using the given FD for both reading and writing.

Definition at line 112 of file SimpleRemoteEPCUtils.h.

References Create().

◆ Create() [2/2]

Expected< std::unique_ptr< FDSimpleRemoteEPCTransport > > llvm::orc::FDSimpleRemoteEPCTransport::Create ( SimpleRemoteEPCTransportClient C,
int  InFD,
int  OutFD 
)
static

Create a FDSimpleRemoteEPCTransport using the given FDs for reading (InFD) and writing (OutFD).

Definition at line 50 of file SimpleRemoteEPCUtils.cpp.

References llvm::inconvertibleErrorCode(), and move.

Referenced by Create().

◆ disconnect()

void llvm::orc::FDSimpleRemoteEPCTransport::disconnect ( )
overridevirtual

Trigger disconnection from the transport.

The implementation should respond by calling handleDisconnect on the client once disconnection is complete. May be called more than once and from different threads.

Implements llvm::orc::SimpleRemoteEPCTransport.

Definition at line 111 of file SimpleRemoteEPCUtils.cpp.

◆ sendMessage()

Error llvm::orc::FDSimpleRemoteEPCTransport::sendMessage ( SimpleRemoteEPCOpcode  OpC,
uint64_t  SeqNo,
ExecutorAddr  TagAddr,
ArrayRef< char >  ArgBytes 
)
overridevirtual

Send a SimpleRemoteEPC message.

This function may be called concurrently. Subclasses should implement locking if required for the underlying transport.

Implements llvm::orc::SimpleRemoteEPCTransport.

Definition at line 86 of file SimpleRemoteEPCUtils.cpp.

References llvm::ArrayRef< T >::data(), llvm::errorCodeToError(), llvm::orc::ExecutorAddr::getValue(), llvm::inconvertibleErrorCode(), llvm::Lock, llvm::Check::Size, llvm::ArrayRef< T >::size(), and llvm::Error::success().

◆ start()

Error llvm::orc::FDSimpleRemoteEPCTransport::start ( )
overridevirtual

Called during setup of the client to indicate that the client is ready to receive messages.

Transport objects should not access the client until this method is called.

Implements llvm::orc::SimpleRemoteEPCTransport.

Definition at line 78 of file SimpleRemoteEPCUtils.cpp.

References llvm_unreachable, and llvm::Error::success().


The documentation for this class was generated from the following files: