#pragma once #include "PreDefined.h" #include #include #include #define PI 3.141592 typedef void (WINAPIV * CallbackFn)(char *data, int size, void *pClass); class CServerModule // TCP ¼­¹ö Ŭ·¡½º { public: CServerModule(void); ~CServerModule(void); void ServerInit(const char *FileName); void TCPStart(); int TCPSend(char *data , int size); void addCallback(void *ch , void *parent); BOOL getConnectionState(void); CallbackFn ReceiveFn; void *m_parent; char TCPBuffer[TCPIP_BUFFER_MAX]; bool m_bExit; protected: bool is_connected; private: static void TcpThreadProc(void *pParam); static int TryConnect(void* pParam); SOCKET m_serverSocket, m_clientSocket; // Server Socket sockaddr_in m_server_addr, m_client_addr; int m_clientLen; public: char m_ip[16]; short m_port; }; class CClientModule // TCP Ŭ¶óÀ̾ðÆ® Ŭ·¡½º { public: CClientModule(void); ~CClientModule(void); void ClientInit(const char* FileName); void TCPStart(); int TCPSend(char *data, int size); void addCallback(void *ch , void *parent); BOOL getConnectionState(void); CallbackFn ReceiveFn; void *m_parent; char TCPBuffer[TCPIP_BUFFER_MAX]; bool m_bExit; protected: bool is_connected; private: static void TCPThreadProc(void *pParam); char m_ip[16]; short m_port; SOCKET m_clientSocket; sockaddr_in m_client_addr; }; class CloudTree // °³ÀÎ¿ë ·¹ÆÛ·±½º Ŭ·¡½º { public: CloudTree(void); ~CloudTree(void); // ÀÚÁÖ¾²´Â ¼öÇÐ ¸ðµâ double EuclideanDistance(double src_x, double src_y, double dest_x, double dest_y); // x-y 2Â÷¿ø ÁÂÇ¥°£ °Å¸® ¹Ýȯ. double EuclideanDistance(double src_x, double src_y, double src_z, double dest_x, double dest_y, double dest_z); // x-y-z 3Â÷¿ø ÁÂÇ¥°£ °Å¸® ¹Ýȯ. double Gaussian(double mean, double stdev); // meanÀ» ±âÁØÀ¸·Î stdev¸¦ Ç¥ÁØÆíÂ÷·Î ÇÏ´Â °¡¿ì½Ã¾È ·£´ý°ª ¹Ýȯ. // °øÀ¯ ¸Þ¸ð¸® ÇÒ´ç°ú ÇØÁ¦ ¸ðµâ void *CreateSharedMem(HANDLE hMapping, int size, char * str); // °øÀ¯¸Þ¸ð¸® ÇÒ´ç. void DestroySharedMem(HANDLE hMapping, void * mapptr); // °øÀ¯¸Þ¸ð¸® ÇØÁ¦. // °£ÆíÇÏ°Ô ¾²µµ·Ï ¸¸µé¾îµÐ °øÀ¯ ¸Þ¸ð¸® ¸ðµâ // PreDefined.h¿¡ Á¤ÀÇµÈ stShareData ±¸Á¶Ã¼¿Í stShareData* m_pShared¸¦ »ç¿ë. void CreateSharedMemSimple(); // stShareData* m_pShared ¿¡ ¿¬µ¿µÇ´Â °øÀ¯¸Þ¸ð¸® ÀÚµ¿ ÇÒ´ç. void DestroySharedMemSimple(); // stShareData* m_pShared ¿¡ ¿¬µ¿µÇ´Â °øÀ¯¸Þ¸ð¸® ÀÚµ¿ ÇØÁ¦. // Ŭ·°Å¸À̸Ӹ¦ ÀÌ¿ëÇÑ °æ°ú½Ã°£ üũ ¸ðµâ double GetDuration(clock_t start_time); // ÀÔ·Â ÀÎÀÚ start_time À¸·ÎºÎÅÍ ¸îÃÊ°¡ Áö³µ´ÂÁö¸¦ ¹Ýȯ. // TCP/IP ¼­¹ö ¸ðµâ CServerModule *m_pTCPServer; // TCP ¼­¹ö Æ÷ÀÎÅÍ. void CreateTCPServer(); // TCP ¼­¹ö »ý¼º. void AddRecieveCallbackServer(void* ch, void* parent); // ¼­¹ö ¸®½Ãºê ÄݹéÇÔ¼ö ¼³Á¤. void DestroyTCPServer(); // TCP ¼­¹ö ÇØÁ¦. // TCP/IP Ŭ¶óÀ̾ðÆ® ¸ðµâ CClientModule *m_pTCPClient; // TCP Ŭ¶óÀ̾ðÆ® Æ÷ÀÎÅÍ. void CreateTCPClient(); // TCP Ŭ¶óÀ̾ðÆ® »ý¼º. void AddRecieveCallbackClient(void* ch, void* parent); // Ŭ¶óÀ̾ðÆ® ¸®½Ãºê ÄݹéÇÔ¼ö ¼³Á¤. void DestroyTCPClient(); // TCP Ŭ¶óÀ̾ðÆ® ÇØÁ¦. private: stShareData* m_pShared; // °øÀ¯¸Þ¸ð¸®¿¡ »ç¿ëÇÒ °ø¿ë µ¥ÀÌÅÍ ±¸Á¶Ã¼.. ÇÊ¿ä¿¡µû¶ó ¼öÁ¤ÇÏ¿© »ç¿ë. LPVOID lpMapFile; // ÇÒ´çµÈ °øÀ¯¸Þ¸ð¸®¸¦ À§ÇÑ ¸ÊÆÄÀÏ. HANDLE m_hMap; // °øÀ¯¸Þ¸ð¸® ÂüÁ¶¸¦ À§ÇÑ ÇÚµé. clock_t m_CurrentTime; // GetDuration() ¿¡¼­ ÇöÀç Ŭ·ÏŸÀÓÀ» ÀúÀåÇϱâ À§ÇÑ º¯¼ö. };