Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayLib::cMailslotWriter Class Reference

#include <cMailslot.h>

Inheritance diagram for GrayLib::cMailslotWriter:
GrayLib::cMailslot Gray::cStreamOutput Gray::cStreamBase

Public Member Functions

 cMailslotWriter ()
 
virtual ~cMailslotWriter ()
 
HRESULT WriteMailslot (const void *pbData, size_t nDataSize, TIMESYSD_t nTimeWait)
 
HRESULT ConnectSA (cStringF sMailslotPath, _SECURITY_ATTRIBUTES *pSa)
 
virtual HRESULT Connect (const FILECHAR_t *pszSlot, const FILECHAR_t *szServer=nullptr, _SECURITY_ATTRIBUTES *pSa=nullptr) override
 
virtual HRESULT WriteX (const void *pbData, size_t nDataSize) override
 
HRESULT ConnectWrite (const FILECHAR_t *pszSlot, const FILECHAR_t *pszServer, const void *pbData, size_t nDataSize, TIMESYSD_t nTimeWait=0)
 
- Public Member Functions inherited from GrayLib::cMailslot
virtual void Disconnect ()
 
cStringF get_MailslotPath () const
 
bool isOpen () const
 
 UNITTEST2_PREDEF (cMailslot)
 
- Public Member Functions inherited from Gray::cStreamOutput
 cStreamOutput () noexcept
 
virtual ~cStreamOutput ()
 
HRESULT WriteT (const void *pVal, size_t nDataSize)
 
template<typename TYPE >
HRESULT WriteT (TYPE val)
 
HRESULT WriteSize (size_t nSize)
 
HRESULT WriteHashCode (HASHCODE_t nHashCode)
 
HRESULT WriteN (const void *pBuffer, size_t nSize)
 
template<typename _CH >
HRESULT WriteStringN (const _CH *pszStr)
 
template<typename _CH >
HRESULT WriteCharRepeat (_CH nChar, int nCount=1)
 
virtual HRESULT WriteString (const char *pszStr)
 
virtual HRESULT WriteString (const wchar_t *pszStr)
 
StrLen_t VPrintf (const char *pszFormat, va_list args)
 
StrLen_t VPrintf (const wchar_t *pszFormat, va_list args)
 
StrLen_t _cdecl Printf (const char *pszFormat,...)
 
StrLen_t _cdecl Printf (const wchar_t *pszFormat,...)
 
HRESULT WriteStream (cStreamInput &sInp, STREAM_POS_t nSizeMax=k_FILE_BLOCK_SIZE, IStreamProgressCallback *pProgress=nullptr, TIMESYSD_t nTimeout=0)
 Copy cStreamInput to this stream. More...
 
virtual HRESULT FlushX ()
 
- Public Member Functions inherited from Gray::cStreamBase
virtual ~cStreamBase ()
 
virtual STREAM_SEEKRET_t Seek (STREAM_OFFSET_t iOffset, SEEK_ORIGIN_TYPE eSeekOrigin=SEEK_Set)
 
void SeekToBegin ()
 
STREAM_POS_t SeekToEnd ()
 
virtual STREAM_POS_t GetPosition () const
 
virtual STREAM_POS_t GetLength () const
 

Additional Inherited Members

- Static Public Attributes inherited from GrayLib::cMailslot
static const FILECHAR_tk_pszServerDefault = _FN(".")
 
- Static Public Attributes inherited from Gray::cStreamBase
static const BYTE k_SIZE_MASK = 0x80
 Used for WriteSize() More...
 
static const size_t k_FILE_BLOCK_SIZE = (32 * 1024)
 default arbitrary transfer block size. more than this is NOT more efficient. More...
 
- Protected Member Functions inherited from GrayLib::cMailslot
 cMailslot ()
 
virtual ~cMailslot ()
 
- Static Protected Member Functions inherited from GrayLib::cMailslot
static StrLen_t GRAYCALL MakeMailslotPath (OUT FILECHAR_t *pszPath, const FILECHAR_t *pszSlotName, const FILECHAR_t *pszServerName=nullptr)
 
static cStringF GRAYCALL MakeMailslotPath (const FILECHAR_t *pszSlotName, const FILECHAR_t *pszServerName=nullptr)
 
- Protected Attributes inherited from GrayLib::cMailslot
cStringF m_sMailslotPath
 "\\\\%s\\mailslot\\%s" More...
 
mqd_t m_q
 init to -1 More...
 

Detailed Description

can be many writer/clients

Constructor & Destructor Documentation

◆ cMailslotWriter()

GrayLib::cMailslotWriter::cMailslotWriter ( )

◆ ~cMailslotWriter()

GrayLib::cMailslotWriter::~cMailslotWriter ( )
virtual

Member Function Documentation

◆ Connect()

HRESULT GrayLib::cMailslotWriter::Connect ( const FILECHAR_t pszSlot,
const FILECHAR_t szServer = nullptr,
_SECURITY_ATTRIBUTES *  pSa = nullptr 
)
overridevirtual

Creates a connection to a mail slot.

Returns
true on success, false on failure.

Implements GrayLib::cMailslot.

◆ ConnectSA()

HRESULT GrayLib::cMailslotWriter::ConnectSA ( cStringF  sMailslotPath,
_SECURITY_ATTRIBUTES *  pSa 
)

open the mail slot for overlapped I/O with pSa

◆ ConnectWrite()

HRESULT GrayLib::cMailslotWriter::ConnectWrite ( const FILECHAR_t pszSlot,
const FILECHAR_t pszServer,
const void *  pbData,
size_t  nDataSize,
TIMESYSD_t  nTimeWait = 0 
)
inline

connect and write a single message. pszServer = cMailslot_Server_Default

◆ WriteMailslot()

HRESULT GrayLib::cMailslotWriter::WriteMailslot ( const void *  pbData,
size_t  nDataSize,
TIMESYSD_t  nTimeWait 
)

Writes a message to the mail slot. nTimeWait = mSec

◆ WriteX()

virtual HRESULT GrayLib::cMailslotWriter::WriteX ( const void *  pbData,
size_t  nDataSize 
)
inlineoverridevirtual

cStreamOutput

Reimplemented from Gray::cStreamOutput.


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