Main Page | Compound List | File List | Compound Members | File Members | Related Pages

beepframe.h

Go to the documentation of this file.
00001 
00042 #ifndef __LIB3195_BEEPFRAME_H_INCLUDED__
00043 #define __LIB3195_BEEPFRAME_H_INCLUDED__ 1
00044 
00045 #include "beepmessage.h"
00046 #include "beepchannel.h"
00047 #define sbFramCHECKVALIDOBJECT(x) {assert(x != NULL); assert(x->OID == OIDsbFram);}
00048 
00050 enum sbFramState_
00051 {
00052         /* RX flags */
00053         sbFRAMSTATE_WAITING_HDR1,       
00054         sbFRAMSTATE_WAITING_HDR2,       
00055         sbFRAMSTATE_WAITING_HDR3,       
00056         sbFRAMSTATE_WAITING_SP_CHAN,
00057         sbFRAMSTATE_IN_CHAN,            
00058         sbFRAMSTATE_WAITING_SP_MSGNO,
00059         sbFRAMSTATE_IN_MSGNO,           
00060         sbFRAMSTATE_WAITING_SP_MORE,
00061         sbFRAMSTATE_IN_MORE,            
00062         sbFRAMSTATE_WAITING_SP_SEQNO,
00063         sbFRAMSTATE_IN_SEQNO,           
00064         sbFRAMSTATE_WAITING_SP_SIZE,
00065         sbFRAMSTATE_IN_SIZE,            
00066         sbFRAMSTATE_WAITING_SP_ANSNO,
00067         sbFRAMSTATE_IN_ANSNO,           
00068         sbFRAMSTATE_WAITING_SP_ACKNO,
00069         sbFRAMSTATE_IN_ACKNO,           
00070         sbFRAMSTATE_WAITING_SP_WINDOW,
00071         sbFRAMSTATE_IN_WINDOW,          
00072         sbFRAMSTATE_WAITING_HDRCR,      
00073         sbFRAMSTATE_WAITING_HDRLF,      
00074         sbFRAMSTATE_IN_PAYLOAD,         
00075         sbFRAMSTATE_WAITING_END1,       
00076         sbFRAMSTATE_WAITING_END2,       
00077         sbFRAMSTATE_WAITING_END3,       
00078         sbFRAMSTATE_WAITING_END4,       
00079         sbFRAMSTATE_WAITING_END5,       
00080         sbFRAMSTATE_RECEIVED,           
00082         /* TX flags */
00083         sbFRAMSTATE_BEING_BUILD,        
00084         sbFRAMSTATE_READY_TO_SEND,      
00085         sbFRAMSTATE_SENDING,            
00086         sbFRAMSTATE_SENT,                       
00088         sbFRAMSTATE_UNKNOWN = 0         
00089 };
00090 typedef enum sbFramState_ sbFramState;
00091 
00092 struct sbFramObject
00096 {       
00097         srObjID OID;                            
00098         struct sMesgObject* pMsg;       
00101         sbFramState iState;                     
00102         char* szRawBuf;                         
00103         int iFrameLen;                          
00104         BEEPHdrID idHdr;                        
00105         SBackno uAckno;                         
00106         SBwindow uWindow;                       
00107         SBchannel uChannel;                     
00108         SBmsgno uMsgno;                         
00109         SBseqno uSeqno;                         
00110         SBsize uSize;                           
00111         char cMore;                                     
00112         SBansno uAnsno;                         
00113 #if FEATURE_LISTENER == 1
00114         unsigned uBytesSend;            
00115         struct sbChanObject *pChan;     
00116         struct sbStrBObject *pStrBuf;
00117         unsigned uToReceive;            
00118         void (*OnFramDestroy)(struct sbFramObject*);    
00119         void* pUsr;                                     
00120 #endif
00121 };
00122 typedef struct sbFramObject sbFramObj;
00123 
00124 char* sbFramGetFrame(sbFramObj* pThis); 
00125 int sbFramGetFrameLen(sbFramObj* pThis); 
00126 BEEPHdrID sbFramGetHdrID(sbFramObj *pThis); 
00128 srRetVal sbFramDestroy(sbFramObj *pThis); 
00150 sbFramObj* sbFramCreateFramFromMesg(sbChanObj* pChan, sbMesgObj* pMesg, char* pszCmd, SBansno uAnsno);
00151 
00171 sbFramObj* sbFramActualRecvFram(sbSessObj *pSess);
00172 
00183 sbFramObj* sbFramRecvFram(sbChanObj* pChan);
00184 
00197 srRetVal sbFramSendFram(sbFramObj* pThis, sbChanObj*pChan);
00198 
00208 BEEPHdrID sbFramHdrID(char* szCmd);
00209 
00214 srRetVal sbFramConstruct(sbFramObj **ppThis);
00215 
00224 srRetVal sbFramCreateSEQFram(sbFramObj **ppThis, sbChanObj* pChan, SBackno uAckno, SBwindow uWindow);
00225 
00234 srRetVal sbFramSetOnDestroyEvent(sbFramObj *pThis, void (*OnFramDestroy)(struct sbFramObject *), void *pUsr);
00235 
00236 #endif

Generated on Mon Oct 3 12:29:55 2005 for liblogging by doxygen 1.3.2