JUCE  v5.1.1-3-g1a0b28c73
JUCE API
NamedPipe Class Reference

A cross-process pipe that can have data written to and read from it. More...

#include <juce_NamedPipe.h>

Collaboration diagram for NamedPipe:

Public Member Functions

 NamedPipe ()
 Creates a NamedPipe. More...
 
 ~NamedPipe ()
 Destructor. More...
 
void close ()
 Closes the pipe, if it's open. More...
 
bool createNewPipe (const String &pipeName, bool mustNotExist=false)
 Tries to create a new pipe. More...
 
String getName () const
 Returns the last name that was used to try to open this pipe. More...
 
bool isOpen () const
 True if the pipe is currently open. More...
 
bool openExisting (const String &pipeName)
 Tries to open a pipe that already exists. More...
 
int read (void *destBuffer, int maxBytesToRead, int timeOutMilliseconds)
 Reads data from the pipe. More...
 
int write (const void *sourceBuffer, int numBytesToWrite, int timeOutMilliseconds)
 Writes some data to the pipe. More...
 

Private Member Functions

bool openInternal (const String &pipeName, bool createPipe, bool mustNotExist)
 

Private Attributes

String currentPipeName
 
ReadWriteLock lock
 
ScopedPointer< Pimpl > pimpl
 

Detailed Description

A cross-process pipe that can have data written to and read from it.

Two processes can use NamedPipe objects to exchange blocks of data.

See also
InterprocessConnection

Constructor & Destructor Documentation

◆ NamedPipe()

NamedPipe::NamedPipe ( )

Creates a NamedPipe.

◆ ~NamedPipe()

NamedPipe::~NamedPipe ( )

Destructor.

Member Function Documentation

◆ close()

void NamedPipe::close ( )

Closes the pipe, if it's open.

◆ createNewPipe()

bool NamedPipe::createNewPipe ( const String pipeName,
bool  mustNotExist = false 
)

Tries to create a new pipe.

Returns true if it succeeds. If mustNotExist is true then it will fail if a pipe is already open with the same name.

◆ getName()

String NamedPipe::getName ( ) const

Returns the last name that was used to try to open this pipe.

◆ isOpen()

bool NamedPipe::isOpen ( ) const

True if the pipe is currently open.

◆ openExisting()

bool NamedPipe::openExisting ( const String pipeName)

Tries to open a pipe that already exists.

Returns true if it succeeds.

◆ openInternal()

bool NamedPipe::openInternal ( const String pipeName,
bool  createPipe,
bool  mustNotExist 
)
private

◆ read()

int NamedPipe::read ( void *  destBuffer,
int  maxBytesToRead,
int  timeOutMilliseconds 
)

Reads data from the pipe.

This will block until another thread has written enough data into the pipe to fill the number of bytes specified, or until another thread calls the cancelPendingReads() method.

If the operation fails, it returns -1, otherwise, it will return the number of bytes read.

If timeOutMilliseconds is less than zero, it will wait indefinitely, otherwise this is a maximum timeout for reading from the pipe.

◆ write()

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

Writes some data to the pipe.

Returns
the number of bytes written, or -1 on failure.

Member Data Documentation

◆ currentPipeName

String NamedPipe::currentPipeName
private

◆ lock

ReadWriteLock NamedPipe::lock
private

◆ pimpl

ScopedPointer<Pimpl> NamedPipe::pimpl
private

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