OSDN Git Service

(none)
[hos/hos-v4a.git] / aplfw / library / container / streambuf / streambuf_recvchar.c
1 /** 
2  *  Hyper Operating System  Application Framework
3  *
4  * @file  streambuf.h
5  * @brief %jp{ストリームデータ用バッファクラス}
6  *
7  * Copyright (C) 2002-2007 by Project HOS
8  * http://sourceforge.jp/projects/hos/
9  */
10
11
12 #include "streambuf_local.h"
13
14
15 /** 1キャラクタの受信 */
16 int StreamBuf_RecvChar(C_STREAMBUF *self)
17 {
18         unsigned int    uiNextHead;
19         int                             c;
20
21         /* バッファエンプティ−チェック */
22         if ( self->uiHead == self->uiTail )
23         {
24                 return -1;      /* 失敗 */
25         }
26
27         /* 1キャラクタ受信 */
28         c = *(self->pubBuf + self->uiHead);
29
30         /* 次の位置を計算 */
31         uiNextHead = self->uiHead + 1;
32         if ( uiNextHead >= self->uiBufSize )
33         {
34                 uiNextHead = 0;
35         }
36         self->uiHead = uiNextHead;
37
38         return c;       /* 成功 */
39 }
40
41
42 /* end of file */