LMMS
Loading...
Searching...
No Matches
juce::NamedPipe::Pimpl Class Reference

Classes

class  PipeDescriptor
struct  OverlappedEvent

Public Member Functions

 Pimpl (const String &pipePath, bool createPipe)
 ~Pimpl ()
bool connect (int timeOutMilliseconds)
int read (char *destBuffer, int maxBytesToRead, int timeOutMilliseconds)
int write (const char *sourceBuffer, int numBytesToWrite, int timeOutMilliseconds)
bool createFifos (bool mustNotExist)
 Pimpl (const String &pipeName, const bool createPipe, bool mustNotExist)
 ~Pimpl ()
bool connect (const int timeOutMs)
void disconnectPipe ()
void closePipeHandle ()
int read (void *destBuffer, const int maxBytesToRead, const int timeOutMilliseconds)
int write (const void *sourceBuffer, int numBytesToWrite, int timeOutMilliseconds)

Static Public Member Functions

static bool createFifo (const String &name, bool mustNotExist)

Public Attributes

const String pipeInName
const String pipeOutName
PipeDescriptor pipeIn
PipeDescriptor pipeOut
bool createdFifoIn = false
bool createdFifoOut = false
const bool createdPipe
std::atomic< bool > stopReadOperation { false }
const String filename
HANDLE pipeH
HANDLE cancelEvent
bool connected
bool ownsPipe
std::atomic< bool > shouldStop
CriticalSection createFileLock

Static Public Attributes

static constexpr auto invalidPipe = -1

Private Member Functions

int openPipe (const String &name, int flags, uint32 timeoutEnd)
int openPipe (bool isInput, uint32 timeoutEnd)
bool waitForIO (OverlappedEvent &over, int timeOutMilliseconds)

Static Private Member Functions

static void signalHandler (int)
static uint32 getTimeoutEnd (int timeOutMilliseconds)
static bool hasExpired (uint32 timeoutEnd)
static void waitForInput (int handle, int timeoutMsecs) noexcept
static void waitToWrite (int handle, int timeoutMsecs) noexcept

Constructor & Destructor Documentation

◆ Pimpl() [1/2]

juce::NamedPipe::Pimpl::Pimpl ( const String & pipePath,
bool createPipe )
inline

◆ ~Pimpl() [1/2]

juce::NamedPipe::Pimpl::~Pimpl ( )
inline

◆ Pimpl() [2/2]

juce::NamedPipe::Pimpl::Pimpl ( const String & pipeName,
const bool createPipe,
bool mustNotExist )
inline

◆ ~Pimpl() [2/2]

juce::NamedPipe::Pimpl::~Pimpl ( )
inline

Member Function Documentation

◆ closePipeHandle()

void juce::NamedPipe::Pimpl::closePipeHandle ( )
inline

◆ connect() [1/2]

bool juce::NamedPipe::Pimpl::connect ( const int timeOutMs)
inline

◆ connect() [2/2]

bool juce::NamedPipe::Pimpl::connect ( int timeOutMilliseconds)
inline

◆ createFifo()

bool juce::NamedPipe::Pimpl::createFifo ( const String & name,
bool mustNotExist )
inlinestatic

◆ createFifos()

bool juce::NamedPipe::Pimpl::createFifos ( bool mustNotExist)
inline

◆ disconnectPipe()

void juce::NamedPipe::Pimpl::disconnectPipe ( )
inline

◆ getTimeoutEnd()

uint32 juce::NamedPipe::Pimpl::getTimeoutEnd ( int timeOutMilliseconds)
inlinestaticprivate

◆ hasExpired()

bool juce::NamedPipe::Pimpl::hasExpired ( uint32 timeoutEnd)
inlinestaticprivate

◆ openPipe() [1/2]

int juce::NamedPipe::Pimpl::openPipe ( bool isInput,
uint32 timeoutEnd )
inlineprivate

◆ openPipe() [2/2]

int juce::NamedPipe::Pimpl::openPipe ( const String & name,
int flags,
uint32 timeoutEnd )
inlineprivate

◆ read() [1/2]

int juce::NamedPipe::Pimpl::read ( char * destBuffer,
int maxBytesToRead,
int timeOutMilliseconds )
inline

◆ read() [2/2]

int juce::NamedPipe::Pimpl::read ( void * destBuffer,
const int maxBytesToRead,
const int timeOutMilliseconds )
inline

◆ signalHandler()

void juce::NamedPipe::Pimpl::signalHandler ( int )
inlinestaticprivate

◆ waitForInput()

void juce::NamedPipe::Pimpl::waitForInput ( int handle,
int timeoutMsecs )
inlinestaticprivatenoexcept

◆ waitForIO()

bool juce::NamedPipe::Pimpl::waitForIO ( OverlappedEvent & over,
int timeOutMilliseconds )
inlineprivate

◆ waitToWrite()

void juce::NamedPipe::Pimpl::waitToWrite ( int handle,
int timeoutMsecs )
inlinestaticprivatenoexcept

◆ write() [1/2]

int juce::NamedPipe::Pimpl::write ( const char * sourceBuffer,
int numBytesToWrite,
int timeOutMilliseconds )
inline

◆ write() [2/2]

int juce::NamedPipe::Pimpl::write ( const void * sourceBuffer,
int numBytesToWrite,
int timeOutMilliseconds )
inline

Member Data Documentation

◆ cancelEvent

HANDLE juce::NamedPipe::Pimpl::cancelEvent

◆ connected

bool juce::NamedPipe::Pimpl::connected

◆ createdFifoIn

bool juce::NamedPipe::Pimpl::createdFifoIn = false

◆ createdFifoOut

bool juce::NamedPipe::Pimpl::createdFifoOut = false

◆ createdPipe

const bool juce::NamedPipe::Pimpl::createdPipe

◆ createFileLock

CriticalSection juce::NamedPipe::Pimpl::createFileLock

◆ filename

const String juce::NamedPipe::Pimpl::filename

◆ invalidPipe

auto juce::NamedPipe::Pimpl::invalidPipe = -1
staticconstexpr

◆ ownsPipe

bool juce::NamedPipe::Pimpl::ownsPipe

◆ pipeH

HANDLE juce::NamedPipe::Pimpl::pipeH

◆ pipeIn

PipeDescriptor juce::NamedPipe::Pimpl::pipeIn

◆ pipeInName

const String juce::NamedPipe::Pimpl::pipeInName

◆ pipeOut

PipeDescriptor juce::NamedPipe::Pimpl::pipeOut

◆ pipeOutName

const String juce::NamedPipe::Pimpl::pipeOutName

◆ shouldStop

std::atomic<bool> juce::NamedPipe::Pimpl::shouldStop

◆ stopReadOperation

std::atomic<bool> juce::NamedPipe::Pimpl::stopReadOperation { false }

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