자주 쓰는데 쓸때마다 치기도 귀찮고, 한동안 안쓰다 또 쓰려면 까먹고 귀찮아서 자주 쓰는 모듈들을 개인용 클래스 하나로 묶어버렸습니다. 라이브러리로 뽑을까도 싶은데.. 매우 귀찮..;;
|
각 모듈에서 그때그때 필요에 따라 재정의할 것들만 밖으로 빼놓은 헤더. |
CloudTree 클래스와 각 모듈에서 필요한 클래스 정의가 들어있는 헤더. | |
|
CloudTree 클래스와 각 모듈이 구현되어 있는 소스파일. |
소스코드가 있는 폴더에 위 세파일 복사하고, class view에서 각 파일 등록해준 후 쓰면 됨.
당연한 말이지만, Cloudtree 클래스 포인터 선언할 곳에 #include "CloudTree.h" 포함하는건 기본 센스아니겠음?!
version : 0.01
date : 2012. 11. 22
class CloudTree // 개인용 레퍼런스 클래스 { public: CloudTree(void); ~CloudTree(void); // 자주쓰는 수학 모듈 double EuclideanDistance(double src_x, double src_y, double dest_x, double dext_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 서버 모듈 void CreateTCPServer(); // TCP 서버 생성. void AddRecieveCallbackServer(void* ch, void* parent); // 서버 리시브 콜백함수 설정. void DestroyTCPServer(); // TCP 서버 해제. // TCP/IP 클라이언트 모듈 void CreateTCPClient(); // TCP 클라이언트 생성. void AddRecieveCallbackClient(void* ch, void* parent); // 클라이언트 리시브 콜백함수 설정. void DestroyTCPClient(); // TCP 클라이언트 해제. private: // 생략 데헷~♡ } |
이렇게까지 설명해줬는데 행여라도 어떻게 쓰는지 모른다는 사람이 있을까봐 써보는 간단한 활용 예제.
CloudTree * cloudtree = new CloudTree (); cloudtree->CreateSharedMemSimple(); cloudtree->DestroySharedMemSimple(); |
Cloudtree형 클래스 포인터 하나 만들어서 각 모듈 불러오면 됩니다.
공유메모리 모듈의 경우 두가지가 있는데, 일반 모듈은 직접 정의해서 쓰고 싶을때 쓰시고 Simple 붙은 모듈은 그냥 호출만 하시면 PreDefined.h에 정의된 stShareData 구조체의 포인터 m_pShared를 통해 공유 메모리에 접근할 수 있습니다.
stShareData 구조체는 필요에 따라 각자 알아서 수정해서 쓰시면 됩니다.
TCP/IP 서버와 클라이언트 모듈의 경우 각 Send() 모듈을 만드는 중인데, 어떻게 만들어야 누가 써도 편할까 고민중이라..
뭐 어쨋든 조만간 업데이트 예정입니다.
ps. 추후 활용빈도에 따라 모듈을 첨삭하며 버전업할 예정입니다.