LSendQueue is a PowerPlant class that queues data for asynchronous style data sending for MacTCP.
Methods :
The methods in this class are:
Data Members:
The data members in this class are:
Operation:
This class is used primarily for Open Transport-style "acked" data transfers which are not native to MacTCP.
Source files:
See also:
LInterruptSafeListMember
Purpose:
The constructor creates the object. This constructor inherits from LThread's constructor.
Access :
Prototype:
LSendQueue(LEndpoint * inEndpoint);Parameters:
This constructor has the following parameter:
Purpose:
The destructor destroys the object.
Access :
Prototype:
virtual ~LSendQueue();
Purpose:
Perform an append on the queue.
Access :
Prototype:
virtual void Append(
LInterruptSafeListMember* inItem); This method has the following parameter:
Return:
Purpose:
This method returns the value of the mBlockingDataSize data member.
Access :
Prototype:
virtual UInt32 GetBlockingDataSize() const;Parameters:
Return:
The size of the blocking data.
Purpose:
This method returns the value of the mMaxPendingRelease data member.
Access :
Prototype:
virtual UInt32 GetMaxPendingRelease() const;Parameters:
Return:
The value of mMaxPendingRelease.
Purpose:
This method is pure virtual, and you must supply an implementation for it.
Access :
Prototype:
virtual void Int_InternalSend() = 0;Parameters:
Return:
Purpose:
This routine *might* be called at interrupt time.
Access :
Prototype:
virtual void Int_SendComplete();Parameters:
Return:
Purpose:
Access :
Prototype:
void InternalClearReleaseQueue();Parameters:
Return:
Purpose:
Returns the value of the mBusy data member.
Access :
Prototype:
virtual Boolean IsBusy();Parameters:
Return:
The value of mBusy.
Purpose:
Clear the queue and perform other necessary cleanup.
Access :
Prototype:
virtual void KillQueue();Parameters:
Return:
Purpose:
This is a pure virtual method that you must provide code for.
Access :
Prototype:
virtual void NotifyRelease(LSendData* inData) = 0;Parameters:
This method has the following parameter:
Return:
Purpose:
Run only handles releasing data and the ACK'ing notifications. The data is sent via a chained notifier routine (started via Append()).
Access :
Prototype:
virtual void* Run();Parameters:
Return:
Purpose:
Sets the value of mBlockingDataSize.
Access :
Prototype:
virtual void SetBlockingDataSize(
UInt32 inReleaseSize); This method has the following parameter:
Return:
Purpose:
Sets the value of mMaxPendingRelease.
Access :
Prototype:
virtual void SetMaxPendingRelease(
UInt32 inReleaseSize); This method has the following parameter:
Return:
Purpose:
Returns the size of the pending data in the queue.
Access :
Prototype:
virtual UInt32 WaitingDataSize();Parameters:
Return:
Purpose:
Access :
Prototype:
LInterruptSafeList mWaitingQueue;
Purpose:
Access :
Prototype:
LInterruptSafeList mPendingQueue;
Purpose:
Access :
Prototype:
LInterruptSafeList mReleaseQueue;
Purpose:
Access :
Prototype:
Boolean mContinue;
Purpose:
Whether to delete the data or not.
Access :
Prototype:
Boolean mDeleteData;
Purpose:
Whether the endpoint is dead or not.
Access :
Prototype:
Boolean mEndpointDead;
Purpose:
Access :
Prototype:
Boolean mBusy;
Purpose:
Access :
Prototype:
UInt32 mReleaseWaiting;
Purpose:
Access :
Prototype:
LEndpoint * mEndpoint;
Purpose:
Access :
Prototype:
LThread * mThread;
Purpose:
The size of the maximum pending release buffer.
Access :
Prototype:
UInt32 mMaxPendingRelease;
Purpose:
The size of the blocking data buffer.
Access :
Prototype:
UInt32 mBlockingDataSize;