You are here: Home > Projects > SimStream > Documentation

SimStream Documentation

Inheritance diagram for CStreamClientPull:
CStreamClient CStream

List of all members.

Public Member Functions

 CStreamClientPull (CSimHandler *sim, CInfoPull *info, CAddress address, IDelegate5< void, __uint16, __uint16, CAddress, __byte, CPacket * > *delegateSend, IDelegate2< void, CAddress, __uint32 > *delegateIgmpJoin, IDelegate1< void, CAddress > *delegateIgmpLeave, IDelegate0< CLink * > *delegateLink, __uint32 entry)
virtual void Start (CChannel *channel)
virtual void Stop ()
virtual void Recv (CAddress srcAddress, CAddress dstAddress, __uint16 srcPort, __uint16 dstPort, CPacket *packet)
virtual __uint32 StatRecvFrames ()
virtual __uint32 StatDiscardedFrames ()
virtual __uint32 StatPlayFrames ()
virtual __uint32 * StatSuccessFrames ()
virtual __uint32 * StatFailFrames ()
virtual __time StatTimeClientStart ()
virtual __time StatTimeRecvStart ()
virtual __time StatTimePlayStart ()
virtual __time StatTimeFinish ()
virtual __time StatTimeWait ()
virtual __uint32 StatPlayFirstFrame ()
virtual __uint32 StatPlayLastFrame ()
virtual __time StatSyncDelay ()
virtual void Finalize ()

Private Types

enum  EClientState {
  STOPPED = 0, MCAST_STREAM_FIRST = 10, MCAST_STREAM_BUFFERING = 11, MCAST_STREAM_PLAY = 12,
  MCAST_STREAM_WAIT = 13, UCAST_STREAM_FIRST = 20, UCAST_STREAM_BUFFERING = 21, UCAST_STREAM_PLAY = 22
}
enum  EScheduleState {
  SCHEDULE_IDLE = 0, SCHEDULE_BOOTSTRAP_REQUEST = 1, SCHEDULE_BOOTSTRAP_RESPONSE = 2, SCHEDULE_CONNECT_REQUEST = 3,
  SCHEDULE_CONNECT_RESPONSE = 4, SCHEDULE_BITMAP_REQUEST = 5, SCHEDULE_BITMAP_RESPONSE = 6, SCHEDULE_POST_BITMAP_RESPONSE = 7,
  SCHEDULE_SEGMENT_REQUEST = 8, SCHEDULE_SEGMENT_RESPONSE = 9, SCHEDULE_POST_SEGMENT_RESPONSE = 10
}
enum  ERegistrationState { NOT_REGISTERED = 0, REGISTERED = 1 }
typedef set< CAddressTNeighborList
typedef map< CAddress,
CStreamPullSender * > 
TRequestList

Private Member Functions

void StartMcast ()
void StartUcast ()
void StopMcast ()
void StopUcast ()
void RecvFrameMcast (CAddress address, CStreamFrame frame)
void ProcessFrameMcastFirst (CStreamFrame frame)
void ProcessFrameMcastBuffering (CStreamFrame frame)
void ProcessFrameMcastPlay (CStreamFrame frame)
void ProcessFrameMcastWait (CStreamFrame frame)
void ProcessFrameUcastFirst (CStreamFrame frame)
void ProcessFrameUcastBuffering (CStreamFrame frame)
void ProcessFrameUcastPlay (CStreamFrame frame)
void TimerPlayMcast (CTimerInfo *info)
void TimerPlayUcast (CTimerInfo *info)
void TimerRegister (CTimerInfo *info)
void TimerSchedule (CTimerInfo *info)
void ScheduleBootstrapRequest ()
void ScheduleConnectRequest ()
void ScheduleBitmapRequest ()
void SchedulePostBitmapResponse ()
void ScheduleSegmentRequest ()
void RecvStream (CAddress dst, CPacketStream *packet)
void RecvMessage (CAddress src, CStreamMessage *message)
void RecvConnection (CAddress srcAddress, __uint16 srcPort, __uint16 dstPort, CPacketConnection *packet)
void RecvMessageBootResponse (CAddress src, CStreamMessageBootPullResponse *message)
void RecvMessageBitmapRequest (CAddress src, CStreamMessagePullBitmapRequest *message)
void RecvMessageBitmapResponse (CAddress src, CStreamMessagePullBitmapResponse *message)
void RecvMessageSegmentRequest (CAddress src, CStreamMessagePullSegmentRequest *message)
void RecvMessageSegmentResponse (CAddress src, CStreamMessagePullSegmentResponse *message)
void ConnectionRecv (CConnectionReceiver *receiver, CPacket *packet)
bool ConnectionAccept (CAddress src, CPacket *packet)
void ConnectionAccepted (CConnectionSender *sender)
void ConnectionReceiverOpen (CConnection *receiver, CConnection::EOpenResult result)
void ConnectionReceiverClose (CConnection *receiver, CConnection::ECloseResult result)
void ConnectionSenderOpen (CConnection *sender, CConnection::EOpenResult result)
void ConnectionSenderClose (CConnection *sender, CConnection::ECloseResult result)
void SendMessage (CAddress dst, CStreamMessage *message)
void UcastRegister ()
void UcastDeregister ()

Private Attributes

EClientState stateClient
ERegistrationState stateRegistration
EScheduleState stateSchedule
CInfoPullinfo
CAddress address
CChannelchannel
CStreamBufferbufferMcast
CStreamBufferSegmentbufferUcast
void(CStreamClientPull::* processFrame )(CStreamFrame frame)
__time sessionTimeLastStart
__time sessionTimeLastStop
__uint32 sessionFrameLastStart
__uint32 sessionFrameLastStop
__uint32 entry
CConnectionLayerconnectionLayer
TNeighborList neighbors
TRequestList requestBitmaps
TRequestList requestSegments
CStreamPullSender::TSenderList sendersConnecting
CStreamPullSender::TSenderList senders
CStreamPullReceiver::TReceiverList receivers
__uint32 scheduleSegment
__uint8 scheduleNumCopiesLo [64]
__uint8 scheduleNumCopiesHi [64]
bool scheduleBitmapLo [PULL_MAX_SENDERS][64]
bool scheduleBitmapHi [PULL_MAX_SENDERS][64]
CStreamPullSenderscheduleSenderLo [PULL_MAX_SENDERS][64]
CStreamPullSenderscheduleSenderHi [PULL_MAX_SENDERS][64]
__uint8 scheduleSenderIndexLo [PULL_MAX_SENDERS][64]
__uint8 scheduleSenderIndexHi [PULL_MAX_SENDERS][64]
__time scheduleDeadlineLo [PULL_MAX_SENDERS][64]
__time scheduleDeadlineHi [PULL_MAX_SENDERS][64]
__bitrate scheduleBw [PULL_MAX_SENDERS]
CStreamPullSenderscheduleSenders [64]
__time scheduleDeadlineDelta
CTimer< CStreamClientPull > * timerPlayMcast
CTimer< CStreamClientPull > * timerPlayUcast
CTimer< CStreamClientPull > * timerRegister
CTimer< CStreamClientPull > * timerSchedule
Delegate2< CStreamClientPull,
void, CAddress, CStreamFrame > * 
delegateRecvFrameMcast
Delegate2< CStreamClientPull,
void, CConnectionReceiver
*, CPacket * > * 
delegateConnectionRecv
Delegate2< CStreamClientPull,
bool, CAddress, CPacket * > * 
delegateConnectionAccept
Delegate1< CStreamClientPull,
void, CConnectionSender * > * 
delegateConnectionAccepted
Delegate2< CStreamClientPull,
void, CConnection
*, CConnection::EOpenResult > * 
delegateConnectionReceiverOpen
Delegate2< CStreamClientPull,
void, CConnection
*, CConnection::ECloseResult > * 
delegateConnectionReceiverClose
Delegate2< CStreamClientPull,
void, CConnection
*, CConnection::EOpenResult > * 
delegateConnectionSenderOpen
Delegate2< CStreamClientPull,
void, CConnection
*, CConnection::ECloseResult > * 
delegateConnectionSenderClose
IDelegate2< void, CAddress,
__uint32 > * 
delegateIgmpJoin
IDelegate1< void, CAddress > * delegateIgmpLeave
IDelegate5< void, __uint16,
__uint16, CAddress, __byte,
CPacket * > * 
delegateSend
IDelegate0< CLink * > * delegateLink
CStreamDecoderFramedecoderMcast
__uint32 statRecvFrames
__uint32 statDiscardedFrames
__uint32 statPlayFrames
__uint32 statSuccessFrames [3]
__uint32 statFailFrames [3]
__uint32 statPlayFirstFrame
__uint32 statPlayLastFrame
__time statTimeClientStart
__time statTimeRecvStart
__time statTimePlayStart
__time statTimeFinish
__time statTimeWait
__time statSyncDelaySum
__uint32 statSyncDelayCount

Detailed Description

Definition at line 26 of file StreamClientPull.h.


The documentation for this class was generated from the following files:

Last updated: February 8, 2011