본문 바로가기

boost

[ boost ] boost.asio.buffer #1 boost asio 라이브러리 에서 사용하고 있는 buffer에 대한 이야기를 하고자 합니다. 참 매력이 넘치는 라이브러리라는 것은 사용해보신분이라면 아실꺼라는 생각이 드네요. 참 여러모로 좋은 라이브러리 입니다. socket에서 아니 정확히 말하자면 네트워크 프로그래밍시 꼭 필요한 부분입니다. 정확한 내용을 찾아보시려면 http://www.boost.org에서 문서를 참조하시면 보다 많은 정보를 얻을 수 있습니다. boost::asio::buffer 함수는 메모리상에 가공되지 않은 객체를 생성한 후, POD(Plain Old Data) 배열이나 또는 vector POD(Plain Old Data) 또는 std::string 구성됩니다. 내부 구성은 2-트리로 연결된 구조를 가지고 있습니다. 더보기
[ Boost ] Boost::bind #1 Boost 목록 링크 : http://tingcobell.tistory.com/295 boost에서 관심있게 보고 있는 분야 이기도 합니다. 처음에는 bind을 생각했을 때, 아 socket에서 쓰는 bind 함수 인가 보구나 하고 나중에 봐야지 했었습니다. 먼저 boost::bind을 사용하는 목적은 container의 객체들을 사용하고 싶을 때, 함수 객체를 만들어주기 위해서 사용이 됩니다. bind는 임의의 함수, 함수 포인터, 함수 객체, 멤버 함수를 함수 객체로 만들수 있기 때문에, 원하는 값을 전달 시킬 수 있습니다. 링크 : http://www.boost.org 역시 문서가 너무나도 잘되어 있습니다. boost::bind 는 std::bind1st와 std::bin2nd 보다 일반화 한 내용.. 더보기
[ Boost ] Boost::thread #4 Boost 목록 링크 : http://tingcobell.tistory.com/295 boost을 뭐 자세히 본것은 그렇게 없습니다. 그냥 관련된 사항을 찾아서 이렇게 해보면 어쩌나 저렇게 하면 어쩌나 궁금해서 시작을 하였기에 미련은 없지만, 참 매력적인 라이브러리라고 생각하고 있습니다. 하고 있자니 내가 만들 라이브러리에 꼭 boost에 필요한 내용을 넣어서 사용해야겠다는 생각이 들었습니다. Lock 에 대한 이야기를 좀 자세히 다루어 볼까 합니다. 서버프로그래머라면 진저리 나면서도 꼭 알아야 할 사항 이기에 아니 숙명이라고 해야 할것 같습니다. Synchronization Mutex Concepts Lockable Concepts TimedLockble Concepts SharedLockable Co.. 더보기
[ Boost ] Boost::thread #3 Boost 목록 링크 : http://tingcobell.tistory.com/295 이번에 이야기 하고 싶은 내용은 thread 중 데이터 관리에 대한 내용을 이야기 해볼까 합니다. 보편적으로 multi-thread에 대한 내용을 검색 또는 기본적으로 어디서 들어본 내용이 있을 수 있습니다. 하지만 여기서 다루고 싶은 내용은 mutex 즉, lock에 대한 이야기를 꺼내보려고 합니다. 가량 어떠한 중요한 공유하고 있는 데이터가 있다고 생각하겠습니다. 그런데 thread의 경합에 의해서 원하던 원하지 않던 예상결과가 틀리게 나오는 것을 쉽게 접할 수 있습니다. 대충 여기저기 내용을 검색을 통해서 알것이라는 전재를 통해 정리합니다. 위 UML에서 보여주고 있는 Manager는 무엇을 하는 놈일까요? 여기서.. 더보기
[ Boost ] Boost::thread #2 Boost 목록 링크 : http://tingcobell.tistory.com/295 간단한 셈플을 만들어 봤습니다. 싱글 스레드와 멀티 스레드 모두 간략하게 구현하고 그에 준하는 내용을 천천히 이해하려고 합니다. 최종 목표는 boost::asio을 네트워크 라이브러리에 붙이는 것이 최종 목표입니다. 하지만 기본적인 내용을 알면 좋겠다라는 생각에 부가적인 기능을 공부한 후, asio을 사용해서 네트워크 구성을 해보려고 합니다. #include #include class BoostTest { public: BoostTest() : stopCount( 0 ) { } ~BoostTest() { } public: void start( int _thread) { threadStop = true; boostThre.. 더보기
[ Boost ] Boost.thread #1 Boost 목록 링크 : http://tingcobell.tistory.com/295 boost.thread는 C++에서 멀티스테르에서 안정적인 데이터를 공유할 수 있습니다. boost::thread 라이브러리는 이식성, 유연성에을 고려하여 최대한 효율적으로 구현된 라이브러리입니다. 날짜/시간과 같은 테스크을 조정하고 파일 시스템 인터페이스, 네트워킹, 원자적 프로그래밍 등 상호간의 조율을 합니다. 메뉴얼을 읽고 있는데 boost로 구현한 thread을 처음 사용하는 것이라서 요목조목 구현 및 테스트를 해보려고 합니다. 스레드에 간단한 다이어그램을 그린다면 다음과 같이 구성이 될것 입니다. 기본 모델 1. boost::thread을 선언( 다시말하면 스래드 선언? 이정도로 봐야 정확합니다. ) 2. bo.. 더보기
[ Boost ] Boost.array 관련 예제 만들어보기 Boost 목록 링크 : http://tingcobell.tistory.com/295 링크 : http://tingcobell.tistory.com/302 시간관련 측정함수인 boost::timer을 이용하여 결과를 도출하려고 하였으나 제가 사용을 못하는건지 아니면 이녀석에 대해 제가 정확히 파악을 하지 못하는건지 잘 모르겠지만, 결과가 0으로만 산출되는 바람에 제가 주로 사용하고 있는 apr라이브러리를 이용하여 시간을 측정하였습니다. 관련된 Reference에 정의된 내용을 가지고 예제를 만들어봤습니다. #include #include #include //#include #include #define MAX_COUNT 1000 int main() { boost::array array_test; std:.. 더보기
[ Boost ] Boost.Array Description Boost.array는 iterator을 제공하고 있습니다. 1. array Iterator Support iterator begin(); const_iterator begin() const; Returns : iterator for the first element Throws : will not throw iterator end(); const_iterator end() const; Returns : iterator for position after the last element Throws : will not throw 2. array reverse iterator support reverse_iterator rbegin(); const_reverse_iterator rbegin() const; Re.. 더보기