메세지 관리를 위한 스트림 클래스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef __STREAM
#define __STREAM
 
namespace MySream
{
    class CStream
    {
    public:
        CStream(VOID);
        ~CStream(VOID);
 
    private:
        BYTE *mBufferPointer;
        DWORD mLength;
 
    public:
        BOOL SetBuffer(BYTE *buffer);
 
    public:
        template <typename T>
        BOOL ReadData(T* Data)
        {    
            CopyMemory(Data, mBufferPointer + mLength, sizeof(T));
 
            mLength += sizeof(T);
 
            return TRUE;
        }
 
        template <typename T>
        BOOL WriteData(T Data)
        {
            CopyMemory(mBufferPointer + mLength, &Data, sizeof(T));
 
            mLength += sizeof(T);
 
            return TRUE;
        }
 
        DWORD GetLength(VOID)
        {
            return mLength;
        }
    };
 
    class CStreamSP
    {
    public:
        CStreamSP(VOID)  { Stream = new CStream(); }
        ~CStreamSP(VOID) { delete Stream; }
 
        CStream* operator->(VOID) 
        {  return Stream; }
        operator CStream*(VOID)  
        {  return Stream; }
 
    private:
        CStream    *Stream;
    };
}
 
#endif


'게임개발공부 > 무작정퍼오기' 카테고리의 다른 글

컨테이너 종류 복습  (0) 2013.12.21
텍스처 아틀라스  (0) 2013.12.20
맴버함수를 쓰레드로 쓰는법  (0) 2013.11.27
assert 사용법  (0) 2013.11.27
<소켓 서버> sockaddr  (0) 2013.11.25
Posted by JJOREG