Junichi Katsu / PacketBuffer
Committer:
jksoft
Date:
Thu Aug 25 02:15:08 2011 +0000
Revision:
1:039fb6d44f92
Parent:
0:0e4cbd5ddf25

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jksoft 0:0e4cbd5ddf25 1
jksoft 0:0e4cbd5ddf25 2
jksoft 0:0e4cbd5ddf25 3 /** @file PacketBuffer.h
jksoft 0:0e4cbd5ddf25 4 * @brief Packet Buffer
jksoft 0:0e4cbd5ddf25 5 */
jksoft 0:0e4cbd5ddf25 6
jksoft 0:0e4cbd5ddf25 7 #ifndef PacketBuffer_H
jksoft 0:0e4cbd5ddf25 8 #define PacketBuffer_H
jksoft 0:0e4cbd5ddf25 9
jksoft 0:0e4cbd5ddf25 10 #include "mbed.h"
jksoft 0:0e4cbd5ddf25 11
jksoft 0:0e4cbd5ddf25 12 typedef struct
jksoft 0:0e4cbd5ddf25 13 {
jksoft 0:0e4cbd5ddf25 14 char *buf;
jksoft 0:0e4cbd5ddf25 15 int size;
jksoft 0:0e4cbd5ddf25 16 } PacketBufInf;
jksoft 0:0e4cbd5ddf25 17
jksoft 0:0e4cbd5ddf25 18 class PacketBuffer {
jksoft 0:0e4cbd5ddf25 19 public:
jksoft 0:0e4cbd5ddf25 20 /** init Stack class
jksoft 0:0e4cbd5ddf25 21 * @param num buffering packet num
jksoft 0:0e4cbd5ddf25 22 * @param packet_size size of packet(max size)
jksoft 0:0e4cbd5ddf25 23 */
jksoft 0:0e4cbd5ddf25 24 PacketBuffer(int num,int packet_size);
jksoft 0:0e4cbd5ddf25 25 ~PacketBuffer();
jksoft 0:0e4cbd5ddf25 26
jksoft 0:0e4cbd5ddf25 27 /** put to Packet buffer
jksoft 0:0e4cbd5ddf25 28 * @param packet packet data
jksoft 0:0e4cbd5ddf25 29 * @param len packet length
jksoft 0:0e4cbd5ddf25 30 * @return put length
jksoft 0:0e4cbd5ddf25 31 */
jksoft 0:0e4cbd5ddf25 32 int PutPacket(char *packet, int len);
jksoft 0:0e4cbd5ddf25 33
jksoft 0:0e4cbd5ddf25 34 /** get from ring buffer
jksoft 0:0e4cbd5ddf25 35 * @param packet packet data
jksoft 0:0e4cbd5ddf25 36 * @return get length
jksoft 0:0e4cbd5ddf25 37 */
jksoft 0:0e4cbd5ddf25 38 int GetPacket(char *packet);
jksoft 0:0e4cbd5ddf25 39
jksoft 0:0e4cbd5ddf25 40 void clear();
jksoft 0:0e4cbd5ddf25 41 int available();
jksoft 0:0e4cbd5ddf25 42 int use();
jksoft 0:0e4cbd5ddf25 43
jksoft 0:0e4cbd5ddf25 44 private:
jksoft 0:0e4cbd5ddf25 45 PacketBufInf *p_buf;
jksoft 0:0e4cbd5ddf25 46 int max_num,max_size;
jksoft 0:0e4cbd5ddf25 47 int addr_w, addr_r;
jksoft 0:0e4cbd5ddf25 48 };
jksoft 0:0e4cbd5ddf25 49 #endif