1*76404edcSAsim Jamshed #ifndef __APP_RELAYBUFFER
2*76404edcSAsim Jamshed #define __APP_RELAYBUFFER
3*76404edcSAsim Jamshed 
4*76404edcSAsim Jamshed #include <mtcp_api.h>
5*76404edcSAsim Jamshed 
6*76404edcSAsim Jamshed #define MAX_REP_LEN (10*1024)
7*76404edcSAsim Jamshed 
8*76404edcSAsim Jamshed typedef struct ring_buffer ring_buffer;
9*76404edcSAsim Jamshed 
10*76404edcSAsim Jamshed ring_buffer* InitBuffer(int size);
11*76404edcSAsim Jamshed 
12*76404edcSAsim Jamshed int GetTotSizeRBuffer(ring_buffer* r_buff);
13*76404edcSAsim Jamshed int GetDataSizeRBuffer(ring_buffer* r_buff);
14*76404edcSAsim Jamshed int GetCumSizeRBuffer(ring_buffer* r_buff);
15*76404edcSAsim Jamshed int GetRemainBufferSize(ring_buffer *r_buff);
16*76404edcSAsim Jamshed int CheckAvailableSize(ring_buffer *r_buff, int size);
17*76404edcSAsim Jamshed 
18*76404edcSAsim Jamshed u_char* GetDataPoint(ring_buffer* r_buff);
19*76404edcSAsim Jamshed u_char* GetInputPoint(ring_buffer *r_buff);
20*76404edcSAsim Jamshed 
21*76404edcSAsim Jamshed int RemoveDataFromBuffer(ring_buffer *r_buff, int size);
22*76404edcSAsim Jamshed int AddDataLen(ring_buffer *r_buffer, int size);
23*76404edcSAsim Jamshed 
24*76404edcSAsim Jamshed int CopyData(ring_buffer *dest_buff, ring_buffer *src_buff, int len);
25*76404edcSAsim Jamshed int MoveData(ring_buffer *dest_buff, ring_buffer *src_buff, int len);
26*76404edcSAsim Jamshed int MoveToREPData(ring_buffer *dest_buff, ring_buffer *src_buff, int len);
27*76404edcSAsim Jamshed 
28*76404edcSAsim Jamshed int MtcpWriteFromBuffer(mctx_t mtcp, int fid, ring_buffer *r_buff);
29*76404edcSAsim Jamshed int MtcpReadFromBuffer(mctx_t mtcp, int fid, ring_buffer *r_buff);
30*76404edcSAsim Jamshed 
31*76404edcSAsim Jamshed #endif
32