#ifndef __IREVENT_H
#define __IREVENT_H
#include "IrDATypes.h"
class TIrStream;
class TIrClient;
class TLSAPConn;
class TIASAttribute;
class TIrQOS;
class CBuffer;
class CList;
enum IrEvents
{
kIrOutputCompleteEvent = 1, kIrInputCompleteEvent,
kIrDiscoverRequestEvent, kIrDiscoverReplyEvent = kIrDiscoverRequestEvent+1,
kIrConnectRequestEvent, kIrConnectReplyEvent = kIrConnectRequestEvent+1,
kIrListenRequestEvent, kIrListenReplyEvent = kIrListenRequestEvent+1,
kIrAcceptRequestEvent, kIrAcceptReplyEvent = kIrAcceptRequestEvent+1,
kIrGetDataRequestEvent, kIrGetDataReplyEvent = kIrGetDataRequestEvent+1,
kIrPutDataRequestEvent, kIrPutDataReplyEvent = kIrPutDataRequestEvent+1,
kIrLookupRequestEvent, kIrLookupReplyEvent = kIrLookupRequestEvent+1,
kIrCancelGetRequestEvent, kIrCancelGetReplyEvent = kIrCancelGetRequestEvent+1,
kIrCancelPutRequestEvent, kIrCancelPutReplyEvent = kIrCancelPutRequestEvent+1,
kIrReleaseRequestEvent, kIrReleaseReplyEvent = kIrReleaseRequestEvent+1,
kIrDisconnectRequestEvent, kIrDisconnectReplyEvent = kIrDisconnectRequestEvent+1,
kIrLocalBusyEvent, kIrLocalBusyClearedEvent,
kIrFirstIrLAPTimerEvent, kIrMediaBusyTimerExpiredEvent, kIrSlotTimerExpiredEvent, kIrQueryTimerExpiredEvent, kIrBackoffTimerExpiredEvent, kIrFinalTimerExpiredEvent, kIrPollTimerExpiredEvent, kIrWatchdogTimerExpiredEvent, kIrTurnaroundTimerExpiredEvent, kIrLastIrLAPTimerEvent,
kIrFirstIrLMPTimerEvent, kIrConnWatchdogExpiredEvent, kIdleDisconnectEvent, kIrLastIrLMPTimerEvent,
kIrChangeSpeedCompleteEvent,
kIrMaxEventNumber = kIrChangeSpeedCompleteEvent
};
#define kMaxSubClassFields 10 // jdg, append get/puts to conn/listen
class TIrEvent : public OSObject
{
OSDeclareDefaultStructors(TIrEvent);
public:
static IrDAErr InitEventLists(void);
static void DeleteEventLists(void);
static TIrEvent * GrabEventBlock(ULong event, ULong size);
static void ReleaseEventBlock(TIrEvent * eventBlock);
UByte fEvent; UByte fPendEvent; UByte fAllocated; UByte fPadByte2;
IrDAErr fResult;
TIrStream *fClient; TIrStream *fDest; };
class TIrLargestEvent : public TIrEvent
{
OSDeclareDefaultStructors(TIrLargestEvent);
public:
static TIrLargestEvent * tIrLargestEvent(); uintptr_t fSubClassFields[kMaxSubClassFields]; };
class TIrDiscoverEvent : public TIrEvent
{
OSDeclareDefaultStructors(TIrDiscoverEvent);
public:
ULong fNumSlots; ULong fConflictDevAddr; CList* fDiscoveredDevices; Boolean fPassiveDiscovery; };
class TIrExtDiscoverEvent : public TIrDiscoverEvent
{
OSDeclareDefaultStructors(TIrExtDiscoverEvent);
public:
void * fCallBack;
void * fUserData;
};
typedef TIrDiscoverEvent TIrDiscoverRequest;
typedef TIrDiscoverEvent TIrDiscoverReply;
typedef TIrExtDiscoverEvent TIrExtDiscoverRequest;
typedef TIrExtDiscoverEvent TIrExtDiscoverReply;
class TIrLSAPConnEvent : public TIrEvent
{
OSDeclareDefaultStructors(TIrLSAPConnEvent);
public:
TLSAPConn* fLSAPConn; };
typedef TIrLSAPConnEvent TIrDisconnectEvent;
typedef TIrDisconnectEvent TIrDisconnectRequest;
typedef TIrDisconnectEvent TIrDisconnectReply;
class TIrConnectEvent : public TIrLSAPConnEvent
{
OSDeclareDefaultStructors(TIrConnectEvent);
public:
ULong fDevAddr; UByte fLSAPId; Boolean fPassiveConnect; TIrQOS* fMyQOS; TIrQOS* fPeerQOS; CBuffer* fData; };
typedef TIrConnectEvent TIrConnLstnRequest;
typedef TIrConnectEvent TIrConnLstnReply;
class TIrDataXferEvent : public TIrConnectEvent
{
OSDeclareDefaultStructors(TIrDataXferEvent);
public:
ULong fOffset; ULong fLength; UByte fDstLSAPId; UByte fSrcLSAPId; UByte fCtrlOpCode; UByte fCtrlInfo; };
typedef TIrDataXferEvent TIrPutEvent;
typedef TIrPutEvent TIrPutRequest;
typedef TIrPutEvent TIrPutReply;
typedef TIrDataXferEvent TIrGetEvent;
typedef TIrGetEvent TIrGetRequest;
typedef TIrGetEvent TIrGetReply;
typedef TIrLSAPConnEvent TIrCancelGetEvent;
typedef TIrCancelGetEvent TIrCancelGetRequest;
typedef TIrCancelGetEvent TIrCancelGetReply;
typedef TIrLSAPConnEvent TIrCancelPutEvent;
typedef TIrCancelPutEvent TIrCancelPutRequest;
typedef TIrCancelPutEvent TIrCancelPutReply;
class TIrLookupEvent : public TIrEvent
{
OSDeclareDefaultStructors(TIrLookupEvent);
public:
UChar* fClassName; UChar* fAttrName; TIASAttribute* fAttribute; ULong fPeerLSAPId; };
typedef TIrLookupEvent TIrLookupRequest;
typedef TIrLookupEvent TIrLookupReply;
inline ULong RequestIdToReplyId(ULong requestId)
{
return (ULong) (requestId + 1);
}
#endif // __IREVENT_H