루리웹 5노답
구름나무
CloudTree

구름나무
접속 : 5365   Lv. 62

Category

Profile

Counter

  • 오늘 : 88 명
  • 전체 : 345810 명
  • Mypi Ver. 0.3.1 β
[..프로그래밍..] 자주쓰는 클래스를 하나로 묶어묶어~ (3) 2012/11/23 AM 11:13

자주 쓰는데 쓸때마다 치기도 귀찮고, 한동안 안쓰다 또 쓰려면 까먹고 귀찮아서
자주 쓰는 모듈들을 개인용 클래스 하나로 묶어버렸습니다. 라이브러리로 뽑을까도 싶은데.. 매우 귀찮..;;




PreDefined.h

 

 각 모듈에서 그때그때 필요에 따라 재정의할 것들만 밖으로 빼놓은 헤더.


CloudTree.h


 CloudTree 클래스와 각 모듈에서 필요한 클래스 정의가 들어있는 헤더. 

 

CloudTree.cpp


 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_xdouble src_ydouble dest_xdouble dext_y);
// x-y 2차원 좌표간 거리 반환.

double EuclideanDistance(double src_xdouble src_ydouble src_z
double dest_xdouble dest_ydouble dest_z); // x-y-z 3차원 좌표간 거리 반환.

double Gaussian(double meandouble stdev); // mean을 기준으로 stdev를 표준편차로 하는 가우시안 랜덤값 반환.

// 공유 메모리 할당과 해제 모듈
void *CreateSharedMem(HANDLE hMappingint sizechar * str); // 공유메모리 할당.
void DestroySharedMem(HANDLE hMappingvoid * 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* chvoid* parent); // 서버 리시브 콜백함수 설정.
void DestroyTCPServer(); // TCP 서버 해제.

// TCP/IP 클라이언트 모듈
void CreateTCPClient(); // TCP 클라이언트 생성.
void AddRecieveCallbackClient(void* chvoid* 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. 추후 활용빈도에 따라 모듈을 첨삭하며 버전업할 예정입니다.

신고

 

불타는 김치덮밥    친구신청

앗, 달롱넷 운영자 이신가요? ...가 아니라
선택받은 달롱넷 회원이시군요 ㅋㅋㅋ

건프라를 엄청나게 좋아하진 않지만
달롱넷은 대단한 곳이라고 생각하고 있습니다 ㅎㅎ

흠냐뤼    친구신청

으 c++이다

구름나무    친구신청

불타는 김치덮밥 님 // 삼수해서 회원가입되고 활동한지는 3년 다되어가네요 ^^;;
흠냐뤼 님 // C++ 이지만 사실상 C++을 잘 못하는 분들이라도 쉽게 쓸 수 있게끔 레퍼런스들을 만들어보려구요ㅎㅎ
X