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

beepsession.h

Go to the documentation of this file.
00001 
00046 #ifndef __LIB3195_BEEPSESSION_H_INCLUDED__
00047 #define __LIB3195_BEEPSESSION_H_INCLUDED__ 1
00048 #define sbSessCHECKVALIDOBJECT(x) {assert((x) != NULL); assert((x)->OID == OIDsbSess);}
00049 
00050 struct sbMesgObject;
00051 
00052 #include "beepchannel.h"
00053 #include "beepprofile.h"
00054 
00055 #if FEATURE_LISTENER == 1
00056 
00057         enum sbSessState_
00058         {
00059                 sbSESSSTATE_OPEN,
00060                 sbSESSSTATE_CLOSED,                     
00063                 sbSESSSTATE_UNKNOWN = 0         
00064         };
00065         typedef enum sbSessState_ sbSessState;
00066 
00067         enum sbSessTXState_
00068         {
00069                 sbSESSTXSTATE_NO_TX_PENDING,    
00070                 sbSESSTXSTATE_IN_TX,                    
00071                 sbSESSTXSTATE_UNKNOWN = 0               
00072         };
00073         typedef enum sbSessTXState_ sbSessTXState;
00074 #endif
00075 
00076 struct sbChanObject;
00077 struct sbChanObject;
00078 struct sbFramObject;
00079 struct sbNVTRObject;
00080 struct sbSessObject 
00084 {       
00085         srObjID OID;                                            
00086         srRetVal iLastErr;                                      
00087         struct sbSockObject *pSock;                     
00088         struct sbChanObject *pChan0;            
00090         struct sbNVTRObject *pChannels;         
00091         struct sbNVTRObject* pRXQue;            
00092         struct sbNVTRObject *pRemoteProfiles; 
00093         srRetVal (*SendFramMethod)(struct sbSessObject *, struct sbFramObject *, struct sbChanObject *); 
00095         struct sbNVTRObject *pProfilesSupported;
00096 #if FEATURE_LISTENER == 1
00097         sbSessState iState;                                             
00098         sbSessTXState iTXState;                                 
00099         struct sbNVTRObject *pSendQue;                  
00100         struct sbFramObject *pRecvFrame;                
00101         int     bNeedData;                                                      
00102 #endif
00103 };
00104 typedef struct sbSessObject sbSessObj;
00105 
00115 sbSessObj* sbSessOpenSession(char* pszRemotePeer, int iPort, struct sbNVTRObject *pProfSupported);
00116 srRetVal sbSessCloseSession(sbSessObj *pThis);
00117 
00118 
00119 /* The following three macros could also be inline code.
00120  * For now, I have kept them to be macros to make 
00121  * facilitate porting.
00122  */
00123 
00125 #define sbSessGetLastError(pThis) pThis->iLastErr
00126 
00128 #define sbSessSetLastError(pThis, iRet) pThis->iLastErr = iRet
00129 
00131 #define sbSessResetLastError(pThis) pThis->iLastErr = SR_RET_OK
00132 
00142 struct sbChanObject* sbSessRetrChanObj(sbSessObj *pThis, SBchannel uChanNo);
00143 
00156 struct sbFramObject* sbSessRecvFram(sbSessObj* pThis, struct sbChanObject  *pChan);
00157 
00170 struct sbChanObject* sbSessOpenChan(sbSessObj* pThis);
00171 
00192 srRetVal sbSessCloseChan(sbSessObj *pThis, struct sbChanObject *pChan);
00193 
00201 srRetVal sbSessCloseSession(sbSessObj *pThis);
00202 
00218 srRetVal sbSessDoReceive(sbSessObj *pThis, int bMustRcvPayloadFrame);
00219 
00232 srRetVal sbSessSendFram(sbSessObj *pThis, struct sbFramObject *pFram, struct sbChanObject *pChan);
00233 
00239 void sbSessDestroy(sbSessObj *pThis);
00240 
00247 srRetVal sbSessRemoteOpen(sbSessObj **pThis, sbSockObj *pSock, struct sbNVTRObject *pProfSupported);
00248 
00260 void sbSessAbort(sbSessObj *pThis);
00261 
00269 srRetVal sbSessProcessGreeting(struct sbSessObject *pThis, struct sbMesgObject *pMesg);
00270 
00282 srRetVal sbSessSendGreeting(struct sbSessObject* pSess, struct sbNVTRObject *pProfsSupported);
00283 
00284 
00285 #endif

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