본문 바로가기

Boost6

thrift 에서 C++ library 가 설치가 안되는 경우 Building C++ Library ......... : no 가 나온 경우 필수 라이브러리가 설치가 안되있거나 configure에서 인식을 못하는 경우 두가지가 있다. 필수라이브러리 목록은 여기( http://thrift.apache.org/docs/install )를 참고하면 된다. BOOST library를 기본 경로에 설치하지 않고 자기계정의 특정 디렉토리에 설정한 경우 $BOOST_ROOT에 설치된 경로를 넣고 configure 실행시 --with-boost=$BOOST_ROOT 라고 입력하면 C++ libary가 잡히게 된다. 2012. 8. 27.
boost::shared_ptr 주의 : shared_ptr형은 "shared_ptr이 아닌 데이터형"의 주소를 복사할 수 없다. 왜냐하면, shared_ptr은 참조 횟수가 0일때 자동으로 메모리를 해제하게 되는데, 만약 해제할 메모리가 자기가 관리하는 영역밖의 것이라면 안정성을 보장할 수 없기 때문이다. 아래와 같은 것이 안된다는 것이다. (잘못된 예) int a = 3; boost::shared_ptr test; test = &a // Compile error 대입 자체가 안된다. 대입은 shared_ptr끼리만 된다. (*test)++; 주석에 쓴 것처럼 shared_ptr끼리의 주소 대입은 된다. shared_ptr중 적어도 한개는 내부에 메모리를 할당한 object를 가지고 있어야 하기 때문에, 결국 shared_ptr끼리 .. 2008. 10. 8.
boost::asio 를 이용한 asyncronous communication 클래스 소켓 요청이 들어오면 등록한 콜백함수를 호출하게 하는 형식으로 작성하였다. 사용시 참고바람 0. handler 함수 구현 (형태는 void (string, socket) 이지만 socketmanager를 변경하면 다른 타입도 가능) 1. io_service obj 선언 (예) boost::asio::io_service io_service; 2. endpoint object 선언 (예) boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), PortNo); 3. SocketManager object 선언 (예) SocketManager socketManager(io_service, endpoint, handler) 4. accept() 함수.. 2008. 10. 7.
boost asio - 수정중 Examples & Reference --------------------------------------------------------------------------------------------- Examples Reference Memo --------------------------------------------------------------------------------------------- 1. 송신 boost::asio::io_service io_service; // io_service object생성. thread safe 하므로 여러개의 thread // 가 하나의 io_service 사용 가능. tcp::endpoint endpoint(tcp::v4(), (int)portN.. 2008. 10. 1.