SDC C-Project CF Review 프로그램
LYW
2021-07-08 e10b8c2a3f6ee6b639dbb49ff6635d0657531d1e
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
 
#pragma once
 
 
 
#include "akNetworkLinker.h"
#include <WinSock2.h>
 
#include "akThread.h"
#include "akPacketStorage.h"
 
class AKNETWORK_DLLSPEC CakPIPEClient : public CakThreadInterface
{
public:
    typedef void (*SystemMsgFunc) (char* pMsg, int nMsglen, void*);
 
public:
     CakPIPEClient(void);
     ~CakPIPEClient(void);
 
    void setServerName(char* pServerName);
 
    // ½Ã½ºÅÛ ¸Þ¼¼Áö ¼ö½Å Äݹ頼³Á¤
    void SetSystemMessageCallback(SystemMsgFunc userFunc, void* data = NULL);
    // ¸Þ¼¼Áö Àü¼Û
    bool Send(char* pSend, int nLen);
    bool SendForce(char* pSend, int nLen, int nWaitTimeMS=0);
    bool SendLarge(char* pSend, long nLen, int nWaitTimeMS=0);
 
 
protected:
    void setSystemMsg(const char* pMsg, ...);
 
    SystemMsgFunc m_systemmsgFunc;
    void* m_systemmsgData;
 
    virtual void threadRun();
 
protected:
    CPacketStorage m_PacketSorageSend;
    CakThread    m_akThread;
    int m_nWaitTime;//0
    HANDLE m_hNamedPipe;
    DWORD m_nNumberOfBytesWritten;
    char m_strPipename[64];// = L"\\\\.\\pipe\\MyNamedPipe";// ÆÄÀÌÇÁ ¿ÀºêÁ§Æ® À̸§
    //CRITICAL_SECTION                    m_csSendSafe;
 
//     class queueData
//     {
//     public:
//         queueData()
//         {
//             m_nLen = 0;
//             m_pData = NULL;
//         };
//         queueData(const queueData& rhs)
//         {
//             m_nLen = 0;
//             m_pData = NULL;
//
//             if(rhs.m_nLen > 0)
//             {
//                 m_pData = new char[rhs.m_nLen+1];
//                 memcpy(m_pData, rhs.m_pData, sizeof(char)*(rhs.m_nLen));
//                 m_pData[rhs.m_nLen] = 0;
//                 m_nLen = rhs.m_nLen;
//             }
//         }
//         ~queueData()
//         {
//             clear();
//         };
//         queueData& operator=(const queueData& rhs)
//         {
//             clear();
//             if(rhs.m_nLen > 0)
//             {
//                 m_pData = new char[rhs.m_nLen+1];
//                 memcpy(m_pData, rhs.m_pData, sizeof(char)*(rhs.m_nLen));
//                 m_pData[rhs.m_nLen] = 0;
//                 m_nLen = rhs.m_nLen;
//             }
//             return *this;
//         };
//         void clear()
//         {
//             if(m_nLen > 0)
//             {
//                 delete [] m_pData;
//                 m_pData = NULL;
//                 m_nLen = 0;
//             }
//         }
//         void setData(char* pData, long nLen)
//         {
//             clear();
//             if(nLen <= 0 || pData == NULL)
//             {
//                 return;
//             }
//
//             m_pData = new char[nLen+1];
//             memcpy(m_pData, pData, sizeof(char)*nLen);
//             m_pData[nLen] = 0;
//             m_nLen = nLen;
//         }
//
//         //char Data[4096];
//         char* m_pData;
//         long m_nLen;
//     };
//     std::queue<queueData> m_queSendData;
};