mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.1 KiB
83 lines
3.1 KiB
#ifndef __MCS_ATTACHMENT_H__
|
|
#define __MCS_ATTACHMENT_H__
|
|
|
|
typedef enum
|
|
{
|
|
USER_ATTACHMENT, // local attachment
|
|
CONNECT_ATTACHMENT // remote attachment
|
|
}
|
|
ATTACHMENT_TYPE;
|
|
|
|
|
|
class CAttachmentList : public CList
|
|
{
|
|
DEFINE_CLIST(CAttachmentList, CAttachment*)
|
|
|
|
PUser IterateUser(void);
|
|
PConnection IterateConn(void);
|
|
|
|
BOOL FindUser(PUser pUser) { return Find((CAttachment *) pUser); }
|
|
BOOL FindConn(PConnection pConn) { return Find((CAttachment *) pConn); }
|
|
|
|
BOOL AppendUser(PUser pUser) { return Append((CAttachment *) pUser); }
|
|
BOOL AppendConn(PConnection pConn) { return Append((CAttachment *) pConn); }
|
|
};
|
|
|
|
class CAttachmentQueue : public CQueue
|
|
{
|
|
DEFINE_CQUEUE(CAttachmentQueue, CAttachment*)
|
|
|
|
PUser IterateUser(void);
|
|
PConnection IterateConn(void);
|
|
|
|
BOOL FindUser(PUser pUser) { return Find((CAttachment *) pUser); }
|
|
BOOL FindConn(PConnection pConn) { return Find((CAttachment *) pConn); }
|
|
|
|
BOOL AppendUser(PUser pUser) { return Append((CAttachment *) pUser); }
|
|
BOOL AppendConn(PConnection pConn) { return Append((CAttachment *) pConn); }
|
|
};
|
|
|
|
|
|
|
|
class CAttachment
|
|
{
|
|
public:
|
|
|
|
CAttachment(ATTACHMENT_TYPE eAttmntType) : m_eAttmntType(eAttmntType) { }
|
|
// ~CAttachment(void) { }
|
|
|
|
ATTACHMENT_TYPE GetAttachmentType(void) { return m_eAttmntType; }
|
|
BOOL IsUserAttachment(void) { return (USER_ATTACHMENT == m_eAttmntType); }
|
|
BOOL IsConnAttachment(void) { return (CONNECT_ATTACHMENT == m_eAttmntType); }
|
|
|
|
|
|
virtual void PlumbDomainIndication(ULONG height_limit) = 0;
|
|
virtual void PurgeChannelsIndication(CUidList *, CChannelIDList *) = 0;
|
|
virtual void PurgeTokensIndication(PDomain, CTokenIDList *) = 0;
|
|
virtual void DisconnectProviderUltimatum(Reason) = 0;
|
|
virtual void AttachUserConfirm(Result, UserID uidInitiator) = 0;
|
|
virtual void DetachUserIndication(Reason, CUidList *) = 0;
|
|
virtual void ChannelJoinConfirm(Result, UserID uidInitiator, ChannelID requested_id, ChannelID) = 0;
|
|
virtual void ChannelConveneConfirm(Result, UserID uidInitiator, ChannelID) = 0;
|
|
virtual void ChannelDisbandIndication(ChannelID) = 0;
|
|
virtual void ChannelAdmitIndication(UserID uidInitiator, ChannelID, CUidList *) = 0;
|
|
virtual void ChannelExpelIndication(ChannelID, CUidList *) = 0;
|
|
virtual void SendDataIndication(UINT message_type, PDataPacket data_packet) = 0;
|
|
virtual void TokenGrabConfirm(Result, UserID uidInitiator, TokenID, TokenStatus) = 0;
|
|
virtual void TokenInhibitConfirm(Result, UserID uidInitiator, TokenID, TokenStatus) = 0;
|
|
virtual void TokenGiveIndication(PTokenGiveRecord) = 0;
|
|
virtual void TokenGiveConfirm(Result, UserID uidInitiator, TokenID, TokenStatus) = 0;
|
|
virtual void TokenReleaseConfirm(Result, UserID uidInitiator, TokenID, TokenStatus) = 0;
|
|
virtual void TokenPleaseIndication(UserID uidInitiator, TokenID) = 0;
|
|
virtual void TokenTestConfirm(UserID uidInitiator, TokenID, TokenStatus) = 0;
|
|
virtual void MergeDomainIndication(MergeStatus) = 0;
|
|
|
|
private:
|
|
|
|
ATTACHMENT_TYPE m_eAttmntType;
|
|
};
|
|
|
|
|
|
|
|
#endif // __MCS_ATTACHMENT_H__
|
|
|