📄 phuser.h
字号:
Description: Returns the message Sent Time
=======================================================================*/
inline ULONG CUserHeader::GetSentTime(void) const
{
return m_ulSentTime;
}
/*======================================================================
Function: CUserHeader::SetId
Description: Set Message ID (Uniq per QM)
=======================================================================*/
inline void CUserHeader::SetMessageID(const OBJECTID* pMessageID)
{
ASSERT(pMessageID->Lineage == *GetSourceQM());
m_ulMessageID = pMessageID->Uniquifier;
}
/*======================================================================
Function: CUserHeader::GetId
Description: Return the Message ID field
=======================================================================*/
inline void CUserHeader::GetMessageID(OBJECTID* pMessageID) const
{
pMessageID->Lineage = *GetSourceQM();
pMessageID->Uniquifier = m_ulMessageID;
}
/*======================================================================
Function: CUserHeader::IncHopCount
Description: Increment the message Hop count
=======================================================================*/
inline void CUserHeader::IncHopCount(void)
{
m_bfHopCount++;
}
/*======================================================================
Function: CUserHeader::GetHopCount
Description: returns the message hop count
=======================================================================*/
inline UCHAR CUserHeader::GetHopCount(void) const
{
return (UCHAR)m_bfHopCount;
}
/*======================================================================
Function: CUserHeader::SetDeliveryMode
Description: Set Messge Delivery mode
=======================================================================*/
inline void CUserHeader::SetDelivery(UCHAR bDelivery)
{
m_bfDelivery = bDelivery;
}
/*======================================================================
Function: CUserHeader::GetDeliveryMode
Description: return the message delivery mode
=======================================================================*/
inline UCHAR CUserHeader::GetDelivery(void) const
{
return (UCHAR)m_bfDelivery;
}
/*======================================================================
Function: CUserHeader::SetAuditing
Description: Set Auditing mode
=======================================================================*/
inline void CUserHeader::SetAuditing(UCHAR bAuditing)
{
m_bfAuditing = bAuditing;
}
/*======================================================================
Function: CUserHeader::GetAuditingMode
Description: return message auditing mode
=======================================================================*/
inline UCHAR CUserHeader::GetAuditing(void) const
{
return (UCHAR)m_bfAuditing;
}
/*======================================================================
Function: CUserHeader::
Description: Set Message Security inclusion bit
=======================================================================*/
inline void CUserHeader::IncludeSecurity(BOOL f)
{
m_bfSecurity = f;
}
/*======================================================================
Function: CUserHeader::
Description:
=======================================================================*/
inline BOOL CUserHeader::SecurityIsIncluded(void) const
{
return m_bfSecurity;
}
/*======================================================================
Function: CUserHeader::
Description: Set Message Xaction inclusion bit
=======================================================================*/
inline void CUserHeader::IncludeXact(BOOL f)
{
m_bfXact= f;
}
/*======================================================================
Function: CUserHeader::
Description:
=======================================================================*/
inline BOOL CUserHeader::IsOrdered(void) const
{
return m_bfXact;
}
/*======================================================================
Function: CUserHeader::SetPropertyInc
Description: Set Message property inclusion bit
=======================================================================*/
inline void CUserHeader::IncludeProperty(BOOL f)
{
m_bfProperties = f;
}
/*======================================================================
Function: CUserHeader::IsPropertyInc
Description: Returns TRUE if Message property section included, FALSE otherwise
=======================================================================*/
inline BOOL CUserHeader::PropertyIsIncluded(VOID) const
{
return m_bfProperties;
}
/*======================================================================
Function: CUserHeader::IncludeSrmp
Description: Set SRMP sections inclusion bit
=======================================================================*/
inline VOID CUserHeader::IncludeSrmp(bool include)
{
m_bfSrmp = include ? 1 : 0;
}
/*======================================================================
Function: CUserHeader::SrmpIsIncluded
Description: Returns true if SRMP sections included, false otherwise
=======================================================================*/
inline bool CUserHeader::SrmpIsIncluded(VOID) const
{
return (m_bfSrmp != 0);
}
/*======================================================================
Function: CUserHeader::IncludeEod
Description: Set Eod section inclusion bit
=======================================================================*/
inline VOID CUserHeader::IncludeEod(bool include)
{
m_bfEod = include ? 1 : 0;
}
/*======================================================================
Function: CUserHeader::EodIsIncluded
Description: Returns true if Eod section included, false otherwise
=======================================================================*/
inline bool CUserHeader::EodIsIncluded(VOID) const
{
return (m_bfEod != 0);
}
/*======================================================================
Function: CUserHeader::IncludeEodAck
Description: Set EodAck section inclusion bit
=======================================================================*/
inline VOID CUserHeader::IncludeEodAck(bool include)
{
m_bfEodAck = include ? 1 : 0;
}
/*======================================================================
Function: CUserHeader::EodAckIsIncluded
Description: Returns true if EodAck section included, false otherwise
=======================================================================*/
inline bool CUserHeader::EodAckIsIncluded(VOID) const
{
return (m_bfEodAck != 0);
}
/*======================================================================
Function: CUserHeader::IncludeSoap
Description: Set Soap sections inclusion bit
=======================================================================*/
inline VOID CUserHeader::IncludeSoap(bool include)
{
m_bfSoap = include ? 1 : 0;
}
/*======================================================================
Function: CUserHeader::SoapIsIncluded
Description: Returns true if Soap sections included, false otherwise
=======================================================================*/
inline bool CUserHeader::SoapIsIncluded(VOID) const
{
return (m_bfSoap != 0);
}
/*======================================================================
Function: CUserHeader::
Description:
=======================================================================*/
inline int CUserHeader::QueueSize(ULONG qt, const UCHAR* pQueue)
{
if(qt < qtSourceQM)
{
return 0;
}
if(qt < qtGUID)
{
return sizeof(ULONG);
}
if(qt == qtGUID)
{
return sizeof(GUID);
}
if (qt == qtPrivate)
{
return (sizeof(GUID) + sizeof(ULONG));
}
if (qt == qtDirect)
{
return ALIGNUP4(*(PUSHORT)pQueue + sizeof(USHORT));
}
//
// Unexpected type, assert with no Warning level 4.
//
ASSERT(qt == qtDirect);
return 0;
}
/*======================================================================
Function: CUserHeader::
Description:
=======================================================================*/
inline BOOL CUserHeader::GetQueue(const UCHAR* pQueue, ULONG qt, QUEUE_FORMAT* pqf) const
{
switch(qt)
{
case qtNone:
pqf->UnknownID(0);
return FALSE;
case qtAdminQ:
return GetAdminQueue(pqf);
case qtSourceQM:
pqf->PrivateID(*GetSourceQM(), *(PULONG)pQueue);
return TRUE;
case qtDestQM:
pqf->PrivateID(*GetDestQM(), *(PULONG)pQueue);
return TRUE;
case qtAdminQM:
//
// Note that this case implies that Admin queue exists
//
GetAdminQueue(pqf);
pqf->PrivateID(pqf->PrivateID().Lineage, *(PULONG)pQueue);
return TRUE;
case qtGUID:
pqf->PublicID(*(GUID*)pQueue);
return TRUE;
case qtPrivate:
pqf->PrivateID(*(OBJECTID*)pQueue);
return TRUE;
case qtDirect:
pqf->DirectID((WCHAR*)(pQueue + sizeof(USHORT)));
return TRUE;
default:
//
// Unexpected type, assert with no Warning level 4.
//
ASSERT(qt != qtNone);
};
return FALSE;
}
/*======================================================================
Function: CUserHeader::
Description:
=======================================================================*/
inline PUCHAR CUserHeader::SetDirectQueue(PUCHAR pQueue, const WCHAR* pwcsDirectQueue)
{
ASSERT(ISALIGN4(pQueue));
size_t size = (wcslen(pwcsDirectQueue) + 1) * sizeof(WCHAR);
*reinterpret_cast<USHORT*>(pQueue) = static_cast<USHORT>(size);
memcpy(pQueue + sizeof(USHORT), pwcsDirectQueue, size);
return (pQueue + ALIGNUP4(sizeof(USHORT) + size));
}
/*===========================================================
Function: CUserHeader::SetConnectorType
Description:
=============================================================*/
inline void CUserHeader::SetConnectorType(const GUID* pgConnectorType)
{
ASSERT(pgConnectorType);
int qsize = QueueSize(m_bfDQT, &m_abQueues[0]);
qsize += QueueSize(m_bfAQT, &m_abQueues[qsize]);
qsize += QueueSize(m_bfRQT, &m_abQueues[qsize]);
memcpy(&m_abQueues[qsize], pgConnectorType, sizeof(GUID));
m_bfConnectorType = TRUE;
}
/*===========================================================
Function: CUserHeader::ConnectorTypeIsIncluded
Description:
=============================================================*/
inline BOOL CUserHeader::ConnectorTypeIsIncluded(void) const
{
return m_bfConnectorType;
}
/*===========================================================
Function: CUserHeader::GetConnectorType
Description:
=============================================================*/
inline const GUID* CUserHeader::GetConnectorType(void) const
{
if(!ConnectorTypeIsIncluded())
{
return 0;
}
int qsize = QueueSize(m_bfDQT, &m_abQueues[0]);
qsize += QueueSize(m_bfAQT, &m_abQueues[qsize]);
qsize += QueueSize(m_bfRQT, &m_abQueues[qsize]);
return reinterpret_cast<const GUID*>(&m_abQueues[qsize]);
}
#endif // __PHUSER_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -