[ First ]  [ Previous ]  [ Next ]  [ Last ]  [ Manuals ]

 

LSendQueue



Overview:

LSendQueue is a PowerPlant class that queues data for asynchronous style data sending for MacTCP.

Methods :

The methods in this class are:

 

LSendQueue()  
~LSendQueue()  
Append()  
GetBlockingDataSize()  
GetMaxPendingRelease()  
Int_InternalSend()  
Int_SendComplete()  
InternalClearReleaseQueue()  
IsBusy()  
KillQueue()  
NotifyRelease()  
Run()  
SetBlockingDataSize()  
SetMaxPendingRelease()  
WaitingDataSize()  
 

Data Members:

The data members in this class are:

 

mWaitingQueue  
mPendingQueue  
mReleaseQueue  
mContinue  
mDeleteData  
mEndpointDead  
mBusy  
mReleaseWaiting  
mEndpoint  
mThread  
mMaxPendingRelease  
mBlockingDataSize  

Operation:

This class is used primarily for Open Transport-style "acked" data transfers which are not native to MacTCP.

Source files:

(Networking Classes)

LSendQueue.h

LSendQueue.cp

See also:

LInterruptSafeListMember

LMacTCPTCPSendQueue

LMacTCPUDPSendQueue

LThread

LSendQueue()

Purpose:

The constructor creates the object. This constructor inherits from LThread's constructor.

Access :

Public

Prototype:

LSendQueue(LEndpoint * inEndpoint);
Parameters:

This constructor has the following parameter:

 

LEndpoint*  
inEndpoint  
This is the endpoint.  

~LSendQueue()

Purpose:

The destructor destroys the object.

Access :

Virtual, Public

Prototype:

virtual ~LSendQueue();

Append()

Purpose:

Perform an append on the queue.

Access :

Virtual, Public

Prototype:

virtual void Append(
   LInterruptSafeListMember* inItem);
Parameters:

This method has the following parameter:

 

LInterruptSafeListMember*  
inItem  
This is the endpoint.  

Return:

None

GetBlockingDataSize()

Purpose:

This method returns the value of the mBlockingDataSize data member.

Access :

Virtual, Public

Prototype:

virtual UInt32 GetBlockingDataSize() const;
Parameters:

None

Return:

The size of the blocking data.

GetMaxPendingRelease()

Purpose:

This method returns the value of the mMaxPendingRelease data member.

Access :

Virtual, Public

Prototype:

virtual UInt32 GetMaxPendingRelease() const;
Parameters:

None

Return:

The value of mMaxPendingRelease.

Int_InternalSend()

Purpose:

This method is pure virtual, and you must supply an implementation for it.

Access :

Pure virtual, Protected

Prototype:

virtual void Int_InternalSend() = 0;
Parameters:

None

Return:

None

Int_SendComplete()

Purpose:

This routine *might* be called at interrupt time.

Access :

Virtual, Protected

Prototype:

virtual void Int_SendComplete();
Parameters:

None

Return:

None

InternalClearReleaseQueue()

Purpose:

Clear the release queue.

Access :

virtual Virtual, Protected

Prototype:

void InternalClearReleaseQueue();
Parameters:

None

Return:

None

IsBusy()

Purpose:

Returns the value of the mBusy data member.

Access :

Virtual, Public

Prototype:

virtual Boolean IsBusy();
Parameters:

None

Return:

The value of mBusy.

KillQueue()

Purpose:

Clear the queue and perform other necessary cleanup.

Access :

Virtual, Public

Prototype:

virtual void KillQueue();
Parameters:

None

Return:

None

NotifyRelease()

Purpose:

This is a pure virtual method that you must provide code for.

Access :

Pure virtual, Protected

Prototype:

virtual void NotifyRelease(LSendData* inData) = 0;
Parameters:

This method has the following parameter:

 

LSendData*  
inData  
This is the data to send.  

Return:

None

Run()

Purpose:

Run only handles releasing data and the ACK'ing notifications. The data is sent via a chained notifier routine (started via Append()).

Access :

Virtual, Public

Prototype:

virtual void* Run();
Parameters:

None

Return:

Always returns nil.

SetBlockingDataSize()

Purpose:

Sets the value of mBlockingDataSize.

Access :

Virtual, Public

Prototype:

virtual void SetBlockingDataSize(
   UInt32 inReleaseSize);
Parameters:

This method has the following parameter:

 

UInt32  
inReleaseSize  
The data buffer size.  

Return:

None

SetMaxPendingRelease()

Purpose:

Sets the value of mMaxPendingRelease.

Access :

Virtual, Public

Prototype:

virtual void SetMaxPendingRelease(
   UInt32 inReleaseSize);
Parameters:

This method has the following parameter:

 

UInt32  
inReleaseSize  
The data buffer size.  

Return:

None

WaitingDataSize()

Purpose:

Returns the size of the pending data in the queue.

Access :

Virtual, Public

Prototype:

virtual UInt32 WaitingDataSize();
Parameters:

None

Return:

The data size.

mWaitingQueue

Purpose:

The waiting queue.

Access :

Protected

Prototype:

LInterruptSafeList mWaitingQueue;

mPendingQueue

Purpose:

The pending queue.

Access :

Protected

Prototype:

LInterruptSafeList mPendingQueue;

mReleaseQueue

Purpose:

The release queue.

Access :

Protected

Prototype:

LInterruptSafeList mReleaseQueue;

mContinue

Purpose:

Whether to contine.

Access :

Protected

Prototype:

Boolean mContinue;

mDeleteData

Purpose:

Whether to delete the data or not.

Access :

Protected

Prototype:

Boolean mDeleteData;

mEndpointDead

Purpose:

Whether the endpoint is dead or not.

Access :

Protected

Prototype:

Boolean mEndpointDead;

mBusy

Purpose:

Whether busy or not.

Access :

Protected

Prototype:

Boolean mBusy;

mReleaseWaiting

Purpose:

Whether a release is waiting.

Access :

Protected

Prototype:

UInt32 mReleaseWaiting;

mEndpoint

Purpose:

The endpoint.

Access :

Protected

Prototype:

LEndpoint * mEndpoint;

mThread

Purpose:

The thread.

Access :

Protected

Prototype:

LThread * mThread;

mMaxPendingRelease

Purpose:

The size of the maximum pending release buffer.

Access :

Protected

Prototype:

UInt32 mMaxPendingRelease;

mBlockingDataSize

Purpose:

The size of the blocking data buffer.

Access :

Protected

Prototype:

UInt32 mBlockingDataSize;

 


[ First ]  [ Previous ]  [ Next ]  [ Last ]  [ Manuals ]

Visit the Metrowerks website at: http://www.metrowerks.com
For assistance contact Metrowerks Technical Support at: cw_support@metrowerks.com
Copyright © 2000, Metrowerks Corp. All rights reserved.

Last updated: July 21, 2000