6 #ifndef _INC_cMailslot_H
7 #define _INC_cMailslot_H
12 #include "../GrayLibBase.h"
14 #if !defined(UNDER_CE)
15 #include "../WinAPI/cOverlappedIO.h"
24 struct _SECURITY_ATTRIBUTES;
46 cOverlappedIO m_overlapped;
61 virtual void Disconnect();
65 return m_sMailslotPath;
73 return m_q != ((mqd_t)-1);
94 virtual HRESULT Connect(
const FILECHAR_t* pszSlotname,
const FILECHAR_t* szServer =
nullptr, _SECURITY_ATTRIBUTES* pSa =
nullptr)
override;
96 virtual HRESULT ReadX(
void* pbData,
size_t nLengthMax)
override;
99 UINT GetMessageCount(
size_t* pnNextMessageLength =
nullptr);
100 bool put_ReadTimeout(
TIMESYSD_t nReadTimeout);
111 HRESULT WriteMailslot(
const void* pbData,
size_t nDataSize,
TIMESYSD_t nTimeWait);
115 virtual HRESULT Connect(
const FILECHAR_t* pszSlot,
const FILECHAR_t* szServer =
nullptr, _SECURITY_ATTRIBUTES* pSa =
nullptr)
override;
126 HRESULT hRes = Connect(pszSlot, pszServer);
131 return WriteMailslot(pbData, nDataSize, nTimeWait);
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
#define FAILED(x)
Definition: HResult.h:30
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
Definition: cMailslot.h:81
size_t m_nMaxMessageSize
0 = any size
Definition: cMailslot.h:87
TIMESYSD_t m_nReadTimeout
cTimeSys::k_INF = MAILSLOT_WAIT_FOREVER
Definition: cMailslot.h:88
Definition: cMailslot.h:104
HRESULT ConnectWrite(const FILECHAR_t *pszSlot, const FILECHAR_t *pszServer, const void *pbData, size_t nDataSize, TIMESYSD_t nTimeWait=0)
Definition: cMailslot.h:122
virtual HRESULT WriteX(const void *pbData, size_t nDataSize) override
Definition: cMailslot.h:116
Definition: cMailslot.h:32
cStringF m_sMailslotPath
"\\\\%s\\mailslot\\%s"
Definition: cMailslot.h:43
virtual HRESULT Connect(const FILECHAR_t *pszSlotName, const FILECHAR_t *pszServerName=nullptr, _SECURITY_ATTRIBUTES *pSa=nullptr)=0
bool isOpen() const
Definition: cMailslot.h:68
UNITTEST2_PREDEF(cMailslot)
cStringF get_MailslotPath() const
Definition: cMailslot.h:63
static const FILECHAR_t * k_pszServerDefault
Definition: cMailslot.h:40
mqd_t m_q
init to -1
Definition: cMailslot.h:48
Definition: cOSHandle.h:59
bool isValidHandle() const noexcept
Definition: cOSHandle.h:125
Definition: cStream.h:126
static const TIMESYS_t k_INF
INFINITE in _WIN32. MAILSLOT_WAIT_FOREVER.
Definition: cTimeSys.h:101
UNITTEST2_PREDEF(cQuadtree)
int StrLen_t
the length of a string in chars (bytes for UTF8, wchar_t for UNICODE). or offset in characters....
Definition: StrConst.h:32
INT32 TIMESYSD_t
Time delta. signed milli-Seconds Span. cTimeSys::k_DMAX, cTimeSys::k_INF = MAILSLOT_WAIT_FOREVER.
Definition: cTimeSys.h:28
char FILECHAR_t
a UTF8 char in a file name. like TCHAR
Definition: FileName.h:22