The Assimilation Project  based on Assimilation version 1.1.7.1474836767
_FsQueue Struct Reference

This is an FsQueue class object - designed for queueuing up FrameSet class objects for transmission. More...

#include <fsqueue.h>

Collaboration diagram for _FsQueue:

Data Fields

AssimObj baseclass
 base AssimObj class object More...
 
guint64 _nextseqno
 Next sequence number. More...
 
guint32 _sessionid
 Current session id for this Queue. More...
 
guint _maxqlen
 Maximum queue length. More...
 
GQueue * _q
 FrameSet class queue More...
 
NetAddr_destaddr
 Far endpoint address. More...
 
guint16 _qid
 Far endpoint queue id. More...
 
gboolean isready
 TRUE when ready for I or O (depending) More...
 
gboolean(* enq )(FsQueue *self, FrameSet *fs)
 Enqueue an outgoing FrameSet - adding seqno ONLY for output queues. More...
 
gboolean(* inqsorted )(FsQueue *, FrameSet *fs)
 Enqueue an incoming FrameSet - sorted by sequence # - no dups allowed Used ONLY for input queues, or unsequenced frames on output queues. More...
 
FrameSet *(* qhead )(FsQueue *self)
 return packet at head of queue More...
 
FrameSet *(* deq )(FsQueue *self)
 return and remove head packet More...
 
gint(* ackthrough )(FsQueue *self, SeqnoFrame *)
 ACK packets through given seqno. More...
 
void(* flush )(FsQueue *self)
 flush all FrameSet in the queue More...
 
void(* flush1 )(FsQueue *self)
 flush head FrameSet in the queue More...
 
guint(* qlen )(FsQueue *self)
 return current queue length More...
 
void(* setmaxqlen )(FsQueue *self, guint max)
 set maximum queue length More...
 
guint(* getmaxqlen )(FsQueue *self)
 return max q length More...
 
gboolean(* hasqspace1 )(FsQueue *self)
 TRUE if space for one more FrameSet. More...
 
gboolean(* hasqspace )(FsQueue *self, guint)
 TRUE if space for desired packets available. More...
 

Detailed Description

This is an FsQueue class object - designed for queueuing up FrameSet class objects for transmission.

These objects are suitable for either transmit or receive queues - but not both at the same time ;-). Some member functions should only be used for transmit queues, and some are generally used for receive queues. It is a subclass of the AssimObj class. and is managed by our C-Class Management system.

Definition at line 45 of file fsqueue.h.

Field Documentation

NetAddr* _FsQueue::_destaddr

Far endpoint address.

Definition at line 51 of file fsqueue.h.

Referenced by _fsprotocol_read().

guint _FsQueue::_maxqlen

Maximum queue length.

Definition at line 49 of file fsqueue.h.

guint64 _FsQueue::_nextseqno
GQueue* _FsQueue::_q
guint16 _FsQueue::_qid

Far endpoint queue id.

Definition at line 52 of file fsqueue.h.

guint32 _FsQueue::_sessionid

Current session id for this Queue.

Definition at line 48 of file fsqueue.h.

Referenced by _fsprotocol_ackseqno().

gint(* _FsQueue::ackthrough) (FsQueue *self, SeqnoFrame *)

ACK packets through given seqno.

Returns
number of packets ACKED - or -1 for bad ACK

Definition at line 64 of file fsqueue.h.

Referenced by _fsprotocol_receive().

AssimObj _FsQueue::baseclass

base AssimObj class object

Definition at line 46 of file fsqueue.h.

Referenced by _fsprotocol_auditiready(), _fsprotocol_fsa(), and _fsprotocol_log_conn().

FrameSet*(* _FsQueue::deq) (FsQueue *self)

return and remove head packet

Definition at line 63 of file fsqueue.h.

Referenced by _fsprotocol_read().

gboolean(* _FsQueue::enq) (FsQueue *self, FrameSet *fs)

Enqueue an outgoing FrameSet - adding seqno ONLY for output queues.

Note that it appends to the tail of the queue, not inserting at the head.

Definition at line 54 of file fsqueue.h.

Referenced by _fsprotocol_send1().

void(* _FsQueue::flush) (FsQueue *self)

flush all FrameSet in the queue

Definition at line 66 of file fsqueue.h.

void(* _FsQueue::flush1) (FsQueue *self)

flush head FrameSet in the queue

Definition at line 67 of file fsqueue.h.

Referenced by _fsprotocol_flush_pending_connshut().

guint(* _FsQueue::getmaxqlen) (FsQueue *self)

return max q length

Definition at line 70 of file fsqueue.h.

gboolean(* _FsQueue::hasqspace) (FsQueue *self, guint)

TRUE if space for desired packets available.

Definition at line 72 of file fsqueue.h.

Referenced by _fsprotocol_send().

gboolean(* _FsQueue::hasqspace1) (FsQueue *self)

TRUE if space for one more FrameSet.

Definition at line 71 of file fsqueue.h.

gboolean(* _FsQueue::inqsorted) (FsQueue *, FrameSet *fs)

Enqueue an incoming FrameSet - sorted by sequence # - no dups allowed Used ONLY for input queues, or unsequenced frames on output queues.

Definition at line 58 of file fsqueue.h.

Referenced by _fsprotocol_receive().

gboolean _FsQueue::isready

TRUE when ready for I or O (depending)

Definition at line 53 of file fsqueue.h.

Referenced by _fsprotocol_auditiready(), _fsprotocol_read(), and _fsprotocol_receive().

FrameSet*(* _FsQueue::qhead) (FsQueue *self)

return packet at head of queue

Definition at line 62 of file fsqueue.h.

Referenced by _fsprotocol_auditiready(), _fsprotocol_flush_pending_connshut(), _fsprotocol_read(), and _fsprotocol_xmitifwecan().

guint(* _FsQueue::qlen) (FsQueue *self)

return current queue length

Definition at line 68 of file fsqueue.h.

void(* _FsQueue::setmaxqlen) (FsQueue *self, guint max)

set maximum queue length

Definition at line 69 of file fsqueue.h.


The documentation for this struct was generated from the following file: