123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- /****************************************************************************
- * @source : VMSThread.h
- * @description : VMS Server Socket Thread header
- ****************************************************************************
- * DATE AUTHOR DESCRIPTION
- * --------------------------------------------------------------------------
- * 2012/03/09 CYM [100] First Cut
- *
- ****************************************************************************/
- //---------------------------------------------------------------------------
- #ifndef VMSThreadH
- #define VMSThreadH
- //---------------------------------------------------------------------------
- #include <Classes.hpp>
- #include <Sockets.hpp>
- #include "VMSProtocol.h"
- //---------------------------------------------------------------------------
- /***************************************
- **
- ** Constants
- **
- */
- #define SERVER_MSG_BUF_SIZE 65536 /* message buffer size */
- #define SERVER_MAX_PACKET_SIZE 65536 /* max packet size */
- #define SERVER_CONNECT_RETRY_TIME 20 /* connect retry time */
- enum {
- /* common */
- ST_IDLE = 1,
- ST_INITIATE,
- ST_SECTION,
- ST_CLOSE,
- /* sender */
- ST_LOCAL_COMMAND,
- ST_CLIENT_COMMAND,
- /* receiver */
- ST_LOCAL_WAIT,
- ST_CLIENT_WAIT
- };
- enum {
- SET_SERVER_SUCC,
- SET_SERVER_FAIL
- };
- /***************************************
- **
- ** Type definitions
- **
- */
- typedef struct {
- BOOL GeneralStatus; /* 기본상태정보 */
- BOOL ModuleStatus; /* 모듈상태정보 */
- } ACCEPT_REGISTERED;
- typedef union {
- } COMMAND_ARGUMENT;
- //---------------------------------------------------------------------------
- class TVMSThread : public TClientSocketThread
- {
- private:
- TCustomIpClient* pClientSocket;
- bool *ThreadActiveIndicator;
- AnsiString m_strName; /* thread name */
- int m_RxLen; /* received data length */
- int m_TxLen; /* data length to transmit */
- BYTE m_RxBuff[SERVER_MAX_PACKET_SIZE]; /* receive data buffer */
- BYTE m_TxBuff[SERVER_MAX_PACKET_SIZE]; /* transmit data buffer */
- TDateTime m_rTimer; /* timer for receiver */
- TDateTime m_WatchDogTimer; /* watchdog timer */
- TCOMMLOG *m_Log; /* log */
- SERVER_THREAD_STRUCT m_Server; /* server thread */
- bool m_InitFlag; /* Init Flag */
- DWORD m_DataPacketNumber; /* DataPacket Number */
- DWORD m_FrEDConfirmPacketNumber; /* FrEDConfirmPacket Number */
- bool m_LoginFlag; /* Login Flag */
- DWORD m_PublishSerialNbr; /* Publish Serial Nbr */
- ACCEPT_REGISTERED m_Registered; /* Accept Registered Subscription */
- VMS_CURRENT_STATE *m_pState; /* VMS 상태 정보 */
- REQ_INFO_STRUCT m_Req; /* client request */
- SET_INFO_STRUCT m_Set; /* client set */
- int __fastcall ServerInitMem(void);
- void __fastcall ServerInitInfo(void);
- void __fastcall ServerTerminate(void);
- void ProcLog(BYTE bKind, char *fmt, ...);
- void __fastcall LOG_WriteTime(Time_t *pTime);
- int __fastcall SaveStateData(void *pData);
- void __fastcall ClientResponse(int error);
- int __fastcall SendCommMessage(UINT Msg, int wParam, int lParam);
- int __fastcall SendCommDataMessage(UINT Msg, void *pData, int iLen);
- int __fastcall RecvPacket(void *Data, int Len);
- int __fastcall ProcessPacket(BYTE *pBuffer, int Len);
- int __fastcall SendPacket(void *Data, int Len);
- int __fastcall ProcessCommand(BYTE cmd, COMMAND_ARGUMENT *pArg);
- void __fastcall ServerStateMachine(void);
- void __fastcall ProcErrorState(bool flag, int result);
- void __fastcall SetServerState(int Case);
- int __fastcall CheckRegistered();
- int __fastcall CheckLocalData(bool *pflag);
- int __fastcall CheckClientData(bool *pflag);
- protected:
- void __fastcall Execute();
- void __fastcall TcpServerClientError(TObject *Sender, int SocketError);
- bool __fastcall SocketActivity(void);
- public:
- __fastcall TVMSThread(TServerSocketThread* ServerSocketThread, TCustomIpClient* ClientSocket, int Tag, bool *ActiveIndicator);
- __fastcall ~TVMSThread();
- };
- //---------------------------------------------------------------------------
- #endif
|