├── README.md ├── ppt ├── 01大并发服务器架构介绍.ppt ├── 02大型网站架构演变过程.ppt ├── 03poll(一).ppt ├── 04poll(二).ppt ├── 05epoll(一).ppt ├── 06epoll(二).ppt ├── 07muduo介绍.ppt ├── 08面向对象编程风格.ppt ├── 09基于对象编程风格.ppt ├── 10muduo_base库源码分析(一).ppt ├── 11muduo_base库源码分析(二).ppt ├── 12muduo_base库源码分析(三).ppt ├── 13muduo_base库源码分析(四).ppt ├── 14muduo_base库源码分析(五).ppt ├── 15muduo_base库源码分析(六).ppt ├── 16muduo_base库源码分析(七).ppt ├── 17muduo_base库源码分析(八).ppt ├── 18muduo_base库源码分析(九).ppt ├── 19muduo_base库源码分析(十).ppt ├── 20muduo_base库源码分析(十一).ppt ├── 21muduo_base库源码分析(十二).ppt ├── 22muduo_base库源码分析(十三).ppt ├── 25muduo_net库源码分析(一).ppt ├── 26muduo_net库源码分析(二).ppt ├── 27muduo_net库源码分析(三).ppt ├── 28muduo_net库源码分析(四).ppt ├── 29muduo_net库源码分析(五).ppt ├── 30muduo_net库源码分析(六).ppt ├── 31muduo_net库源码分析(七).ppt ├── 32muduo_net库源码分析(八).ppt ├── 33muduo_net库源码分析(九).ppt ├── 34muduo_net库源码分析(十).ppt ├── 35muduo_net库源码分析(十一).ppt ├── 36muduo_net库源码分析(十二).ppt ├── 37muduo_net库源码分析(十三).ppt ├── 38muduo_net库源码分析(十四).ppt ├── 39muduo_net库源码分析(十五).ppt ├── 40muduo_http库源码分析.ppt ├── 41muduo_inspect库源码分析.ppt ├── 42muduo库使用示例(一).ppt ├── 43muduo库使用示例(二).ppt ├── 44muduo库使用示例(三).ppt ├── 45muduo库使用示例(四).ppt ├── 46muduo库使用示例(五).ppt ├── 47muduo库使用示例(六).ppt ├── 48muduo库使用示例(七).ppt ├── ABCBank(muduo版).ppt └── MuduoManual.pdf └── src ├── 10 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── CMakeLists.txt │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ └── bsa.cc ├── 11 ├── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ │ └── base │ │ │ ├── Atomic.h │ │ │ ├── CMakeLists.txt │ │ │ ├── Timestamp.cc │ │ │ ├── Timestamp.h │ │ │ ├── Types.h │ │ │ ├── copyable.h │ │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── CMakeLists.txt │ │ │ └── Timestamp_unittest.cc │ └── tests │ │ ├── CMakeLists.txt │ │ └── bsa.cc └── test.cpp ├── 12 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── CMakeLists.txt │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ └── bsa.cc ├── 13 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── CMakeLists.txt │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ ├── Thread_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Pthread_atfork_test.cc │ └── bsa.cc ├── 14 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── Mutex.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ ├── Mutex_test.cc │ │ ├── Thread_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Pthread_atfork_test.cc │ └── bsa.cc ├── 15 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── Mutex.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── BlockingQueue_bench.cc │ │ ├── BlockingQueue_test.cc │ │ ├── BoundedBlockingQueue_test.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ ├── Mutex_test.cc │ │ ├── Thread_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Pthread_atfork_test.cc │ └── bsa.cc ├── 16 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── Mutex.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── BlockingQueue_bench.cc │ │ ├── BlockingQueue_test.cc │ │ ├── BoundedBlockingQueue_test.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ ├── Mutex_test.cc │ │ ├── ThreadPool_test.cc │ │ ├── Thread_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Pthread_atfork_test.cc │ └── bsa.cc ├── 17 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── Mutex.h │ │ ├── Singleton.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── BlockingQueue_bench.cc │ │ ├── BlockingQueue_test.cc │ │ ├── BoundedBlockingQueue_test.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ ├── Mutex_test.cc │ │ ├── Singleton_test.cc │ │ ├── ThreadPool_test.cc │ │ ├── Thread_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Pthread_atfork_test.cc │ └── bsa.cc ├── 18 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── Mutex.h │ │ ├── Singleton.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── BlockingQueue_bench.cc │ │ ├── BlockingQueue_test.cc │ │ ├── BoundedBlockingQueue_test.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ ├── Mutex_test.cc │ │ ├── SingletonThreadLocal_test.cc │ │ ├── Singleton_test.cc │ │ ├── ThreadLocal_test.cc │ │ ├── ThreadPool_test.cc │ │ ├── Thread_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Pthread_atfork_test.cc │ └── bsa.cc ├── 19 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── Mutex.h │ │ ├── Singleton.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── BlockingQueue_bench.cc │ │ ├── BlockingQueue_test.cc │ │ ├── BoundedBlockingQueue_test.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ ├── Mutex_test.cc │ │ ├── SingletonThreadLocal_test.cc │ │ ├── Singleton_test.cc │ │ ├── ThreadLocalSingleton_test.cc │ │ ├── ThreadLocal_test.cc │ │ ├── ThreadPool_test.cc │ │ ├── Thread_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Pthread_atfork_test.cc │ └── bsa.cc ├── 20 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── BlockingQueue_bench.cc │ │ ├── BlockingQueue_test.cc │ │ ├── BoundedBlockingQueue_test.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ ├── Mutex_test.cc │ │ ├── SingletonThreadLocal_test.cc │ │ ├── Singleton_test.cc │ │ ├── ThreadLocalSingleton_test.cc │ │ ├── ThreadLocal_test.cc │ │ ├── ThreadPool_test.cc │ │ ├── Thread_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ └── bsa.cc ├── 21 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── BlockingQueue_bench.cc │ │ ├── BlockingQueue_test.cc │ │ ├── BoundedBlockingQueue_test.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ ├── LogStream_bench.cc │ │ ├── LogStream_test.cc │ │ ├── Mutex_test.cc │ │ ├── SingletonThreadLocal_test.cc │ │ ├── Singleton_test.cc │ │ ├── ThreadLocalSingleton_test.cc │ │ ├── ThreadLocal_test.cc │ │ ├── ThreadPool_test.cc │ │ ├── Thread_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ └── bsa.cc ├── 22 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ └── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ ├── Atomic_unittest.cc │ │ ├── BlockingQueue_bench.cc │ │ ├── BlockingQueue_test.cc │ │ ├── BoundedBlockingQueue_test.cc │ │ ├── CMakeLists.txt │ │ ├── Exception_test.cc │ │ ├── FileUtil_test.cc │ │ ├── LogFile_test.cc │ │ ├── LogStream_bench.cc │ │ ├── LogStream_test.cc │ │ ├── Logging_test.cc │ │ ├── Mutex_test.cc │ │ ├── SingletonThreadLocal_test.cc │ │ ├── Singleton_test.cc │ │ ├── ThreadLocalSingleton_test.cc │ │ ├── ThreadLocal_test.cc │ │ ├── ThreadPool_test.cc │ │ ├── Thread_test.cc │ │ └── Timestamp_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ └── bsa.cc ├── 25 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── CMakeLists.txt │ │ ├── EventLoop.cc │ │ └── EventLoop.h │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ └── bsa.cc ├── 26 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── CMakeLists.txt │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ └── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ └── bsa.cc ├── 27 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── CMakeLists.txt │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ └── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ └── bsa.cc ├── 28 ├── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ │ ├── base │ │ │ ├── Atomic.h │ │ │ ├── BlockingQueue.h │ │ │ ├── BoundedBlockingQueue.h │ │ │ ├── CMakeLists.txt │ │ │ ├── Condition.cc │ │ │ ├── Condition.h │ │ │ ├── CountDownLatch.cc │ │ │ ├── CountDownLatch.h │ │ │ ├── CurrentThread.h │ │ │ ├── Exception.cc │ │ │ ├── Exception.h │ │ │ ├── FileUtil.cc │ │ │ ├── FileUtil.h │ │ │ ├── LogFile.cc │ │ │ ├── LogFile.h │ │ │ ├── LogStream.cc │ │ │ ├── LogStream.h │ │ │ ├── Logging.cc │ │ │ ├── Logging.h │ │ │ ├── Mutex.h │ │ │ ├── ProcessInfo.cc │ │ │ ├── ProcessInfo.h │ │ │ ├── Singleton.h │ │ │ ├── StringPiece.h │ │ │ ├── Thread.cc │ │ │ ├── Thread.h │ │ │ ├── ThreadLocal.h │ │ │ ├── ThreadLocalSingleton.h │ │ │ ├── ThreadPool.cc │ │ │ ├── ThreadPool.h │ │ │ ├── Timestamp.cc │ │ │ ├── Timestamp.h │ │ │ ├── Types.h │ │ │ ├── copyable.h │ │ │ └── tests │ │ │ │ ├── Atomic_unittest.cc │ │ │ │ ├── BlockingQueue_bench.cc │ │ │ │ ├── BlockingQueue_test.cc │ │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── Exception_test.cc │ │ │ │ ├── FileUtil_test.cc │ │ │ │ ├── LogFile_test.cc │ │ │ │ ├── LogStream_bench.cc │ │ │ │ ├── LogStream_test.cc │ │ │ │ ├── Logging_test.cc │ │ │ │ ├── Mutex_test.cc │ │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ │ ├── Singleton_test.cc │ │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ │ ├── ThreadLocal_test.cc │ │ │ │ ├── ThreadPool_test.cc │ │ │ │ ├── Thread_test.cc │ │ │ │ └── Timestamp_unittest.cc │ │ └── net │ │ │ ├── CMakeLists.txt │ │ │ ├── Callbacks.h │ │ │ ├── Channel.cc │ │ │ ├── Channel.h │ │ │ ├── EventLoop.cc │ │ │ ├── EventLoop.h │ │ │ ├── Poller.cc │ │ │ ├── Poller.h │ │ │ ├── Timer.cc │ │ │ ├── Timer.h │ │ │ ├── TimerId.h │ │ │ ├── TimerQueue.cc │ │ │ ├── TimerQueue.h │ │ │ └── poller │ │ │ ├── DefaultPoller.cc │ │ │ ├── EPollPoller.cc │ │ │ ├── EPollPoller.h │ │ │ ├── PollPoller.cc │ │ │ └── PollPoller.h │ └── tests │ │ ├── CMakeLists.txt │ │ ├── CountDownLatch_test1.cc │ │ ├── CountDownLatch_test2.cc │ │ ├── Deadlock_test.cc │ │ ├── Deadlock_test2.cc │ │ ├── Log_test1.cc │ │ ├── Log_test2.cc │ │ ├── Pthread_atfork_test.cc │ │ ├── Reactor_test01.cc │ │ ├── Reactor_test02.cc │ │ ├── Reactor_test03.cc │ │ ├── Reactor_test04.cc │ │ └── bsa.cc ├── rvo_test.cpp └── set_test.cpp ├── 29 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ └── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ └── bsa.cc ├── 30 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ └── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ └── bsa.cc ├── 31 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ └── bsa.cc ├── 32 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ └── bsa.cc ├── 33 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ └── bsa.cc ├── 34 ├── esft.cpp └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ └── bsa.cc ├── 35 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ └── bsa.cc ├── 36 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── Buffer.cc │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ └── bsa.cc ├── 37 ├── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ │ ├── base │ │ │ ├── Atomic.h │ │ │ ├── BlockingQueue.h │ │ │ ├── BoundedBlockingQueue.h │ │ │ ├── CMakeLists.txt │ │ │ ├── Condition.cc │ │ │ ├── Condition.h │ │ │ ├── CountDownLatch.cc │ │ │ ├── CountDownLatch.h │ │ │ ├── CurrentThread.h │ │ │ ├── Exception.cc │ │ │ ├── Exception.h │ │ │ ├── FileUtil.cc │ │ │ ├── FileUtil.h │ │ │ ├── LogFile.cc │ │ │ ├── LogFile.h │ │ │ ├── LogStream.cc │ │ │ ├── LogStream.h │ │ │ ├── Logging.cc │ │ │ ├── Logging.h │ │ │ ├── Mutex.h │ │ │ ├── ProcessInfo.cc │ │ │ ├── ProcessInfo.h │ │ │ ├── Singleton.h │ │ │ ├── StringPiece.h │ │ │ ├── Thread.cc │ │ │ ├── Thread.h │ │ │ ├── ThreadLocal.h │ │ │ ├── ThreadLocalSingleton.h │ │ │ ├── ThreadPool.cc │ │ │ ├── ThreadPool.h │ │ │ ├── Timestamp.cc │ │ │ ├── Timestamp.h │ │ │ ├── Types.h │ │ │ ├── copyable.h │ │ │ └── tests │ │ │ │ ├── Atomic_unittest.cc │ │ │ │ ├── BlockingQueue_bench.cc │ │ │ │ ├── BlockingQueue_test.cc │ │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── Exception_test.cc │ │ │ │ ├── FileUtil_test.cc │ │ │ │ ├── LogFile_test.cc │ │ │ │ ├── LogStream_bench.cc │ │ │ │ ├── LogStream_test.cc │ │ │ │ ├── Logging_test.cc │ │ │ │ ├── Mutex_test.cc │ │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ │ ├── Singleton_test.cc │ │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ │ ├── ThreadLocal_test.cc │ │ │ │ ├── ThreadPool_test.cc │ │ │ │ ├── Thread_test.cc │ │ │ │ └── Timestamp_unittest.cc │ │ └── net │ │ │ ├── Acceptor.cc │ │ │ ├── Acceptor.h │ │ │ ├── Buffer.cc │ │ │ ├── Buffer.h │ │ │ ├── CMakeLists.txt │ │ │ ├── Callbacks.h │ │ │ ├── Channel.cc │ │ │ ├── Channel.h │ │ │ ├── Endian.h │ │ │ ├── EventLoop.cc │ │ │ ├── EventLoop.h │ │ │ ├── EventLoopThread.cc │ │ │ ├── EventLoopThread.h │ │ │ ├── EventLoopThreadPool.cc │ │ │ ├── EventLoopThreadPool.h │ │ │ ├── InetAddress.cc │ │ │ ├── InetAddress.h │ │ │ ├── Poller.cc │ │ │ ├── Poller.h │ │ │ ├── Socket.cc │ │ │ ├── Socket.h │ │ │ ├── SocketsOps.cc │ │ │ ├── SocketsOps.h │ │ │ ├── TcpConnection.cc │ │ │ ├── TcpConnection.h │ │ │ ├── TcpServer.cc │ │ │ ├── TcpServer.h │ │ │ ├── Timer.cc │ │ │ ├── Timer.h │ │ │ ├── TimerId.h │ │ │ ├── TimerQueue.cc │ │ │ ├── TimerQueue.h │ │ │ ├── poller │ │ │ ├── DefaultPoller.cc │ │ │ ├── EPollPoller.cc │ │ │ ├── EPollPoller.h │ │ │ ├── PollPoller.cc │ │ │ └── PollPoller.h │ │ │ └── tests │ │ │ ├── CMakeLists.txt │ │ │ └── InetAddress_unittest.cc │ └── tests │ │ ├── CMakeLists.txt │ │ ├── CountDownLatch_test1.cc │ │ ├── CountDownLatch_test2.cc │ │ ├── Deadlock_test.cc │ │ ├── Deadlock_test2.cc │ │ ├── Log_test1.cc │ │ ├── Log_test2.cc │ │ ├── Pthread_atfork_test.cc │ │ ├── Reactor_test01.cc │ │ ├── Reactor_test02.cc │ │ ├── Reactor_test03.cc │ │ ├── Reactor_test04.cc │ │ ├── Reactor_test05.cc │ │ ├── Reactor_test06.cc │ │ ├── Reactor_test07.cc │ │ ├── Reactor_test08.cc │ │ ├── Reactor_test09.cc │ │ ├── Reactor_test10.cc │ │ ├── Reactor_test11.cc │ │ ├── Reactor_test12.cc │ │ └── bsa.cc └── testcli.c ├── 38 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── Buffer.cc │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ ├── Reactor_test11.cc │ ├── Reactor_test12.cc │ ├── Reactor_test13.cc │ └── bsa.cc ├── 39 ├── Connector.cc ├── Connector.h ├── TcpClient.cc ├── TcpClient.h └── TcpClient_test.cc ├── 40 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── Buffer.cc │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Connector.cc │ │ ├── Connector.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpClient.cc │ │ ├── TcpClient.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── http │ │ ├── CMakeLists.txt │ │ ├── HttpContext.h │ │ ├── HttpRequest.h │ │ ├── HttpResponse.cc │ │ ├── HttpResponse.h │ │ ├── HttpServer.cc │ │ ├── HttpServer.h │ │ └── tests │ │ │ ├── HttpRequest_unittest.cc │ │ │ └── HttpServer_test.cc │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ ├── Reactor_test11.cc │ ├── Reactor_test12.cc │ ├── Reactor_test13.cc │ ├── TcpClient_test.cc │ └── bsa.cc ├── 41 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── Buffer.cc │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Connector.cc │ │ ├── Connector.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpClient.cc │ │ ├── TcpClient.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── http │ │ ├── CMakeLists.txt │ │ ├── HttpContext.h │ │ ├── HttpRequest.h │ │ ├── HttpResponse.cc │ │ ├── HttpResponse.h │ │ ├── HttpServer.cc │ │ ├── HttpServer.h │ │ └── tests │ │ │ ├── HttpRequest_unittest.cc │ │ │ └── HttpServer_test.cc │ │ ├── inspect │ │ ├── CMakeLists.txt │ │ ├── Inspector.cc │ │ ├── Inspector.h │ │ ├── ProcessInspector.cc │ │ ├── ProcessInspector.h │ │ └── tests │ │ │ └── Inspector_test.cc │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ ├── Reactor_test11.cc │ ├── Reactor_test12.cc │ ├── Reactor_test13.cc │ ├── TcpClient_test.cc │ └── bsa.cc ├── 42 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── examples │ ├── CMakeLists.txt │ ├── asio │ │ ├── chat │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.h │ │ │ ├── loadtest.cc │ │ │ ├── server.cc │ │ │ ├── server_threaded.cc │ │ │ ├── server_threaded_efficient.cc │ │ │ └── server_threaded_highperformance.cc │ │ ├── echo_see_simple │ │ └── tutorial │ │ │ ├── CMakeLists.txt │ │ │ ├── daytime_see_simple │ │ │ ├── there_is_no_timer1 │ │ │ ├── timer2 │ │ │ └── timer.cc │ │ │ ├── timer3 │ │ │ └── timer.cc │ │ │ ├── timer4 │ │ │ └── timer.cc │ │ │ ├── timer5 │ │ │ └── timer.cc │ │ │ └── timer6 │ │ │ └── timer.cc │ ├── cdns │ │ ├── CMakeLists.txt │ │ ├── Resolver.cc │ │ ├── Resolver.h │ │ └── dns.cc │ ├── curl │ │ ├── CMakeLists.txt │ │ ├── Curl.cc │ │ ├── Curl.h │ │ ├── README │ │ ├── download.cc │ │ └── mcurl.cc │ ├── fastcgi │ │ ├── CMakeLists.txt │ │ ├── fastcgi.cc │ │ ├── fastcgi.h │ │ └── fastcgi_test.cc │ ├── filetransfer │ │ ├── CMakeLists.txt │ │ ├── download.cc │ │ ├── download2.cc │ │ ├── download3.cc │ │ └── loadtest │ │ │ ├── Client.java │ │ │ └── Handler.java │ ├── hub │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── codec.cc │ │ ├── codec.h │ │ ├── hub.cc │ │ ├── pub.cc │ │ ├── pubsub.cc │ │ ├── pubsub.h │ │ └── sub.cc │ ├── idleconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ ├── main.cc │ │ └── sortedlist.cc │ ├── maxconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ └── main.cc │ ├── multiplexer │ │ ├── CMakeLists.txt │ │ ├── demux.cc │ │ ├── harness │ │ │ ├── run.sh │ │ │ └── src │ │ │ │ └── com │ │ │ │ └── chenshuo │ │ │ │ └── muduo │ │ │ │ └── example │ │ │ │ └── multiplexer │ │ │ │ ├── DataEvent.java │ │ │ │ ├── Event.java │ │ │ │ ├── EventQueue.java │ │ │ │ ├── EventSource.java │ │ │ │ ├── MockBackendServer.java │ │ │ │ ├── MockClient.java │ │ │ │ ├── MultiplexerTest.java │ │ │ │ ├── MyCountDownLatch.java │ │ │ │ ├── TestCase.java │ │ │ │ ├── TestFailedException.java │ │ │ │ └── testcase │ │ │ │ ├── TestOneClientBackendSend.java │ │ │ │ ├── TestOneClientBothSend.java │ │ │ │ ├── TestOneClientNoData.java │ │ │ │ ├── TestOneClientSend.java │ │ │ │ └── TestTwoClients.java │ │ ├── multiplexer.cc │ │ └── multiplexer_simple.cc │ ├── netty │ │ ├── discard │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ ├── echo │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ └── uptime │ │ │ ├── CMakeLists.txt │ │ │ └── uptime.cc │ ├── pingpong │ │ ├── CMakeLists.txt │ │ ├── bench.cc │ │ ├── client.cc │ │ └── server.cc │ ├── protobuf │ │ ├── CMakeLists.txt │ │ ├── codec │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.cc │ │ │ ├── codec.h │ │ │ ├── codec_test.cc │ │ │ ├── dispatcher.h │ │ │ ├── dispatcher_lite.h │ │ │ ├── dispatcher_lite_test.cc │ │ │ ├── dispatcher_test.cc │ │ │ ├── query.proto │ │ │ └── server.cc │ │ ├── resolver │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── resolver.proto │ │ │ └── server.cc │ │ ├── rpc │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── server.cc │ │ │ └── sudoku.proto │ │ └── rpcbench │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── echo.proto │ │ │ └── server.cc │ ├── roundtrip │ │ ├── CMakeLists.txt │ │ └── roundtrip.cc │ ├── shorturl │ │ ├── CMakeLists.txt │ │ └── shorturl.cc │ ├── simple │ │ ├── CMakeLists.txt │ │ ├── allinone │ │ │ └── allinone.cc │ │ ├── chargen │ │ │ ├── chargen.cc │ │ │ ├── chargen.h │ │ │ └── main.cc │ │ ├── chargenclient │ │ │ └── chargenclient.cc │ │ ├── daytime │ │ │ ├── daytime.cc │ │ │ ├── daytime.h │ │ │ └── main.cc │ │ ├── discard │ │ │ ├── discard.cc │ │ │ ├── discard.h │ │ │ └── main.cc │ │ ├── echo │ │ │ ├── echo.cc │ │ │ ├── echo.h │ │ │ └── main.cc │ │ ├── time │ │ │ ├── main.cc │ │ │ ├── time.cc │ │ │ └── time.h │ │ └── timeclient │ │ │ └── timeclient.cc │ ├── socks4a │ │ ├── CMakeLists.txt │ │ ├── socks4a.cc │ │ ├── tcprelay.cc │ │ └── tunnel.h │ ├── sudoku │ │ ├── CMakeLists.txt │ │ ├── server_basic.cc │ │ ├── server_multiloop.cc │ │ ├── server_threadpool.cc │ │ ├── sudoku.cc │ │ └── sudoku.h │ ├── twisted │ │ └── finger │ │ │ ├── CMakeLists.txt │ │ │ ├── README │ │ │ ├── finger01.cc │ │ │ ├── finger02.cc │ │ │ ├── finger03.cc │ │ │ ├── finger04.cc │ │ │ ├── finger05.cc │ │ │ ├── finger06.cc │ │ │ └── finger07.cc │ ├── wordcount │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── gen.py │ │ ├── hash.h │ │ ├── hasher.cc │ │ ├── receiver.cc │ │ └── slowsink.py │ └── zeromq │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── local_lat.cc │ │ └── remote_lat.cc │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── Buffer.cc │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Connector.cc │ │ ├── Connector.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpClient.cc │ │ ├── TcpClient.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── http │ │ ├── CMakeLists.txt │ │ ├── HttpContext.h │ │ ├── HttpRequest.h │ │ ├── HttpResponse.cc │ │ ├── HttpResponse.h │ │ ├── HttpServer.cc │ │ ├── HttpServer.h │ │ └── tests │ │ │ ├── HttpRequest_unittest.cc │ │ │ └── HttpServer_test.cc │ │ ├── inspect │ │ ├── CMakeLists.txt │ │ ├── Inspector.cc │ │ ├── Inspector.h │ │ ├── ProcessInspector.cc │ │ ├── ProcessInspector.h │ │ └── tests │ │ │ └── Inspector_test.cc │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ ├── Reactor_test11.cc │ ├── Reactor_test12.cc │ ├── Reactor_test13.cc │ ├── TcpClient_test.cc │ └── bsa.cc ├── 43 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── examples │ ├── CMakeLists.txt │ ├── asio │ │ ├── chat │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.h │ │ │ ├── loadtest.cc │ │ │ ├── server.cc │ │ │ ├── server_threaded.cc │ │ │ ├── server_threaded_efficient.cc │ │ │ └── server_threaded_highperformance.cc │ │ ├── echo_see_simple │ │ └── tutorial │ │ │ ├── CMakeLists.txt │ │ │ ├── daytime_see_simple │ │ │ ├── there_is_no_timer1 │ │ │ ├── timer2 │ │ │ └── timer.cc │ │ │ ├── timer3 │ │ │ └── timer.cc │ │ │ ├── timer4 │ │ │ └── timer.cc │ │ │ ├── timer5 │ │ │ └── timer.cc │ │ │ └── timer6 │ │ │ └── timer.cc │ ├── cdns │ │ ├── CMakeLists.txt │ │ ├── Resolver.cc │ │ ├── Resolver.h │ │ └── dns.cc │ ├── curl │ │ ├── CMakeLists.txt │ │ ├── Curl.cc │ │ ├── Curl.h │ │ ├── README │ │ ├── download.cc │ │ └── mcurl.cc │ ├── fastcgi │ │ ├── CMakeLists.txt │ │ ├── fastcgi.cc │ │ ├── fastcgi.h │ │ └── fastcgi_test.cc │ ├── filetransfer │ │ ├── CMakeLists.txt │ │ ├── download.cc │ │ ├── download2.cc │ │ ├── download3.cc │ │ └── loadtest │ │ │ ├── Client.java │ │ │ └── Handler.java │ ├── hub │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── codec.cc │ │ ├── codec.h │ │ ├── hub.cc │ │ ├── pub.cc │ │ ├── pubsub.cc │ │ ├── pubsub.h │ │ └── sub.cc │ ├── idleconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ ├── main.cc │ │ └── sortedlist.cc │ ├── maxconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ └── main.cc │ ├── multiplexer │ │ ├── CMakeLists.txt │ │ ├── demux.cc │ │ ├── harness │ │ │ ├── run.sh │ │ │ └── src │ │ │ │ └── com │ │ │ │ └── chenshuo │ │ │ │ └── muduo │ │ │ │ └── example │ │ │ │ └── multiplexer │ │ │ │ ├── DataEvent.java │ │ │ │ ├── Event.java │ │ │ │ ├── EventQueue.java │ │ │ │ ├── EventSource.java │ │ │ │ ├── MockBackendServer.java │ │ │ │ ├── MockClient.java │ │ │ │ ├── MultiplexerTest.java │ │ │ │ ├── MyCountDownLatch.java │ │ │ │ ├── TestCase.java │ │ │ │ ├── TestFailedException.java │ │ │ │ └── testcase │ │ │ │ ├── TestOneClientBackendSend.java │ │ │ │ ├── TestOneClientBothSend.java │ │ │ │ ├── TestOneClientNoData.java │ │ │ │ ├── TestOneClientSend.java │ │ │ │ └── TestTwoClients.java │ │ ├── multiplexer.cc │ │ └── multiplexer_simple.cc │ ├── netty │ │ ├── discard │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ ├── echo │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ └── uptime │ │ │ ├── CMakeLists.txt │ │ │ └── uptime.cc │ ├── pingpong │ │ ├── CMakeLists.txt │ │ ├── bench.cc │ │ ├── client.cc │ │ └── server.cc │ ├── protobuf │ │ ├── CMakeLists.txt │ │ ├── codec │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.cc │ │ │ ├── codec.h │ │ │ ├── codec_test.cc │ │ │ ├── dispatcher.h │ │ │ ├── dispatcher_lite.h │ │ │ ├── dispatcher_lite_test.cc │ │ │ ├── dispatcher_test.cc │ │ │ ├── query.proto │ │ │ └── server.cc │ │ ├── resolver │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── resolver.proto │ │ │ └── server.cc │ │ ├── rpc │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── server.cc │ │ │ └── sudoku.proto │ │ └── rpcbench │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── echo.proto │ │ │ └── server.cc │ ├── roundtrip │ │ ├── CMakeLists.txt │ │ └── roundtrip.cc │ ├── shorturl │ │ ├── CMakeLists.txt │ │ └── shorturl.cc │ ├── simple │ │ ├── CMakeLists.txt │ │ ├── allinone │ │ │ └── allinone.cc │ │ ├── chargen │ │ │ ├── chargen.cc │ │ │ ├── chargen.h │ │ │ └── main.cc │ │ ├── chargenclient │ │ │ └── chargenclient.cc │ │ ├── daytime │ │ │ ├── daytime.cc │ │ │ ├── daytime.h │ │ │ └── main.cc │ │ ├── discard │ │ │ ├── discard.cc │ │ │ ├── discard.h │ │ │ └── main.cc │ │ ├── echo │ │ │ ├── echo.cc │ │ │ ├── echo.h │ │ │ └── main.cc │ │ ├── time │ │ │ ├── main.cc │ │ │ ├── time.cc │ │ │ └── time.h │ │ └── timeclient │ │ │ └── timeclient.cc │ ├── socks4a │ │ ├── CMakeLists.txt │ │ ├── socks4a.cc │ │ ├── tcprelay.cc │ │ └── tunnel.h │ ├── sudoku │ │ ├── CMakeLists.txt │ │ ├── server_basic.cc │ │ ├── server_multiloop.cc │ │ ├── server_threadpool.cc │ │ ├── sudoku.cc │ │ └── sudoku.h │ ├── twisted │ │ └── finger │ │ │ ├── CMakeLists.txt │ │ │ ├── README │ │ │ ├── finger01.cc │ │ │ ├── finger02.cc │ │ │ ├── finger03.cc │ │ │ ├── finger04.cc │ │ │ ├── finger05.cc │ │ │ ├── finger06.cc │ │ │ └── finger07.cc │ ├── wordcount │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── gen.py │ │ ├── hash.h │ │ ├── hasher.cc │ │ ├── receiver.cc │ │ └── slowsink.py │ └── zeromq │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── local_lat.cc │ │ └── remote_lat.cc │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── Buffer.cc │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Connector.cc │ │ ├── Connector.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpClient.cc │ │ ├── TcpClient.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── http │ │ ├── CMakeLists.txt │ │ ├── HttpContext.h │ │ ├── HttpRequest.h │ │ ├── HttpResponse.cc │ │ ├── HttpResponse.h │ │ ├── HttpServer.cc │ │ ├── HttpServer.h │ │ └── tests │ │ │ ├── HttpRequest_unittest.cc │ │ │ └── HttpServer_test.cc │ │ ├── inspect │ │ ├── CMakeLists.txt │ │ ├── Inspector.cc │ │ ├── Inspector.h │ │ ├── ProcessInspector.cc │ │ ├── ProcessInspector.h │ │ └── tests │ │ │ └── Inspector_test.cc │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Filetransfer_test.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ ├── Reactor_test11.cc │ ├── Reactor_test12.cc │ ├── Reactor_test13.cc │ ├── TcpClient_test.cc │ └── bsa.cc ├── 44 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── examples │ ├── CMakeLists.txt │ ├── asio │ │ ├── chat │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.h │ │ │ ├── loadtest.cc │ │ │ ├── server.cc │ │ │ ├── server_threaded.cc │ │ │ ├── server_threaded_efficient.cc │ │ │ └── server_threaded_highperformance.cc │ │ ├── echo_see_simple │ │ └── tutorial │ │ │ ├── CMakeLists.txt │ │ │ ├── daytime_see_simple │ │ │ ├── there_is_no_timer1 │ │ │ ├── timer2 │ │ │ └── timer.cc │ │ │ ├── timer3 │ │ │ └── timer.cc │ │ │ ├── timer4 │ │ │ └── timer.cc │ │ │ ├── timer5 │ │ │ └── timer.cc │ │ │ └── timer6 │ │ │ └── timer.cc │ ├── cdns │ │ ├── CMakeLists.txt │ │ ├── Resolver.cc │ │ ├── Resolver.h │ │ └── dns.cc │ ├── curl │ │ ├── CMakeLists.txt │ │ ├── Curl.cc │ │ ├── Curl.h │ │ ├── README │ │ ├── download.cc │ │ └── mcurl.cc │ ├── fastcgi │ │ ├── CMakeLists.txt │ │ ├── fastcgi.cc │ │ ├── fastcgi.h │ │ └── fastcgi_test.cc │ ├── filetransfer │ │ ├── CMakeLists.txt │ │ ├── download.cc │ │ ├── download2.cc │ │ ├── download3.cc │ │ └── loadtest │ │ │ ├── Client.java │ │ │ └── Handler.java │ ├── hub │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── codec.cc │ │ ├── codec.h │ │ ├── hub.cc │ │ ├── pub.cc │ │ ├── pubsub.cc │ │ ├── pubsub.h │ │ └── sub.cc │ ├── idleconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ ├── main.cc │ │ └── sortedlist.cc │ ├── maxconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ └── main.cc │ ├── multiplexer │ │ ├── CMakeLists.txt │ │ ├── demux.cc │ │ ├── harness │ │ │ ├── run.sh │ │ │ └── src │ │ │ │ └── com │ │ │ │ └── chenshuo │ │ │ │ └── muduo │ │ │ │ └── example │ │ │ │ └── multiplexer │ │ │ │ ├── DataEvent.java │ │ │ │ ├── Event.java │ │ │ │ ├── EventQueue.java │ │ │ │ ├── EventSource.java │ │ │ │ ├── MockBackendServer.java │ │ │ │ ├── MockClient.java │ │ │ │ ├── MultiplexerTest.java │ │ │ │ ├── MyCountDownLatch.java │ │ │ │ ├── TestCase.java │ │ │ │ ├── TestFailedException.java │ │ │ │ └── testcase │ │ │ │ ├── TestOneClientBackendSend.java │ │ │ │ ├── TestOneClientBothSend.java │ │ │ │ ├── TestOneClientNoData.java │ │ │ │ ├── TestOneClientSend.java │ │ │ │ └── TestTwoClients.java │ │ ├── multiplexer.cc │ │ └── multiplexer_simple.cc │ ├── netty │ │ ├── discard │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ ├── echo │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ └── uptime │ │ │ ├── CMakeLists.txt │ │ │ └── uptime.cc │ ├── pingpong │ │ ├── CMakeLists.txt │ │ ├── bench.cc │ │ ├── client.cc │ │ └── server.cc │ ├── protobuf │ │ ├── CMakeLists.txt │ │ ├── codec │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.cc │ │ │ ├── codec.h │ │ │ ├── codec_test.cc │ │ │ ├── dispatcher.h │ │ │ ├── dispatcher_lite.h │ │ │ ├── dispatcher_lite_test.cc │ │ │ ├── dispatcher_test.cc │ │ │ ├── query.proto │ │ │ └── server.cc │ │ ├── resolver │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── resolver.proto │ │ │ └── server.cc │ │ ├── rpc │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── server.cc │ │ │ └── sudoku.proto │ │ └── rpcbench │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── echo.proto │ │ │ └── server.cc │ ├── roundtrip │ │ ├── CMakeLists.txt │ │ └── roundtrip.cc │ ├── shorturl │ │ ├── CMakeLists.txt │ │ └── shorturl.cc │ ├── simple │ │ ├── CMakeLists.txt │ │ ├── allinone │ │ │ └── allinone.cc │ │ ├── chargen │ │ │ ├── chargen.cc │ │ │ ├── chargen.h │ │ │ └── main.cc │ │ ├── chargenclient │ │ │ └── chargenclient.cc │ │ ├── daytime │ │ │ ├── daytime.cc │ │ │ ├── daytime.h │ │ │ └── main.cc │ │ ├── discard │ │ │ ├── discard.cc │ │ │ ├── discard.h │ │ │ └── main.cc │ │ ├── echo │ │ │ ├── echo.cc │ │ │ ├── echo.h │ │ │ └── main.cc │ │ ├── time │ │ │ ├── main.cc │ │ │ ├── time.cc │ │ │ └── time.h │ │ └── timeclient │ │ │ └── timeclient.cc │ ├── socks4a │ │ ├── CMakeLists.txt │ │ ├── socks4a.cc │ │ ├── tcprelay.cc │ │ └── tunnel.h │ ├── sudoku │ │ ├── CMakeLists.txt │ │ ├── server_basic.cc │ │ ├── server_multiloop.cc │ │ ├── server_threadpool.cc │ │ ├── sudoku.cc │ │ └── sudoku.h │ ├── twisted │ │ └── finger │ │ │ ├── CMakeLists.txt │ │ │ ├── README │ │ │ ├── finger01.cc │ │ │ ├── finger02.cc │ │ │ ├── finger03.cc │ │ │ ├── finger04.cc │ │ │ ├── finger05.cc │ │ │ ├── finger06.cc │ │ │ └── finger07.cc │ ├── wordcount │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── gen.py │ │ ├── hash.h │ │ ├── hasher.cc │ │ ├── receiver.cc │ │ └── slowsink.py │ └── zeromq │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── local_lat.cc │ │ └── remote_lat.cc │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── Buffer.cc │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Connector.cc │ │ ├── Connector.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpClient.cc │ │ ├── TcpClient.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── http │ │ ├── CMakeLists.txt │ │ ├── HttpContext.h │ │ ├── HttpRequest.h │ │ ├── HttpResponse.cc │ │ ├── HttpResponse.h │ │ ├── HttpServer.cc │ │ ├── HttpServer.h │ │ └── tests │ │ │ ├── HttpRequest_unittest.cc │ │ │ └── HttpServer_test.cc │ │ ├── inspect │ │ ├── CMakeLists.txt │ │ ├── Inspector.cc │ │ ├── Inspector.h │ │ ├── ProcessInspector.cc │ │ ├── ProcessInspector.h │ │ └── tests │ │ │ └── Inspector_test.cc │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Filetransfer_test.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ ├── Reactor_test11.cc │ ├── Reactor_test12.cc │ ├── Reactor_test13.cc │ ├── TcpClient_test.cc │ └── bsa.cc ├── 45 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── examples │ ├── CMakeLists.txt │ ├── asio │ │ ├── chat │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.h │ │ │ ├── loadtest.cc │ │ │ ├── server.cc │ │ │ ├── server_threaded.cc │ │ │ ├── server_threaded_efficient.cc │ │ │ └── server_threaded_highperformance.cc │ │ ├── echo_see_simple │ │ └── tutorial │ │ │ ├── CMakeLists.txt │ │ │ ├── daytime_see_simple │ │ │ ├── there_is_no_timer1 │ │ │ ├── timer2 │ │ │ └── timer.cc │ │ │ ├── timer3 │ │ │ └── timer.cc │ │ │ ├── timer4 │ │ │ └── timer.cc │ │ │ ├── timer5 │ │ │ └── timer.cc │ │ │ └── timer6 │ │ │ └── timer.cc │ ├── cdns │ │ ├── CMakeLists.txt │ │ ├── Resolver.cc │ │ ├── Resolver.h │ │ └── dns.cc │ ├── curl │ │ ├── CMakeLists.txt │ │ ├── Curl.cc │ │ ├── Curl.h │ │ ├── README │ │ ├── download.cc │ │ └── mcurl.cc │ ├── fastcgi │ │ ├── CMakeLists.txt │ │ ├── fastcgi.cc │ │ ├── fastcgi.h │ │ └── fastcgi_test.cc │ ├── filetransfer │ │ ├── CMakeLists.txt │ │ ├── download.cc │ │ ├── download2.cc │ │ ├── download3.cc │ │ └── loadtest │ │ │ ├── Client.java │ │ │ └── Handler.java │ ├── hub │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── codec.cc │ │ ├── codec.h │ │ ├── hub.cc │ │ ├── pub.cc │ │ ├── pubsub.cc │ │ ├── pubsub.h │ │ └── sub.cc │ ├── idleconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ ├── main.cc │ │ └── sortedlist.cc │ ├── maxconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ └── main.cc │ ├── multiplexer │ │ ├── CMakeLists.txt │ │ ├── demux.cc │ │ ├── harness │ │ │ ├── run.sh │ │ │ └── src │ │ │ │ └── com │ │ │ │ └── chenshuo │ │ │ │ └── muduo │ │ │ │ └── example │ │ │ │ └── multiplexer │ │ │ │ ├── DataEvent.java │ │ │ │ ├── Event.java │ │ │ │ ├── EventQueue.java │ │ │ │ ├── EventSource.java │ │ │ │ ├── MockBackendServer.java │ │ │ │ ├── MockClient.java │ │ │ │ ├── MultiplexerTest.java │ │ │ │ ├── MyCountDownLatch.java │ │ │ │ ├── TestCase.java │ │ │ │ ├── TestFailedException.java │ │ │ │ └── testcase │ │ │ │ ├── TestOneClientBackendSend.java │ │ │ │ ├── TestOneClientBothSend.java │ │ │ │ ├── TestOneClientNoData.java │ │ │ │ ├── TestOneClientSend.java │ │ │ │ └── TestTwoClients.java │ │ ├── multiplexer.cc │ │ └── multiplexer_simple.cc │ ├── netty │ │ ├── discard │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ ├── echo │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ └── uptime │ │ │ ├── CMakeLists.txt │ │ │ └── uptime.cc │ ├── pingpong │ │ ├── CMakeLists.txt │ │ ├── bench.cc │ │ ├── client.cc │ │ └── server.cc │ ├── protobuf │ │ ├── CMakeLists.txt │ │ ├── codec │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.cc │ │ │ ├── codec.h │ │ │ ├── codec_test.cc │ │ │ ├── dispatcher.h │ │ │ ├── dispatcher_lite.h │ │ │ ├── dispatcher_lite_test.cc │ │ │ ├── dispatcher_test.cc │ │ │ ├── query.proto │ │ │ └── server.cc │ │ ├── resolver │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── resolver.proto │ │ │ └── server.cc │ │ ├── rpc │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── server.cc │ │ │ └── sudoku.proto │ │ └── rpcbench │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── echo.proto │ │ │ └── server.cc │ ├── roundtrip │ │ ├── CMakeLists.txt │ │ └── roundtrip.cc │ ├── shorturl │ │ ├── CMakeLists.txt │ │ └── shorturl.cc │ ├── simple │ │ ├── CMakeLists.txt │ │ ├── allinone │ │ │ └── allinone.cc │ │ ├── chargen │ │ │ ├── chargen.cc │ │ │ ├── chargen.h │ │ │ └── main.cc │ │ ├── chargenclient │ │ │ └── chargenclient.cc │ │ ├── daytime │ │ │ ├── daytime.cc │ │ │ ├── daytime.h │ │ │ └── main.cc │ │ ├── discard │ │ │ ├── discard.cc │ │ │ ├── discard.h │ │ │ └── main.cc │ │ ├── echo │ │ │ ├── echo.cc │ │ │ ├── echo.h │ │ │ └── main.cc │ │ ├── time │ │ │ ├── main.cc │ │ │ ├── time.cc │ │ │ └── time.h │ │ └── timeclient │ │ │ └── timeclient.cc │ ├── socks4a │ │ ├── CMakeLists.txt │ │ ├── socks4a.cc │ │ ├── tcprelay.cc │ │ └── tunnel.h │ ├── sudoku │ │ ├── CMakeLists.txt │ │ ├── server_basic.cc │ │ ├── server_multiloop.cc │ │ ├── server_threadpool.cc │ │ ├── sudoku.cc │ │ └── sudoku.h │ ├── twisted │ │ └── finger │ │ │ ├── CMakeLists.txt │ │ │ ├── README │ │ │ ├── finger01.cc │ │ │ ├── finger02.cc │ │ │ ├── finger03.cc │ │ │ ├── finger04.cc │ │ │ ├── finger05.cc │ │ │ ├── finger06.cc │ │ │ └── finger07.cc │ ├── wordcount │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── gen.py │ │ ├── hash.h │ │ ├── hasher.cc │ │ ├── receiver.cc │ │ └── slowsink.py │ └── zeromq │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── local_lat.cc │ │ └── remote_lat.cc │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── Buffer.cc │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Connector.cc │ │ ├── Connector.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpClient.cc │ │ ├── TcpClient.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── http │ │ ├── CMakeLists.txt │ │ ├── HttpContext.h │ │ ├── HttpRequest.h │ │ ├── HttpResponse.cc │ │ ├── HttpResponse.h │ │ ├── HttpServer.cc │ │ ├── HttpServer.h │ │ └── tests │ │ │ ├── HttpRequest_unittest.cc │ │ │ └── HttpServer_test.cc │ │ ├── inspect │ │ ├── CMakeLists.txt │ │ ├── Inspector.cc │ │ ├── Inspector.h │ │ ├── ProcessInspector.cc │ │ ├── ProcessInspector.h │ │ └── tests │ │ │ └── Inspector_test.cc │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Filetransfer_test.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ ├── Reactor_test11.cc │ ├── Reactor_test12.cc │ ├── Reactor_test13.cc │ ├── TcpClient_test.cc │ └── bsa.cc ├── 47 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── examples │ ├── CMakeLists.txt │ ├── asio │ │ ├── chat │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.h │ │ │ ├── loadtest.cc │ │ │ ├── server.cc │ │ │ ├── server_threaded.cc │ │ │ ├── server_threaded_efficient.cc │ │ │ └── server_threaded_highperformance.cc │ │ ├── echo_see_simple │ │ └── tutorial │ │ │ ├── CMakeLists.txt │ │ │ ├── daytime_see_simple │ │ │ ├── there_is_no_timer1 │ │ │ ├── timer2 │ │ │ └── timer.cc │ │ │ ├── timer3 │ │ │ └── timer.cc │ │ │ ├── timer4 │ │ │ └── timer.cc │ │ │ ├── timer5 │ │ │ └── timer.cc │ │ │ └── timer6 │ │ │ └── timer.cc │ ├── cdns │ │ ├── CMakeLists.txt │ │ ├── Resolver.cc │ │ ├── Resolver.h │ │ └── dns.cc │ ├── curl │ │ ├── CMakeLists.txt │ │ ├── Curl.cc │ │ ├── Curl.h │ │ ├── README │ │ ├── download.cc │ │ └── mcurl.cc │ ├── fastcgi │ │ ├── CMakeLists.txt │ │ ├── fastcgi.cc │ │ ├── fastcgi.h │ │ └── fastcgi_test.cc │ ├── filetransfer │ │ ├── CMakeLists.txt │ │ ├── download.cc │ │ ├── download2.cc │ │ ├── download3.cc │ │ └── loadtest │ │ │ ├── Client.java │ │ │ └── Handler.java │ ├── hub │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── codec.cc │ │ ├── codec.h │ │ ├── hub.cc │ │ ├── pub.cc │ │ ├── pubsub.cc │ │ ├── pubsub.h │ │ └── sub.cc │ ├── idleconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ ├── main.cc │ │ └── sortedlist.cc │ ├── maxconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ └── main.cc │ ├── multiplexer │ │ ├── CMakeLists.txt │ │ ├── demux.cc │ │ ├── harness │ │ │ ├── run.sh │ │ │ └── src │ │ │ │ └── com │ │ │ │ └── chenshuo │ │ │ │ └── muduo │ │ │ │ └── example │ │ │ │ └── multiplexer │ │ │ │ ├── DataEvent.java │ │ │ │ ├── Event.java │ │ │ │ ├── EventQueue.java │ │ │ │ ├── EventSource.java │ │ │ │ ├── MockBackendServer.java │ │ │ │ ├── MockClient.java │ │ │ │ ├── MultiplexerTest.java │ │ │ │ ├── MyCountDownLatch.java │ │ │ │ ├── TestCase.java │ │ │ │ ├── TestFailedException.java │ │ │ │ └── testcase │ │ │ │ ├── TestOneClientBackendSend.java │ │ │ │ ├── TestOneClientBothSend.java │ │ │ │ ├── TestOneClientNoData.java │ │ │ │ ├── TestOneClientSend.java │ │ │ │ └── TestTwoClients.java │ │ ├── multiplexer.cc │ │ └── multiplexer_simple.cc │ ├── netty │ │ ├── discard │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ ├── echo │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ └── uptime │ │ │ ├── CMakeLists.txt │ │ │ └── uptime.cc │ ├── pingpong │ │ ├── CMakeLists.txt │ │ ├── bench.cc │ │ ├── client.cc │ │ └── server.cc │ ├── protobuf │ │ ├── CMakeLists.txt │ │ ├── codec │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.cc │ │ │ ├── codec.h │ │ │ ├── codec_test.cc │ │ │ ├── dispatcher.h │ │ │ ├── dispatcher_lite.h │ │ │ ├── dispatcher_lite_test.cc │ │ │ ├── dispatcher_test.cc │ │ │ ├── query.proto │ │ │ └── server.cc │ │ ├── resolver │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── resolver.proto │ │ │ └── server.cc │ │ ├── rpc │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── server.cc │ │ │ └── sudoku.proto │ │ └── rpcbench │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── echo.proto │ │ │ └── server.cc │ ├── roundtrip │ │ ├── CMakeLists.txt │ │ └── roundtrip.cc │ ├── shorturl │ │ ├── CMakeLists.txt │ │ └── shorturl.cc │ ├── simple │ │ ├── CMakeLists.txt │ │ ├── allinone │ │ │ └── allinone.cc │ │ ├── chargen │ │ │ ├── chargen.cc │ │ │ ├── chargen.h │ │ │ └── main.cc │ │ ├── chargenclient │ │ │ └── chargenclient.cc │ │ ├── daytime │ │ │ ├── daytime.cc │ │ │ ├── daytime.h │ │ │ └── main.cc │ │ ├── discard │ │ │ ├── discard.cc │ │ │ ├── discard.h │ │ │ └── main.cc │ │ ├── echo │ │ │ ├── echo.cc │ │ │ ├── echo.h │ │ │ └── main.cc │ │ ├── time │ │ │ ├── main.cc │ │ │ ├── time.cc │ │ │ └── time.h │ │ └── timeclient │ │ │ └── timeclient.cc │ ├── socks4a │ │ ├── CMakeLists.txt │ │ ├── socks4a.cc │ │ ├── tcprelay.cc │ │ └── tunnel.h │ ├── sudoku │ │ ├── CMakeLists.txt │ │ ├── server_basic.cc │ │ ├── server_multiloop.cc │ │ ├── server_threadpool.cc │ │ ├── sudoku.cc │ │ └── sudoku.h │ ├── twisted │ │ └── finger │ │ │ ├── CMakeLists.txt │ │ │ ├── README │ │ │ ├── finger01.cc │ │ │ ├── finger02.cc │ │ │ ├── finger03.cc │ │ │ ├── finger04.cc │ │ │ ├── finger05.cc │ │ │ ├── finger06.cc │ │ │ └── finger07.cc │ ├── wordcount │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── gen.py │ │ ├── hash.h │ │ ├── hasher.cc │ │ ├── receiver.cc │ │ └── slowsink.py │ └── zeromq │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── local_lat.cc │ │ └── remote_lat.cc │ ├── muduo │ ├── base │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── Buffer.cc │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Connector.cc │ │ ├── Connector.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpClient.cc │ │ ├── TcpClient.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── http │ │ ├── CMakeLists.txt │ │ ├── HttpContext.h │ │ ├── HttpRequest.h │ │ ├── HttpResponse.cc │ │ ├── HttpResponse.h │ │ ├── HttpServer.cc │ │ ├── HttpServer.h │ │ └── tests │ │ │ ├── HttpRequest_unittest.cc │ │ │ └── HttpServer_test.cc │ │ ├── inspect │ │ ├── CMakeLists.txt │ │ ├── Inspector.cc │ │ ├── Inspector.h │ │ ├── ProcessInspector.cc │ │ ├── ProcessInspector.h │ │ └── tests │ │ │ └── Inspector_test.cc │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Filetransfer_test.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ ├── Reactor_test11.cc │ ├── Reactor_test12.cc │ ├── Reactor_test13.cc │ ├── TcpClient_test.cc │ └── bsa.cc ├── 48 └── jmuduo │ ├── CMakeLists.txt │ ├── build.sh │ ├── examples │ ├── CMakeLists.txt │ ├── asio │ │ ├── chat │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.h │ │ │ ├── loadtest.cc │ │ │ ├── server.cc │ │ │ ├── server_threaded.cc │ │ │ ├── server_threaded_efficient.cc │ │ │ └── server_threaded_highperformance.cc │ │ ├── echo_see_simple │ │ └── tutorial │ │ │ ├── CMakeLists.txt │ │ │ ├── daytime_see_simple │ │ │ ├── there_is_no_timer1 │ │ │ ├── timer2 │ │ │ └── timer.cc │ │ │ ├── timer3 │ │ │ └── timer.cc │ │ │ ├── timer4 │ │ │ └── timer.cc │ │ │ ├── timer5 │ │ │ └── timer.cc │ │ │ └── timer6 │ │ │ └── timer.cc │ ├── cdns │ │ ├── CMakeLists.txt │ │ ├── Resolver.cc │ │ ├── Resolver.h │ │ └── dns.cc │ ├── curl │ │ ├── CMakeLists.txt │ │ ├── Curl.cc │ │ ├── Curl.h │ │ ├── README │ │ ├── download.cc │ │ └── mcurl.cc │ ├── fastcgi │ │ ├── CMakeLists.txt │ │ ├── fastcgi.cc │ │ ├── fastcgi.h │ │ └── fastcgi_test.cc │ ├── filetransfer │ │ ├── CMakeLists.txt │ │ ├── download.cc │ │ ├── download2.cc │ │ ├── download3.cc │ │ └── loadtest │ │ │ ├── Client.java │ │ │ └── Handler.java │ ├── hub │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── codec.cc │ │ ├── codec.h │ │ ├── hub.cc │ │ ├── pub.cc │ │ ├── pubsub.cc │ │ ├── pubsub.h │ │ └── sub.cc │ ├── idleconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ ├── main.cc │ │ └── sortedlist.cc │ ├── maxconnection │ │ ├── CMakeLists.txt │ │ ├── echo.cc │ │ ├── echo.h │ │ └── main.cc │ ├── multiplexer │ │ ├── CMakeLists.txt │ │ ├── demux.cc │ │ ├── harness │ │ │ ├── run.sh │ │ │ └── src │ │ │ │ └── com │ │ │ │ └── chenshuo │ │ │ │ └── muduo │ │ │ │ └── example │ │ │ │ └── multiplexer │ │ │ │ ├── DataEvent.java │ │ │ │ ├── Event.java │ │ │ │ ├── EventQueue.java │ │ │ │ ├── EventSource.java │ │ │ │ ├── MockBackendServer.java │ │ │ │ ├── MockClient.java │ │ │ │ ├── MultiplexerTest.java │ │ │ │ ├── MyCountDownLatch.java │ │ │ │ ├── TestCase.java │ │ │ │ ├── TestFailedException.java │ │ │ │ └── testcase │ │ │ │ ├── TestOneClientBackendSend.java │ │ │ │ ├── TestOneClientBothSend.java │ │ │ │ ├── TestOneClientNoData.java │ │ │ │ ├── TestOneClientSend.java │ │ │ │ └── TestTwoClients.java │ │ ├── multiplexer.cc │ │ └── multiplexer_simple.cc │ ├── netty │ │ ├── discard │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ ├── echo │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ └── server.cc │ │ └── uptime │ │ │ ├── CMakeLists.txt │ │ │ └── uptime.cc │ ├── pingpong │ │ ├── CMakeLists.txt │ │ ├── bench.cc │ │ ├── client.cc │ │ └── server.cc │ ├── protobuf │ │ ├── CMakeLists.txt │ │ ├── codec │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── codec.cc │ │ │ ├── codec.h │ │ │ ├── codec_test.cc │ │ │ ├── dispatcher.h │ │ │ ├── dispatcher_lite.h │ │ │ ├── dispatcher_lite_test.cc │ │ │ ├── dispatcher_test.cc │ │ │ ├── query.proto │ │ │ └── server.cc │ │ ├── resolver │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── resolver.proto │ │ │ └── server.cc │ │ ├── rpc │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── server.cc │ │ │ └── sudoku.proto │ │ └── rpcbench │ │ │ ├── CMakeLists.txt │ │ │ ├── client.cc │ │ │ ├── echo.proto │ │ │ └── server.cc │ ├── roundtrip │ │ ├── CMakeLists.txt │ │ └── roundtrip.cc │ ├── shorturl │ │ ├── CMakeLists.txt │ │ └── shorturl.cc │ ├── simple │ │ ├── CMakeLists.txt │ │ ├── allinone │ │ │ └── allinone.cc │ │ ├── chargen │ │ │ ├── chargen.cc │ │ │ ├── chargen.h │ │ │ └── main.cc │ │ ├── chargenclient │ │ │ └── chargenclient.cc │ │ ├── daytime │ │ │ ├── daytime.cc │ │ │ ├── daytime.h │ │ │ └── main.cc │ │ ├── discard │ │ │ ├── discard.cc │ │ │ ├── discard.h │ │ │ └── main.cc │ │ ├── echo │ │ │ ├── echo.cc │ │ │ ├── echo.h │ │ │ └── main.cc │ │ ├── time │ │ │ ├── main.cc │ │ │ ├── time.cc │ │ │ └── time.h │ │ └── timeclient │ │ │ └── timeclient.cc │ ├── socks4a │ │ ├── CMakeLists.txt │ │ ├── socks4a.cc │ │ ├── tcprelay.cc │ │ └── tunnel.h │ ├── sudoku │ │ ├── CMakeLists.txt │ │ ├── server_basic.cc │ │ ├── server_multiloop.cc │ │ ├── server_threadpool.cc │ │ ├── sudoku.cc │ │ └── sudoku.h │ ├── twisted │ │ └── finger │ │ │ ├── CMakeLists.txt │ │ │ ├── README │ │ │ ├── finger01.cc │ │ │ ├── finger02.cc │ │ │ ├── finger03.cc │ │ │ ├── finger04.cc │ │ │ ├── finger05.cc │ │ │ ├── finger06.cc │ │ │ └── finger07.cc │ ├── wordcount │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── gen.py │ │ ├── hash.h │ │ ├── hasher.cc │ │ ├── receiver.cc │ │ └── slowsink.py │ └── zeromq │ │ ├── CMakeLists.txt │ │ ├── README │ │ ├── local_lat.cc │ │ └── remote_lat.cc │ ├── muduo │ ├── base │ │ ├── AsyncLogging.cc │ │ ├── AsyncLogging.h │ │ ├── Atomic.h │ │ ├── BlockingQueue.h │ │ ├── BoundedBlockingQueue.h │ │ ├── CMakeLists.txt │ │ ├── Condition.cc │ │ ├── Condition.h │ │ ├── CountDownLatch.cc │ │ ├── CountDownLatch.h │ │ ├── CurrentThread.h │ │ ├── Exception.cc │ │ ├── Exception.h │ │ ├── FileUtil.cc │ │ ├── FileUtil.h │ │ ├── LogFile.cc │ │ ├── LogFile.h │ │ ├── LogStream.cc │ │ ├── LogStream.h │ │ ├── Logging.cc │ │ ├── Logging.h │ │ ├── Mutex.h │ │ ├── ProcessInfo.cc │ │ ├── ProcessInfo.h │ │ ├── Singleton.h │ │ ├── StringPiece.h │ │ ├── Thread.cc │ │ ├── Thread.h │ │ ├── ThreadLocal.h │ │ ├── ThreadLocalSingleton.h │ │ ├── ThreadPool.cc │ │ ├── ThreadPool.h │ │ ├── Timestamp.cc │ │ ├── Timestamp.h │ │ ├── Types.h │ │ ├── copyable.h │ │ └── tests │ │ │ ├── AsyncLogging_test.cc │ │ │ ├── Atomic_unittest.cc │ │ │ ├── BlockingQueue_bench.cc │ │ │ ├── BlockingQueue_test.cc │ │ │ ├── BoundedBlockingQueue_test.cc │ │ │ ├── CMakeLists.txt │ │ │ ├── Exception_test.cc │ │ │ ├── FileUtil_test.cc │ │ │ ├── LogFile_test.cc │ │ │ ├── LogStream_bench.cc │ │ │ ├── LogStream_test.cc │ │ │ ├── Logging_test.cc │ │ │ ├── Mutex_test.cc │ │ │ ├── SingletonThreadLocal_test.cc │ │ │ ├── Singleton_test.cc │ │ │ ├── ThreadLocalSingleton_test.cc │ │ │ ├── ThreadLocal_test.cc │ │ │ ├── ThreadPool_test.cc │ │ │ ├── Thread_test.cc │ │ │ └── Timestamp_unittest.cc │ └── net │ │ ├── Acceptor.cc │ │ ├── Acceptor.h │ │ ├── Buffer.cc │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── Callbacks.h │ │ ├── Channel.cc │ │ ├── Channel.h │ │ ├── Connector.cc │ │ ├── Connector.h │ │ ├── Endian.h │ │ ├── EventLoop.cc │ │ ├── EventLoop.h │ │ ├── EventLoopThread.cc │ │ ├── EventLoopThread.h │ │ ├── EventLoopThreadPool.cc │ │ ├── EventLoopThreadPool.h │ │ ├── InetAddress.cc │ │ ├── InetAddress.h │ │ ├── Poller.cc │ │ ├── Poller.h │ │ ├── Socket.cc │ │ ├── Socket.h │ │ ├── SocketsOps.cc │ │ ├── SocketsOps.h │ │ ├── TcpClient.cc │ │ ├── TcpClient.h │ │ ├── TcpConnection.cc │ │ ├── TcpConnection.h │ │ ├── TcpServer.cc │ │ ├── TcpServer.h │ │ ├── Timer.cc │ │ ├── Timer.h │ │ ├── TimerId.h │ │ ├── TimerQueue.cc │ │ ├── TimerQueue.h │ │ ├── http │ │ ├── CMakeLists.txt │ │ ├── HttpContext.h │ │ ├── HttpRequest.h │ │ ├── HttpResponse.cc │ │ ├── HttpResponse.h │ │ ├── HttpServer.cc │ │ ├── HttpServer.h │ │ └── tests │ │ │ ├── HttpRequest_unittest.cc │ │ │ └── HttpServer_test.cc │ │ ├── inspect │ │ ├── CMakeLists.txt │ │ ├── Inspector.cc │ │ ├── Inspector.h │ │ ├── ProcessInspector.cc │ │ ├── ProcessInspector.h │ │ └── tests │ │ │ └── Inspector_test.cc │ │ ├── poller │ │ ├── DefaultPoller.cc │ │ ├── EPollPoller.cc │ │ ├── EPollPoller.h │ │ ├── PollPoller.cc │ │ └── PollPoller.h │ │ └── tests │ │ ├── CMakeLists.txt │ │ └── InetAddress_unittest.cc │ └── tests │ ├── CMakeLists.txt │ ├── CountDownLatch_test1.cc │ ├── CountDownLatch_test2.cc │ ├── Deadlock_test.cc │ ├── Deadlock_test2.cc │ ├── Filetransfer_test.cc │ ├── Log_test1.cc │ ├── Log_test2.cc │ ├── Pthread_atfork_test.cc │ ├── Reactor_test01.cc │ ├── Reactor_test02.cc │ ├── Reactor_test03.cc │ ├── Reactor_test04.cc │ ├── Reactor_test05.cc │ ├── Reactor_test06.cc │ ├── Reactor_test07.cc │ ├── Reactor_test08.cc │ ├── Reactor_test09.cc │ ├── Reactor_test10.cc │ ├── Reactor_test11.cc │ ├── Reactor_test12.cc │ ├── Reactor_test13.cc │ ├── TcpClient_test.cc │ └── bsa.cc ├── 49 ├── ABCBank │ ├── BankClient │ │ ├── BankClient.sln │ │ ├── BankClient.suo │ │ ├── BankClient.vcproj │ │ ├── BankClient.vcproj.SD8NWFFFQEQKGYE.Administrator.user │ │ ├── BankSession.cpp │ │ ├── BankSession.h │ │ ├── CMD │ │ │ ├── BalanceInquiry.cpp │ │ │ ├── BalanceInquiry.h │ │ │ ├── ChangePassword.cpp │ │ │ ├── ChangePassword.h │ │ │ ├── CloseAccount.cpp │ │ │ ├── CloseAccount.h │ │ │ ├── Deposit.cpp │ │ │ ├── Deposit.h │ │ │ ├── OpenAccount.cpp │ │ │ ├── OpenAccount.h │ │ │ ├── QueryAccountHistoryBill.cpp │ │ │ ├── QueryAccountHistoryBill.h │ │ │ ├── QueryDayBill.cpp │ │ │ ├── QueryDayBill.h │ │ │ ├── QueryHistoryBill.cpp │ │ │ ├── QueryHistoryBill.h │ │ │ ├── Transaction.h │ │ │ ├── Transfer.cpp │ │ │ ├── Transfer.h │ │ │ ├── UserLogin.cpp │ │ │ ├── UserLogin.h │ │ │ ├── Withdrawal.cpp │ │ │ └── Withdrawal.h │ │ ├── Client.cpp │ │ ├── Client.h │ │ ├── JFC │ │ │ ├── JApplication.cpp │ │ │ ├── JApplication.h │ │ │ ├── JButton.cpp │ │ │ ├── JButton.h │ │ │ ├── JEdit.cpp │ │ │ ├── JEdit.h │ │ │ ├── JEvent.h │ │ │ ├── JForm.cpp │ │ │ ├── JForm.h │ │ │ ├── JLabel.cpp │ │ │ ├── JLabel.h │ │ │ ├── JLinkText.cpp │ │ │ ├── JLinkText.h │ │ │ ├── JMessageBox.cpp │ │ │ ├── JMessageBox.h │ │ │ ├── JWindow.cpp │ │ │ ├── JWindow.h │ │ │ ├── JWindowBase.cpp │ │ │ └── JWindowBase.h │ │ ├── TransDetail.h │ │ ├── TransactionManager.cpp │ │ ├── TransactionManager.h │ │ ├── UI │ │ │ ├── BalanceInquiryForm.cpp │ │ │ ├── BalanceInquiryForm.h │ │ │ ├── ChangePasswordForm.cpp │ │ │ ├── ChangePasswordForm.h │ │ │ ├── CloseAccountForm.cpp │ │ │ ├── CloseAccountForm.h │ │ │ ├── DepositForm.cpp │ │ │ ├── DepositForm.h │ │ │ ├── DetailStatementForm.cpp │ │ │ ├── DetailStatementForm.h │ │ │ ├── FormManager.cpp │ │ │ ├── FormManager.h │ │ │ ├── LoginForm.cpp │ │ │ ├── LoginForm.h │ │ │ ├── MainMenuForm.cpp │ │ │ ├── MainMenuForm.h │ │ │ ├── OpenAccountForm.cpp │ │ │ ├── OpenAccountForm.h │ │ │ ├── QueryAccountHistoryBillForm.cpp │ │ │ ├── QueryAccountHistoryBillForm.h │ │ │ ├── QueryDayBillForm.cpp │ │ │ ├── QueryDayBillForm.h │ │ │ ├── QueryHistoryBillForm.cpp │ │ │ ├── QueryHistoryBillForm.h │ │ │ ├── ReceiptForm.cpp │ │ │ ├── ReceiptForm.h │ │ │ ├── ReportForm.cpp │ │ │ ├── ReportForm.h │ │ │ ├── TransferForm.cpp │ │ │ ├── TransferForm.h │ │ │ ├── Validator.cpp │ │ │ ├── Validator.h │ │ │ ├── WithdrawalForm.cpp │ │ │ └── WithdrawalForm.h │ │ ├── client.conf │ │ └── main.cpp │ ├── BankServer │ │ ├── BankServer.sln │ │ ├── BankServer.suo │ │ ├── BankServer.vcproj │ │ ├── BankServer.vcproj.SD8NWFFFQEQKGYE.Administrator.user │ │ ├── BankSession.cpp │ │ ├── BankSession.h │ │ ├── BankThread.cpp │ │ ├── BankThread.h │ │ ├── CMD │ │ │ ├── BalanceInquiry.cpp │ │ │ ├── BalanceInquiry.h │ │ │ ├── ChangePassword.cpp │ │ │ ├── ChangePassword.h │ │ │ ├── CloseAccount.cpp │ │ │ ├── CloseAccount.h │ │ │ ├── Deposit.cpp │ │ │ ├── Deposit.h │ │ │ ├── OpenAccount.cpp │ │ │ ├── OpenAccount.h │ │ │ ├── QueryAccountHistoryBill.cpp │ │ │ ├── QueryAccountHistoryBill.h │ │ │ ├── QueryDayBill.cpp │ │ │ ├── QueryDayBill.h │ │ │ ├── QueryHistoryBill.cpp │ │ │ ├── QueryHistoryBill.h │ │ │ ├── Transaction.h │ │ │ ├── Transfer.cpp │ │ │ ├── Transfer.h │ │ │ ├── UserLogin.cpp │ │ │ ├── UserLogin.h │ │ │ ├── Withdrawal.cpp │ │ │ └── Withdrawal.h │ │ ├── DAL │ │ │ ├── Account.h │ │ │ ├── BankService.cpp │ │ │ ├── BankService.h │ │ │ ├── IBankService.h │ │ │ ├── MysqlDB.cpp │ │ │ ├── MysqlDB.h │ │ │ └── TransDetail.h │ │ ├── Server.cpp │ │ ├── Server.h │ │ ├── TransactionManager.cpp │ │ ├── TransactionManager.h │ │ ├── main.cpp │ │ └── server.conf │ ├── Bin │ │ ├── BankClient-short.exe │ │ ├── BankClient.exe │ │ ├── BankClient.ilk │ │ ├── BankClient.pdb │ │ ├── BankServer.ilk │ │ ├── client.conf │ │ ├── libmysql.dll │ │ └── server.conf │ ├── Inc │ │ ├── decimal.h │ │ ├── errmsg.h │ │ ├── keycache.h │ │ ├── m_ctype.h │ │ ├── m_string.h │ │ ├── my_alloc.h │ │ ├── my_attribute.h │ │ ├── my_compiler.h │ │ ├── my_config.h │ │ ├── my_dbug.h │ │ ├── my_dir.h │ │ ├── my_getopt.h │ │ ├── my_global.h │ │ ├── my_list.h │ │ ├── my_net.h │ │ ├── my_pthread.h │ │ ├── my_sys.h │ │ ├── my_xml.h │ │ ├── mysql.h │ │ ├── mysql │ │ │ ├── client_plugin.h │ │ │ ├── innodb_priv.h │ │ │ ├── plugin.h │ │ │ ├── plugin_audit.h │ │ │ ├── plugin_auth.h │ │ │ ├── plugin_auth_common.h │ │ │ ├── plugin_ftparser.h │ │ │ ├── psi │ │ │ │ ├── mysql_file.h │ │ │ │ ├── mysql_thread.h │ │ │ │ ├── psi.h │ │ │ │ ├── psi_abi_v1.h │ │ │ │ └── psi_abi_v2.h │ │ │ ├── service_my_snprintf.h │ │ │ ├── service_thd_alloc.h │ │ │ ├── service_thd_wait.h │ │ │ ├── service_thread_scheduler.h │ │ │ ├── services.h │ │ │ └── thread_pool_priv.h │ │ ├── mysql_com.h │ │ ├── mysql_embed.h │ │ ├── mysql_time.h │ │ ├── mysql_version.h │ │ ├── mysqld_ername.h │ │ ├── mysqld_error.h │ │ ├── plugin.h │ │ ├── plugin_audit.h │ │ ├── plugin_ftparser.h │ │ ├── sql_common.h │ │ ├── sql_state.h │ │ ├── sslopt-case.h │ │ ├── sslopt-longopts.h │ │ ├── sslopt-vars.h │ │ └── typelib.h │ ├── Lib │ │ └── libmysql.lib │ └── Public │ │ ├── Date.cpp │ │ ├── Date.h │ │ ├── Exception.cpp │ │ ├── Exception.h │ │ ├── Idea.cpp │ │ ├── Idea.h │ │ ├── JInStream.cpp │ │ ├── JInStream.h │ │ ├── JOutStream.cpp │ │ ├── JOutStream.h │ │ ├── JThread.cpp │ │ ├── JThread.h │ │ ├── JUtil.cpp │ │ ├── JUtil.h │ │ ├── LogStream.cpp │ │ ├── LogStream.h │ │ ├── Logging.cpp │ │ ├── Logging.h │ │ ├── MD5.cpp │ │ ├── MD5.h │ │ ├── Singleton.h │ │ ├── Socket.cpp │ │ ├── Socket.h │ │ ├── StringUtil.cpp │ │ ├── StringUtil.h │ │ ├── SystemConfig.h │ │ ├── Systemconfig.cpp │ │ ├── Timestamp.cpp │ │ └── Timestamp.h ├── abcbank-muduo.tar.gz ├── crebas.sql └── server.conf ├── 03 ├── Makefile ├── echocli.cpp ├── echosrv_poll.cpp └── tmp │ ├── CMakeLists.txt │ └── build.sh ├── 04 ├── CMakeLists.txt ├── build.sh ├── echocli.cpp └── echosrv_poll.cpp ├── 05 ├── CMakeLists.txt ├── build.sh ├── echocli.cpp ├── echosrv_epoll.cpp └── echosrv_poll.cpp ├── 08 ├── CMakeLists.txt ├── Thread.cpp ├── Thread.h ├── Thread_test.cpp └── build.sh └── 09 ├── CMakeLists.txt ├── Thread.cpp ├── Thread.h ├── Thread_test.cpp ├── bf_test.cpp └── build.sh /README.md: -------------------------------------------------------------------------------- 1 | # muduo_server_learn 2 | # 大并发服务器开发课程的源代码,有需要的自取 3 | # 获取方法: 4 | git clone https://github.com/iceCream1997/muduo_server_learn.git 5 | -------------------------------------------------------------------------------- /ppt/01大并发服务器架构介绍.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/01大并发服务器架构介绍.ppt -------------------------------------------------------------------------------- /ppt/02大型网站架构演变过程.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/02大型网站架构演变过程.ppt -------------------------------------------------------------------------------- /ppt/03poll(一).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/03poll(一).ppt -------------------------------------------------------------------------------- /ppt/04poll(二).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/04poll(二).ppt -------------------------------------------------------------------------------- /ppt/05epoll(一).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/05epoll(一).ppt -------------------------------------------------------------------------------- /ppt/06epoll(二).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/06epoll(二).ppt -------------------------------------------------------------------------------- /ppt/07muduo介绍.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/07muduo介绍.ppt -------------------------------------------------------------------------------- /ppt/08面向对象编程风格.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/08面向对象编程风格.ppt -------------------------------------------------------------------------------- /ppt/09基于对象编程风格.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/09基于对象编程风格.ppt -------------------------------------------------------------------------------- /ppt/10muduo_base库源码分析(一).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/10muduo_base库源码分析(一).ppt -------------------------------------------------------------------------------- /ppt/11muduo_base库源码分析(二).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/11muduo_base库源码分析(二).ppt -------------------------------------------------------------------------------- /ppt/12muduo_base库源码分析(三).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/12muduo_base库源码分析(三).ppt -------------------------------------------------------------------------------- /ppt/13muduo_base库源码分析(四).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/13muduo_base库源码分析(四).ppt -------------------------------------------------------------------------------- /ppt/14muduo_base库源码分析(五).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/14muduo_base库源码分析(五).ppt -------------------------------------------------------------------------------- /ppt/15muduo_base库源码分析(六).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/15muduo_base库源码分析(六).ppt -------------------------------------------------------------------------------- /ppt/16muduo_base库源码分析(七).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/16muduo_base库源码分析(七).ppt -------------------------------------------------------------------------------- /ppt/17muduo_base库源码分析(八).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/17muduo_base库源码分析(八).ppt -------------------------------------------------------------------------------- /ppt/18muduo_base库源码分析(九).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/18muduo_base库源码分析(九).ppt -------------------------------------------------------------------------------- /ppt/19muduo_base库源码分析(十).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/19muduo_base库源码分析(十).ppt -------------------------------------------------------------------------------- /ppt/20muduo_base库源码分析(十一).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/20muduo_base库源码分析(十一).ppt -------------------------------------------------------------------------------- /ppt/21muduo_base库源码分析(十二).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/21muduo_base库源码分析(十二).ppt -------------------------------------------------------------------------------- /ppt/22muduo_base库源码分析(十三).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/22muduo_base库源码分析(十三).ppt -------------------------------------------------------------------------------- /ppt/25muduo_net库源码分析(一).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/25muduo_net库源码分析(一).ppt -------------------------------------------------------------------------------- /ppt/26muduo_net库源码分析(二).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/26muduo_net库源码分析(二).ppt -------------------------------------------------------------------------------- /ppt/27muduo_net库源码分析(三).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/27muduo_net库源码分析(三).ppt -------------------------------------------------------------------------------- /ppt/28muduo_net库源码分析(四).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/28muduo_net库源码分析(四).ppt -------------------------------------------------------------------------------- /ppt/29muduo_net库源码分析(五).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/29muduo_net库源码分析(五).ppt -------------------------------------------------------------------------------- /ppt/30muduo_net库源码分析(六).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/30muduo_net库源码分析(六).ppt -------------------------------------------------------------------------------- /ppt/31muduo_net库源码分析(七).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/31muduo_net库源码分析(七).ppt -------------------------------------------------------------------------------- /ppt/32muduo_net库源码分析(八).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/32muduo_net库源码分析(八).ppt -------------------------------------------------------------------------------- /ppt/33muduo_net库源码分析(九).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/33muduo_net库源码分析(九).ppt -------------------------------------------------------------------------------- /ppt/34muduo_net库源码分析(十).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/34muduo_net库源码分析(十).ppt -------------------------------------------------------------------------------- /ppt/35muduo_net库源码分析(十一).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/35muduo_net库源码分析(十一).ppt -------------------------------------------------------------------------------- /ppt/36muduo_net库源码分析(十二).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/36muduo_net库源码分析(十二).ppt -------------------------------------------------------------------------------- /ppt/37muduo_net库源码分析(十三).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/37muduo_net库源码分析(十三).ppt -------------------------------------------------------------------------------- /ppt/38muduo_net库源码分析(十四).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/38muduo_net库源码分析(十四).ppt -------------------------------------------------------------------------------- /ppt/39muduo_net库源码分析(十五).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/39muduo_net库源码分析(十五).ppt -------------------------------------------------------------------------------- /ppt/40muduo_http库源码分析.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/40muduo_http库源码分析.ppt -------------------------------------------------------------------------------- /ppt/41muduo_inspect库源码分析.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/41muduo_inspect库源码分析.ppt -------------------------------------------------------------------------------- /ppt/42muduo库使用示例(一).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/42muduo库使用示例(一).ppt -------------------------------------------------------------------------------- /ppt/43muduo库使用示例(二).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/43muduo库使用示例(二).ppt -------------------------------------------------------------------------------- /ppt/44muduo库使用示例(三).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/44muduo库使用示例(三).ppt -------------------------------------------------------------------------------- /ppt/45muduo库使用示例(四).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/45muduo库使用示例(四).ppt -------------------------------------------------------------------------------- /ppt/46muduo库使用示例(五).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/46muduo库使用示例(五).ppt -------------------------------------------------------------------------------- /ppt/47muduo库使用示例(六).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/47muduo库使用示例(六).ppt -------------------------------------------------------------------------------- /ppt/48muduo库使用示例(七).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/48muduo库使用示例(七).ppt -------------------------------------------------------------------------------- /ppt/ABCBank(muduo版).ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/ABCBank(muduo版).ppt -------------------------------------------------------------------------------- /ppt/MuduoManual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/ppt/MuduoManual.pdf -------------------------------------------------------------------------------- /src/03/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY:clean 2 | CC=g++ 3 | CPPFLAGS=-Wall -g 4 | BIN=echosrv_poll echocli 5 | all:$(BIN) 6 | %.o:%.c 7 | $(CC) $(CFLAGS) -c $< -o $@ 8 | clean: 9 | rm -f *.o $(BIN) 10 | -------------------------------------------------------------------------------- /src/03/echosrv_poll.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/03/echosrv_poll.cpp -------------------------------------------------------------------------------- /src/03/tmp/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | project(pas CXX) 4 | 5 | set(CXX_FLAGS -g -Wall) 6 | set(CMAKE_CXX_COMPILER "g++") 7 | string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CXX_FLAGS}") 8 | 9 | set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) 10 | 11 | add_executable(echosrv_poll echosrv_poll.cpp) 12 | add_executable(echocli echocli.cpp) 13 | -------------------------------------------------------------------------------- /src/03/tmp/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -x 4 | 5 | SOURCE_DIR=`pwd` 6 | BUILD_DIR=${BUILD_DIR:-build} 7 | 8 | mkdir -p $BUILD_DIR \ 9 | && cd $BUILD_DIR \ 10 | && cmake $SOURCE_DIR \ 11 | && make $* 12 | 13 | -------------------------------------------------------------------------------- /src/04/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | project(pas CXX) 4 | 5 | set(CXX_FLAGS -g -Wall) 6 | set(CMAKE_CXX_COMPILER "g++") 7 | string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CXX_FLAGS}") 8 | 9 | set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) 10 | 11 | add_executable(echosrv_poll echosrv_poll.cpp) 12 | add_executable(echocli echocli.cpp) 13 | -------------------------------------------------------------------------------- /src/04/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -x 4 | 5 | SOURCE_DIR=`pwd` 6 | BUILD_DIR=${BUILD_DIR:-../build} 7 | 8 | mkdir -p $BUILD_DIR \ 9 | && cd $BUILD_DIR \ 10 | && cmake $SOURCE_DIR \ 11 | && make $* 12 | 13 | -------------------------------------------------------------------------------- /src/04/echosrv_poll.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/04/echosrv_poll.cpp -------------------------------------------------------------------------------- /src/05/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | project(pas CXX) 4 | 5 | set(CXX_FLAGS -g -Wall) 6 | set(CMAKE_CXX_COMPILER "g++") 7 | string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CXX_FLAGS}") 8 | 9 | set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) 10 | 11 | add_executable(echosrv_poll echosrv_poll.cpp) 12 | add_executable(echosrv_epoll echosrv_epoll.cpp) 13 | add_executable(echocli echocli.cpp) 14 | -------------------------------------------------------------------------------- /src/05/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -x 4 | 5 | SOURCE_DIR=`pwd` 6 | BUILD_DIR=${BUILD_DIR:-../build} 7 | 8 | mkdir -p $BUILD_DIR \ 9 | && cd $BUILD_DIR \ 10 | && cmake $SOURCE_DIR \ 11 | && make $* 12 | 13 | -------------------------------------------------------------------------------- /src/05/echosrv_poll.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/05/echosrv_poll.cpp -------------------------------------------------------------------------------- /src/08/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | project(pas CXX) 4 | 5 | set(CXX_FLAGS -g -Wall) 6 | set(CMAKE_CXX_COMPILER "g++") 7 | string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CXX_FLAGS}") 8 | 9 | set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) 10 | 11 | add_executable(Thread_test Thread_test.cpp Thread.cpp) 12 | target_link_libraries(Thread_test pthread) 13 | -------------------------------------------------------------------------------- /src/08/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -x 4 | 5 | SOURCE_DIR=`pwd` 6 | BUILD_DIR=${BUILD_DIR:-../build} 7 | 8 | mkdir -p $BUILD_DIR \ 9 | && cd $BUILD_DIR \ 10 | && cmake $SOURCE_DIR \ 11 | && make $* 12 | 13 | -------------------------------------------------------------------------------- /src/09/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.6) 2 | 3 | project(pas CXX) 4 | 5 | set(CXX_FLAGS -g -Wall) 6 | set(CMAKE_CXX_COMPILER "g++") 7 | string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CXX_FLAGS}") 8 | 9 | set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) 10 | 11 | add_executable(Thread_test Thread_test.cpp Thread.cpp) 12 | target_link_libraries(Thread_test pthread) 13 | add_executable(bf_test bf_test.cpp) 14 | -------------------------------------------------------------------------------- /src/09/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -x 4 | 5 | SOURCE_DIR=`pwd` 6 | BUILD_DIR=${BUILD_DIR:-../build} 7 | 8 | mkdir -p $BUILD_DIR \ 9 | && cd $BUILD_DIR \ 10 | && cmake $SOURCE_DIR \ 11 | && make $* 12 | 13 | -------------------------------------------------------------------------------- /src/10/jmuduo/muduo/base/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(base_SRCS 2 | Timestamp.cc 3 | ) 4 | 5 | add_library(muduo_base ${base_SRCS}) 6 | target_link_libraries(muduo_base pthread rt) 7 | 8 | install(TARGETS muduo_base DESTINATION lib) 9 | file(GLOB HEADERS "*.h") 10 | install(FILES ${HEADERS} DESTINATION include/muduo/base) 11 | 12 | if(NOT CMAKE_BUILD_NO_EXAMPLES) 13 | add_subdirectory(tests) 14 | endif() 15 | -------------------------------------------------------------------------------- /src/10/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/10/jmuduo/muduo/base/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(timestamp_unittest Timestamp_unittest.cc) 2 | target_link_libraries(timestamp_unittest muduo_base) 3 | -------------------------------------------------------------------------------- /src/10/jmuduo/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(bsa bsa.cc) 2 | -------------------------------------------------------------------------------- /src/10/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/11/jmuduo/muduo/base/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(base_SRCS 2 | Timestamp.cc 3 | ) 4 | 5 | add_library(muduo_base ${base_SRCS}) 6 | target_link_libraries(muduo_base pthread rt) 7 | 8 | install(TARGETS muduo_base DESTINATION lib) 9 | file(GLOB HEADERS "*.h") 10 | install(FILES ${HEADERS} DESTINATION include/muduo/base) 11 | 12 | if(NOT CMAKE_BUILD_NO_EXAMPLES) 13 | add_subdirectory(tests) 14 | endif() 15 | -------------------------------------------------------------------------------- /src/11/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/11/jmuduo/muduo/base/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(timestamp_unittest Timestamp_unittest.cc) 2 | target_link_libraries(timestamp_unittest muduo_base) 3 | 4 | add_executable(atomic_unittest Atomic_unittest.cc) 5 | #target_link_libraries(atomic_unittest muduo_base) 6 | -------------------------------------------------------------------------------- /src/11/jmuduo/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(bsa bsa.cc) 2 | -------------------------------------------------------------------------------- /src/11/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/12/jmuduo/muduo/base/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(base_SRCS 2 | Exception.cc 3 | Timestamp.cc 4 | ) 5 | 6 | add_library(muduo_base ${base_SRCS}) 7 | target_link_libraries(muduo_base pthread rt) 8 | 9 | install(TARGETS muduo_base DESTINATION lib) 10 | file(GLOB HEADERS "*.h") 11 | install(FILES ${HEADERS} DESTINATION include/muduo/base) 12 | 13 | if(NOT CMAKE_BUILD_NO_EXAMPLES) 14 | add_subdirectory(tests) 15 | endif() 16 | -------------------------------------------------------------------------------- /src/12/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/12/jmuduo/muduo/base/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(atomic_unittest Atomic_unittest.cc) 2 | #target_link_libraries(atomic_unittest muduo_base) 3 | 4 | add_executable(exception_test Exception_test.cc) 5 | target_link_libraries(exception_test muduo_base) 6 | 7 | add_executable(timestamp_unittest Timestamp_unittest.cc) 8 | target_link_libraries(timestamp_unittest muduo_base) 9 | 10 | -------------------------------------------------------------------------------- /src/12/jmuduo/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(bsa bsa.cc) 2 | -------------------------------------------------------------------------------- /src/12/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/13/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/13/jmuduo/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(bsa bsa.cc) 2 | 3 | add_executable(deadlock_test Deadlock_test.cc) 4 | target_link_libraries(deadlock_test pthread) 5 | 6 | add_executable(deadlock_test2 Deadlock_test2.cc) 7 | target_link_libraries(deadlock_test2 pthread) 8 | 9 | add_executable(pthread_atfork_test Pthread_atfork_test.cc) 10 | target_link_libraries(pthread_atfork_test pthread) 11 | -------------------------------------------------------------------------------- /src/13/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/14/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/14/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/15/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/15/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/16/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/16/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/17/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/17/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/18/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/18/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/19/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/19/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/20/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/20/jmuduo/tests/Log_test1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | 6 | int main() 7 | { 8 | LOG_TRACE<<"trace ..."; 9 | LOG_DEBUG<<"debug ..."; 10 | LOG_INFO<<"info ..."; 11 | LOG_WARN<<"warn ..."; 12 | LOG_ERROR<<"error ..."; 13 | //LOG_FATAL<<"fatal ..."; 14 | errno = 13; 15 | LOG_SYSERR<<"syserr ..."; 16 | LOG_SYSFATAL<<"sysfatal ..."; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/20/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/21/jmuduo/muduo/base/LogStream.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/21/jmuduo/muduo/base/LogStream.cc -------------------------------------------------------------------------------- /src/21/jmuduo/muduo/base/LogStream.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/21/jmuduo/muduo/base/LogStream.h -------------------------------------------------------------------------------- /src/21/jmuduo/muduo/base/StringPiece.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/21/jmuduo/muduo/base/StringPiece.h -------------------------------------------------------------------------------- /src/21/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/21/jmuduo/tests/Log_test1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | 6 | int main() 7 | { 8 | LOG_TRACE<<"trace ..."; 9 | LOG_DEBUG<<"debug ..."; 10 | LOG_INFO<<"info ..."; 11 | LOG_WARN<<"warn ..."; 12 | LOG_ERROR<<"error ..."; 13 | //LOG_FATAL<<"fatal ..."; 14 | errno = 13; 15 | LOG_SYSERR<<"syserr ..."; 16 | LOG_SYSFATAL<<"sysfatal ..."; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/21/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/22/jmuduo/muduo/base/LogFile.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/22/jmuduo/muduo/base/LogFile.cc -------------------------------------------------------------------------------- /src/22/jmuduo/muduo/base/LogFile.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/22/jmuduo/muduo/base/LogFile.h -------------------------------------------------------------------------------- /src/22/jmuduo/muduo/base/LogStream.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/22/jmuduo/muduo/base/LogStream.cc -------------------------------------------------------------------------------- /src/22/jmuduo/muduo/base/LogStream.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/22/jmuduo/muduo/base/LogStream.h -------------------------------------------------------------------------------- /src/22/jmuduo/muduo/base/StringPiece.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/22/jmuduo/muduo/base/StringPiece.h -------------------------------------------------------------------------------- /src/22/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/22/jmuduo/tests/Log_test1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | 6 | int main() 7 | { 8 | LOG_TRACE<<"trace ..."; 9 | LOG_DEBUG<<"debug ..."; 10 | LOG_INFO<<"info ..."; 11 | LOG_WARN<<"warn ..."; 12 | LOG_ERROR<<"error ..."; 13 | //LOG_FATAL<<"fatal ..."; 14 | errno = 13; 15 | LOG_SYSERR<<"syserr ..."; 16 | LOG_SYSFATAL<<"sysfatal ..."; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/22/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/25/jmuduo/muduo/base/LogFile.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/25/jmuduo/muduo/base/LogFile.cc -------------------------------------------------------------------------------- /src/25/jmuduo/muduo/base/LogFile.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/25/jmuduo/muduo/base/LogFile.h -------------------------------------------------------------------------------- /src/25/jmuduo/muduo/base/LogStream.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/25/jmuduo/muduo/base/LogStream.cc -------------------------------------------------------------------------------- /src/25/jmuduo/muduo/base/LogStream.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/25/jmuduo/muduo/base/LogStream.h -------------------------------------------------------------------------------- /src/25/jmuduo/muduo/base/StringPiece.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/25/jmuduo/muduo/base/StringPiece.h -------------------------------------------------------------------------------- /src/25/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/25/jmuduo/tests/Log_test1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | 6 | int main() 7 | { 8 | LOG_TRACE<<"trace ..."; 9 | LOG_DEBUG<<"debug ..."; 10 | LOG_INFO<<"info ..."; 11 | LOG_WARN<<"warn ..."; 12 | LOG_ERROR<<"error ..."; 13 | //LOG_FATAL<<"fatal ..."; 14 | errno = 13; 15 | LOG_SYSERR<<"syserr ..."; 16 | LOG_SYSFATAL<<"sysfatal ..."; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/25/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/25/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/26/jmuduo/muduo/base/LogFile.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/26/jmuduo/muduo/base/LogFile.cc -------------------------------------------------------------------------------- /src/26/jmuduo/muduo/base/LogFile.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/26/jmuduo/muduo/base/LogFile.h -------------------------------------------------------------------------------- /src/26/jmuduo/muduo/base/LogStream.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/26/jmuduo/muduo/base/LogStream.cc -------------------------------------------------------------------------------- /src/26/jmuduo/muduo/base/LogStream.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/26/jmuduo/muduo/base/LogStream.h -------------------------------------------------------------------------------- /src/26/jmuduo/muduo/base/StringPiece.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/26/jmuduo/muduo/base/StringPiece.h -------------------------------------------------------------------------------- /src/26/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/26/jmuduo/tests/Log_test1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | 6 | int main() 7 | { 8 | LOG_TRACE<<"trace ..."; 9 | LOG_DEBUG<<"debug ..."; 10 | LOG_INFO<<"info ..."; 11 | LOG_WARN<<"warn ..."; 12 | LOG_ERROR<<"error ..."; 13 | //LOG_FATAL<<"fatal ..."; 14 | errno = 13; 15 | LOG_SYSERR<<"syserr ..."; 16 | LOG_SYSFATAL<<"sysfatal ..."; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/26/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/26/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/27/jmuduo/muduo/base/LogFile.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/27/jmuduo/muduo/base/LogFile.cc -------------------------------------------------------------------------------- /src/27/jmuduo/muduo/base/LogFile.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/27/jmuduo/muduo/base/LogFile.h -------------------------------------------------------------------------------- /src/27/jmuduo/muduo/base/LogStream.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/27/jmuduo/muduo/base/LogStream.cc -------------------------------------------------------------------------------- /src/27/jmuduo/muduo/base/LogStream.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/27/jmuduo/muduo/base/LogStream.h -------------------------------------------------------------------------------- /src/27/jmuduo/muduo/base/StringPiece.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/27/jmuduo/muduo/base/StringPiece.h -------------------------------------------------------------------------------- /src/27/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/27/jmuduo/tests/Log_test1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | 6 | int main() 7 | { 8 | LOG_TRACE<<"trace ..."; 9 | LOG_DEBUG<<"debug ..."; 10 | LOG_INFO<<"info ..."; 11 | LOG_WARN<<"warn ..."; 12 | LOG_ERROR<<"error ..."; 13 | //LOG_FATAL<<"fatal ..."; 14 | errno = 13; 15 | LOG_SYSERR<<"syserr ..."; 16 | LOG_SYSFATAL<<"sysfatal ..."; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/27/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/27/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/28/jmuduo/muduo/base/LogFile.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/28/jmuduo/muduo/base/LogFile.cc -------------------------------------------------------------------------------- /src/28/jmuduo/muduo/base/LogFile.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/28/jmuduo/muduo/base/LogFile.h -------------------------------------------------------------------------------- /src/28/jmuduo/muduo/base/LogStream.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/28/jmuduo/muduo/base/LogStream.cc -------------------------------------------------------------------------------- /src/28/jmuduo/muduo/base/LogStream.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/28/jmuduo/muduo/base/LogStream.h -------------------------------------------------------------------------------- /src/28/jmuduo/muduo/base/StringPiece.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/28/jmuduo/muduo/base/StringPiece.h -------------------------------------------------------------------------------- /src/28/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/28/jmuduo/tests/Log_test1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | 6 | int main() 7 | { 8 | LOG_TRACE<<"trace ..."; 9 | LOG_DEBUG<<"debug ..."; 10 | LOG_INFO<<"info ..."; 11 | LOG_WARN<<"warn ..."; 12 | LOG_ERROR<<"error ..."; 13 | //LOG_FATAL<<"fatal ..."; 14 | errno = 13; 15 | LOG_SYSERR<<"syserr ..."; 16 | LOG_SYSFATAL<<"sysfatal ..."; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/28/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/28/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/28/set_test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace std; 5 | 6 | int main(void) 7 | { 8 | int a[] = { 1, 2, 3, 4, 5}; 9 | set s(a, a+5); 10 | 11 | cout<<*s.lower_bound(2)< 2 | #include 3 | 4 | using namespace muduo; 5 | 6 | int main() 7 | { 8 | LOG_TRACE<<"trace ..."; 9 | LOG_DEBUG<<"debug ..."; 10 | LOG_INFO<<"info ..."; 11 | LOG_WARN<<"warn ..."; 12 | LOG_ERROR<<"error ..."; 13 | //LOG_FATAL<<"fatal ..."; 14 | errno = 13; 15 | LOG_SYSERR<<"syserr ..."; 16 | LOG_SYSFATAL<<"sysfatal ..."; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/29/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/29/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/30/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/30/jmuduo/tests/Log_test1.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | 6 | int main() 7 | { 8 | LOG_TRACE<<"trace ..."; 9 | LOG_DEBUG<<"debug ..."; 10 | LOG_INFO<<"info ..."; 11 | LOG_WARN<<"warn ..."; 12 | LOG_ERROR<<"error ..."; 13 | //LOG_FATAL<<"fatal ..."; 14 | errno = 13; 15 | LOG_SYSERR<<"syserr ..."; 16 | LOG_SYSFATAL<<"sysfatal ..."; 17 | return 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/30/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/30/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/31/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/31/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/31/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/31/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/32/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/32/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/32/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/32/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/33/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/33/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/33/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/33/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/34/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/34/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/34/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/34/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/35/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/35/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/35/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/35/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/36/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/36/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/36/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/36/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/37/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/37/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/37/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/37/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/38/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/38/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/38/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/38/jmuduo/tests/Reactor_test13.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/38/jmuduo/tests/Reactor_test13.cc -------------------------------------------------------------------------------- /src/38/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/40/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/40/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/40/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/40/jmuduo/tests/Reactor_test13.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/40/jmuduo/tests/Reactor_test13.cc -------------------------------------------------------------------------------- /src/40/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/41/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/41/jmuduo/muduo/net/inspect/tests/Inspector_test.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | int main() 9 | { 10 | EventLoop loop; 11 | EventLoopThread t; // 监控线程 12 | Inspector ins(t.startLoop(), InetAddress(12345), "test"); 13 | loop.loop(); 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/41/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/41/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/41/jmuduo/tests/Reactor_test13.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/41/jmuduo/tests/Reactor_test13.cc -------------------------------------------------------------------------------- /src/41/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/asio/echo_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/42/jmuduo/examples/asio/echo_see_simple -------------------------------------------------------------------------------- /src/42/jmuduo/examples/asio/tutorial/daytime_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/42/jmuduo/examples/asio/tutorial/daytime_see_simple -------------------------------------------------------------------------------- /src/42/jmuduo/examples/asio/tutorial/there_is_no_timer1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/42/jmuduo/examples/asio/tutorial/there_is_no_timer1 -------------------------------------------------------------------------------- /src/42/jmuduo/examples/asio/tutorial/timer2/timer.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | void print() 6 | { 7 | std::cout << "Hello, world!\n"; 8 | } 9 | 10 | int main() 11 | { 12 | muduo::net::EventLoop loop; 13 | loop.runAfter(5, print); 14 | loop.loop(); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/cdns/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(muduo_cdns Resolver.cc) 2 | target_link_libraries(muduo_cdns muduo_net) 3 | target_link_libraries(muduo_cdns cares) 4 | 5 | install(TARGETS muduo_cdns DESTINATION lib) 6 | install(FILES Resolver.h DESTINATION include/muduo/cdns) 7 | 8 | add_executable(cdns dns.cc) 9 | target_link_libraries(cdns muduo_cdns) 10 | 11 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/curl/README: -------------------------------------------------------------------------------- 1 | This is a proof-of-concept implementation of muduo-curl bridge. 2 | It demostrates the simplest use case of curl with muduo. 3 | 4 | Note: 5 | 1. DNS resolving could be blocking, if your curl is not built with c-ares. 6 | 2. Request object should survive doneCallback. 7 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/fastcgi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(fastcgi_test fastcgi.cc fastcgi_test.cc) 2 | target_link_libraries(fastcgi_test muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/filetransfer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(filetransfer_download download.cc) 2 | target_link_libraries(filetransfer_download muduo_net) 3 | 4 | add_executable(filetransfer_download2 download2.cc) 5 | target_link_libraries(filetransfer_download2 muduo_net) 6 | 7 | add_executable(filetransfer_download3 download3.cc) 8 | target_link_libraries(filetransfer_download3 muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/hub/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(hub hub.cc codec.cc) 2 | target_link_libraries(hub muduo_inspect) 3 | 4 | add_library(muduo_pubsub pubsub.cc codec.cc) 5 | target_link_libraries(muduo_pubsub muduo_inspect) 6 | 7 | add_executable(pub pub.cc) 8 | target_link_libraries(pub muduo_pubsub) 9 | 10 | add_executable(sub sub.cc) 11 | target_link_libraries(sub muduo_pubsub) 12 | 13 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/hub/README: -------------------------------------------------------------------------------- 1 | hub - a server for broadcasting 2 | pubsub - a client library of hub 3 | pub - a command line tool for publishing content on a topic 4 | sub - a demo tool for subscribing a topic 5 | 6 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/idleconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(idleconnection_echo echo.cc main.cc) 2 | target_link_libraries(idleconnection_echo muduo_net) 3 | 4 | add_executable(idleconnection_echo2 sortedlist.cc) 5 | target_link_libraries(idleconnection_echo2 muduo_net) 6 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/maxconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(maxconnection_echo echo.cc main.cc) 2 | target_link_libraries(maxconnection_echo muduo_net) 3 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/multiplexer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(multiplex_server multiplexer.cc) 2 | target_link_libraries(multiplex_server muduo_net) 3 | 4 | add_executable(multiplex_server_simple multiplexer_simple.cc) 5 | target_link_libraries(multiplex_server_simple muduo_net) 6 | 7 | add_executable(multiplex_demux demux.cc) 8 | target_link_libraries(multiplex_demux muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/Event.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class Event { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/EventSource.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public enum EventSource { 4 | kBackend, kClient 5 | } 6 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/TestFailedException.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class TestFailedException extends RuntimeException { 4 | private static final long serialVersionUID = 1982L; 5 | 6 | public TestFailedException(String message) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/netty/discard/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_discard_client client.cc) 2 | target_link_libraries(netty_discard_client muduo_net) 3 | 4 | add_executable(netty_discard_server server.cc) 5 | target_link_libraries(netty_discard_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/netty/echo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_echo_client client.cc) 2 | target_link_libraries(netty_echo_client muduo_net) 3 | 4 | add_executable(netty_echo_server server.cc) 5 | target_link_libraries(netty_echo_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/netty/uptime/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_uptime uptime.cc) 2 | target_link_libraries(netty_uptime muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/pingpong/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(pingpong_client client.cc) 2 | target_link_libraries(pingpong_client muduo_net) 3 | 4 | add_executable(pingpong_server server.cc) 5 | target_link_libraries(pingpong_server muduo_net) 6 | 7 | add_executable(pingpong_bench bench.cc) 8 | target_link_libraries(pingpong_bench muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/protobuf/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(codec) 2 | add_subdirectory(rpc) 3 | add_subdirectory(rpcbench) 4 | 5 | if(CARES_INCLUDE_DIR AND CARES_LIBRARY) 6 | add_subdirectory(resolver) 7 | else() 8 | add_subdirectory(resolver EXCLUDE_FROM_ALL) 9 | endif() 10 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/roundtrip/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(roundtrip roundtrip.cc) 2 | target_link_libraries(roundtrip muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/shorturl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(shorturl shorturl.cc) 2 | target_link_libraries(shorturl muduo_http) 3 | 4 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/socks4a/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(tcprelay tcprelay.cc) 2 | target_link_libraries(tcprelay muduo_net) 3 | 4 | add_executable(socks4a socks4a.cc) 5 | target_link_libraries(socks4a muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/sudoku/sudoku.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 2 | #define MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 3 | 4 | 5 | #include 6 | 7 | // FIXME, use (const char*, len) for saving memory copying. 8 | muduo::string solveSudoku(const muduo::string& puzzle); 9 | const int kCells = 81; 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/twisted/finger/finger01.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace muduo; 4 | using namespace muduo::net; 5 | 6 | int main() 7 | { 8 | EventLoop loop; 9 | loop.loop(); 10 | } 11 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/twisted/finger/finger02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | using namespace muduo::net; 6 | 7 | int main() 8 | { 9 | EventLoop loop; 10 | TcpServer server(&loop, InetAddress(1079), "Finger"); 11 | server.start(); 12 | loop.loop(); 13 | } 14 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/wordcount/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(wordcount_hasher hasher.cc) 2 | target_link_libraries(wordcount_hasher muduo_net) 3 | 4 | add_executable(wordcount_receiver receiver.cc) 5 | target_link_libraries(wordcount_receiver muduo_net) 6 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/wordcount/gen.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import random 4 | 5 | words = 1000000 6 | word_len = 5 7 | alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-' 8 | 9 | output = open('random_words', 'w') 10 | for x in xrange(words): 11 | arr = [random.choice(alphabet) for i in range(word_len)] 12 | word = ''.join(arr) 13 | output.write(word) 14 | output.write('\n') 15 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/zeromq/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(zeromq_local_lat local_lat.cc) 2 | target_link_libraries(zeromq_local_lat muduo_net) 3 | 4 | add_executable(zeromq_remote_lat remote_lat.cc) 5 | target_link_libraries(zeromq_remote_lat muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/42/jmuduo/examples/zeromq/README: -------------------------------------------------------------------------------- 1 | 2 | local_lat.cc : echo server with LengthHeaderCodec 3 | remote_lat.cc : echo client with LengthHeaderCodec 4 | -------------------------------------------------------------------------------- /src/42/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/42/jmuduo/muduo/net/inspect/tests/Inspector_test.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | int main() 9 | { 10 | EventLoop loop; 11 | EventLoopThread t; // 监控线程 12 | Inspector ins(t.startLoop(), InetAddress(12345), "test"); 13 | loop.loop(); 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/42/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/42/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/42/jmuduo/tests/Reactor_test13.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/42/jmuduo/tests/Reactor_test13.cc -------------------------------------------------------------------------------- /src/42/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/asio/echo_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/43/jmuduo/examples/asio/echo_see_simple -------------------------------------------------------------------------------- /src/43/jmuduo/examples/asio/tutorial/daytime_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/43/jmuduo/examples/asio/tutorial/daytime_see_simple -------------------------------------------------------------------------------- /src/43/jmuduo/examples/asio/tutorial/there_is_no_timer1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/43/jmuduo/examples/asio/tutorial/there_is_no_timer1 -------------------------------------------------------------------------------- /src/43/jmuduo/examples/asio/tutorial/timer2/timer.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | void print() 6 | { 7 | std::cout << "Hello, world!\n"; 8 | } 9 | 10 | int main() 11 | { 12 | muduo::net::EventLoop loop; 13 | loop.runAfter(5, print); 14 | loop.loop(); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/cdns/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(muduo_cdns Resolver.cc) 2 | target_link_libraries(muduo_cdns muduo_net) 3 | target_link_libraries(muduo_cdns cares) 4 | 5 | install(TARGETS muduo_cdns DESTINATION lib) 6 | install(FILES Resolver.h DESTINATION include/muduo/cdns) 7 | 8 | add_executable(cdns dns.cc) 9 | target_link_libraries(cdns muduo_cdns) 10 | 11 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/curl/README: -------------------------------------------------------------------------------- 1 | This is a proof-of-concept implementation of muduo-curl bridge. 2 | It demostrates the simplest use case of curl with muduo. 3 | 4 | Note: 5 | 1. DNS resolving could be blocking, if your curl is not built with c-ares. 6 | 2. Request object should survive doneCallback. 7 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/fastcgi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(fastcgi_test fastcgi.cc fastcgi_test.cc) 2 | target_link_libraries(fastcgi_test muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/filetransfer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(filetransfer_download download.cc) 2 | target_link_libraries(filetransfer_download muduo_net) 3 | 4 | add_executable(filetransfer_download2 download2.cc) 5 | target_link_libraries(filetransfer_download2 muduo_net) 6 | 7 | add_executable(filetransfer_download3 download3.cc) 8 | target_link_libraries(filetransfer_download3 muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/hub/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(hub hub.cc codec.cc) 2 | target_link_libraries(hub muduo_inspect) 3 | 4 | add_library(muduo_pubsub pubsub.cc codec.cc) 5 | target_link_libraries(muduo_pubsub muduo_inspect) 6 | 7 | add_executable(pub pub.cc) 8 | target_link_libraries(pub muduo_pubsub) 9 | 10 | add_executable(sub sub.cc) 11 | target_link_libraries(sub muduo_pubsub) 12 | 13 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/hub/README: -------------------------------------------------------------------------------- 1 | hub - a server for broadcasting 2 | pubsub - a client library of hub 3 | pub - a command line tool for publishing content on a topic 4 | sub - a demo tool for subscribing a topic 5 | 6 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/idleconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(idleconnection_echo echo.cc main.cc) 2 | target_link_libraries(idleconnection_echo muduo_net) 3 | 4 | add_executable(idleconnection_echo2 sortedlist.cc) 5 | target_link_libraries(idleconnection_echo2 muduo_net) 6 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/maxconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(maxconnection_echo echo.cc main.cc) 2 | target_link_libraries(maxconnection_echo muduo_net) 3 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/multiplexer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(multiplex_server multiplexer.cc) 2 | target_link_libraries(multiplex_server muduo_net) 3 | 4 | add_executable(multiplex_server_simple multiplexer_simple.cc) 5 | target_link_libraries(multiplex_server_simple muduo_net) 6 | 7 | add_executable(multiplex_demux demux.cc) 8 | target_link_libraries(multiplex_demux muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/Event.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class Event { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/EventSource.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public enum EventSource { 4 | kBackend, kClient 5 | } 6 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/TestFailedException.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class TestFailedException extends RuntimeException { 4 | private static final long serialVersionUID = 1982L; 5 | 6 | public TestFailedException(String message) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/netty/discard/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_discard_client client.cc) 2 | target_link_libraries(netty_discard_client muduo_net) 3 | 4 | add_executable(netty_discard_server server.cc) 5 | target_link_libraries(netty_discard_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/netty/echo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_echo_client client.cc) 2 | target_link_libraries(netty_echo_client muduo_net) 3 | 4 | add_executable(netty_echo_server server.cc) 5 | target_link_libraries(netty_echo_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/netty/uptime/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_uptime uptime.cc) 2 | target_link_libraries(netty_uptime muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/pingpong/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(pingpong_client client.cc) 2 | target_link_libraries(pingpong_client muduo_net) 3 | 4 | add_executable(pingpong_server server.cc) 5 | target_link_libraries(pingpong_server muduo_net) 6 | 7 | add_executable(pingpong_bench bench.cc) 8 | target_link_libraries(pingpong_bench muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/protobuf/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(codec) 2 | add_subdirectory(rpc) 3 | add_subdirectory(rpcbench) 4 | 5 | if(CARES_INCLUDE_DIR AND CARES_LIBRARY) 6 | add_subdirectory(resolver) 7 | else() 8 | add_subdirectory(resolver EXCLUDE_FROM_ALL) 9 | endif() 10 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/roundtrip/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(roundtrip roundtrip.cc) 2 | target_link_libraries(roundtrip muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/shorturl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(shorturl shorturl.cc) 2 | target_link_libraries(shorturl muduo_http) 3 | 4 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/socks4a/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(tcprelay tcprelay.cc) 2 | target_link_libraries(tcprelay muduo_net) 3 | 4 | add_executable(socks4a socks4a.cc) 5 | target_link_libraries(socks4a muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/sudoku/sudoku.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 2 | #define MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 3 | 4 | 5 | #include 6 | 7 | // FIXME, use (const char*, len) for saving memory copying. 8 | muduo::string solveSudoku(const muduo::string& puzzle); 9 | const int kCells = 81; 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/twisted/finger/finger01.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace muduo; 4 | using namespace muduo::net; 5 | 6 | int main() 7 | { 8 | EventLoop loop; 9 | loop.loop(); 10 | } 11 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/twisted/finger/finger02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | using namespace muduo::net; 6 | 7 | int main() 8 | { 9 | EventLoop loop; 10 | TcpServer server(&loop, InetAddress(1079), "Finger"); 11 | server.start(); 12 | loop.loop(); 13 | } 14 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/wordcount/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(wordcount_hasher hasher.cc) 2 | target_link_libraries(wordcount_hasher muduo_net) 3 | 4 | add_executable(wordcount_receiver receiver.cc) 5 | target_link_libraries(wordcount_receiver muduo_net) 6 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/wordcount/gen.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import random 4 | 5 | words = 1000000 6 | word_len = 5 7 | alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-' 8 | 9 | output = open('random_words', 'w') 10 | for x in xrange(words): 11 | arr = [random.choice(alphabet) for i in range(word_len)] 12 | word = ''.join(arr) 13 | output.write(word) 14 | output.write('\n') 15 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/zeromq/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(zeromq_local_lat local_lat.cc) 2 | target_link_libraries(zeromq_local_lat muduo_net) 3 | 4 | add_executable(zeromq_remote_lat remote_lat.cc) 5 | target_link_libraries(zeromq_remote_lat muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/43/jmuduo/examples/zeromq/README: -------------------------------------------------------------------------------- 1 | 2 | local_lat.cc : echo server with LengthHeaderCodec 3 | remote_lat.cc : echo client with LengthHeaderCodec 4 | -------------------------------------------------------------------------------- /src/43/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/43/jmuduo/muduo/net/inspect/tests/Inspector_test.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | int main() 9 | { 10 | EventLoop loop; 11 | EventLoopThread t; // 监控线程 12 | Inspector ins(t.startLoop(), InetAddress(12345), "test"); 13 | loop.loop(); 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/43/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/43/jmuduo/tests/Filetransfer_test.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/43/jmuduo/tests/Filetransfer_test.cc -------------------------------------------------------------------------------- /src/43/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/43/jmuduo/tests/Reactor_test13.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/43/jmuduo/tests/Reactor_test13.cc -------------------------------------------------------------------------------- /src/43/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/asio/chat/client.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/examples/asio/chat/client.cc -------------------------------------------------------------------------------- /src/44/jmuduo/examples/asio/chat/codec.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/examples/asio/chat/codec.h -------------------------------------------------------------------------------- /src/44/jmuduo/examples/asio/chat/server.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/examples/asio/chat/server.cc -------------------------------------------------------------------------------- /src/44/jmuduo/examples/asio/chat/server_threaded.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/examples/asio/chat/server_threaded.cc -------------------------------------------------------------------------------- /src/44/jmuduo/examples/asio/chat/server_threaded_efficient.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/examples/asio/chat/server_threaded_efficient.cc -------------------------------------------------------------------------------- /src/44/jmuduo/examples/asio/chat/server_threaded_highperformance.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/examples/asio/chat/server_threaded_highperformance.cc -------------------------------------------------------------------------------- /src/44/jmuduo/examples/asio/echo_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/examples/asio/echo_see_simple -------------------------------------------------------------------------------- /src/44/jmuduo/examples/asio/tutorial/daytime_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/examples/asio/tutorial/daytime_see_simple -------------------------------------------------------------------------------- /src/44/jmuduo/examples/asio/tutorial/there_is_no_timer1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/examples/asio/tutorial/there_is_no_timer1 -------------------------------------------------------------------------------- /src/44/jmuduo/examples/asio/tutorial/timer2/timer.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | void print() 6 | { 7 | std::cout << "Hello, world!\n"; 8 | } 9 | 10 | int main() 11 | { 12 | muduo::net::EventLoop loop; 13 | loop.runAfter(5, print); 14 | loop.loop(); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/cdns/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(muduo_cdns Resolver.cc) 2 | target_link_libraries(muduo_cdns muduo_net) 3 | target_link_libraries(muduo_cdns cares) 4 | 5 | install(TARGETS muduo_cdns DESTINATION lib) 6 | install(FILES Resolver.h DESTINATION include/muduo/cdns) 7 | 8 | add_executable(cdns dns.cc) 9 | target_link_libraries(cdns muduo_cdns) 10 | 11 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/curl/README: -------------------------------------------------------------------------------- 1 | This is a proof-of-concept implementation of muduo-curl bridge. 2 | It demostrates the simplest use case of curl with muduo. 3 | 4 | Note: 5 | 1. DNS resolving could be blocking, if your curl is not built with c-ares. 6 | 2. Request object should survive doneCallback. 7 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/fastcgi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(fastcgi_test fastcgi.cc fastcgi_test.cc) 2 | target_link_libraries(fastcgi_test muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/filetransfer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(filetransfer_download download.cc) 2 | target_link_libraries(filetransfer_download muduo_net) 3 | 4 | add_executable(filetransfer_download2 download2.cc) 5 | target_link_libraries(filetransfer_download2 muduo_net) 6 | 7 | add_executable(filetransfer_download3 download3.cc) 8 | target_link_libraries(filetransfer_download3 muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/hub/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(hub hub.cc codec.cc) 2 | target_link_libraries(hub muduo_inspect) 3 | 4 | add_library(muduo_pubsub pubsub.cc codec.cc) 5 | target_link_libraries(muduo_pubsub muduo_inspect) 6 | 7 | add_executable(pub pub.cc) 8 | target_link_libraries(pub muduo_pubsub) 9 | 10 | add_executable(sub sub.cc) 11 | target_link_libraries(sub muduo_pubsub) 12 | 13 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/hub/README: -------------------------------------------------------------------------------- 1 | hub - a server for broadcasting 2 | pubsub - a client library of hub 3 | pub - a command line tool for publishing content on a topic 4 | sub - a demo tool for subscribing a topic 5 | 6 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/idleconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(idleconnection_echo echo.cc main.cc) 2 | target_link_libraries(idleconnection_echo muduo_net) 3 | 4 | add_executable(idleconnection_echo2 sortedlist.cc) 5 | target_link_libraries(idleconnection_echo2 muduo_net) 6 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/maxconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(maxconnection_echo echo.cc main.cc) 2 | target_link_libraries(maxconnection_echo muduo_net) 3 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/multiplexer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(multiplex_server multiplexer.cc) 2 | target_link_libraries(multiplex_server muduo_net) 3 | 4 | add_executable(multiplex_server_simple multiplexer_simple.cc) 5 | target_link_libraries(multiplex_server_simple muduo_net) 6 | 7 | add_executable(multiplex_demux demux.cc) 8 | target_link_libraries(multiplex_demux muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/Event.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class Event { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/EventSource.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public enum EventSource { 4 | kBackend, kClient 5 | } 6 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/TestFailedException.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class TestFailedException extends RuntimeException { 4 | private static final long serialVersionUID = 1982L; 5 | 6 | public TestFailedException(String message) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/netty/discard/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_discard_client client.cc) 2 | target_link_libraries(netty_discard_client muduo_net) 3 | 4 | add_executable(netty_discard_server server.cc) 5 | target_link_libraries(netty_discard_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/netty/echo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_echo_client client.cc) 2 | target_link_libraries(netty_echo_client muduo_net) 3 | 4 | add_executable(netty_echo_server server.cc) 5 | target_link_libraries(netty_echo_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/netty/uptime/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_uptime uptime.cc) 2 | target_link_libraries(netty_uptime muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/pingpong/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(pingpong_client client.cc) 2 | target_link_libraries(pingpong_client muduo_net) 3 | 4 | add_executable(pingpong_server server.cc) 5 | target_link_libraries(pingpong_server muduo_net) 6 | 7 | add_executable(pingpong_bench bench.cc) 8 | target_link_libraries(pingpong_bench muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/protobuf/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(codec) 2 | add_subdirectory(rpc) 3 | add_subdirectory(rpcbench) 4 | 5 | if(CARES_INCLUDE_DIR AND CARES_LIBRARY) 6 | add_subdirectory(resolver) 7 | else() 8 | add_subdirectory(resolver EXCLUDE_FROM_ALL) 9 | endif() 10 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/roundtrip/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(roundtrip roundtrip.cc) 2 | target_link_libraries(roundtrip muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/shorturl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(shorturl shorturl.cc) 2 | target_link_libraries(shorturl muduo_http) 3 | 4 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/socks4a/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(tcprelay tcprelay.cc) 2 | target_link_libraries(tcprelay muduo_net) 3 | 4 | add_executable(socks4a socks4a.cc) 5 | target_link_libraries(socks4a muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/sudoku/sudoku.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 2 | #define MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 3 | 4 | 5 | #include 6 | 7 | // FIXME, use (const char*, len) for saving memory copying. 8 | muduo::string solveSudoku(const muduo::string& puzzle); 9 | const int kCells = 81; 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/twisted/finger/finger01.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace muduo; 4 | using namespace muduo::net; 5 | 6 | int main() 7 | { 8 | EventLoop loop; 9 | loop.loop(); 10 | } 11 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/twisted/finger/finger02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | using namespace muduo::net; 6 | 7 | int main() 8 | { 9 | EventLoop loop; 10 | TcpServer server(&loop, InetAddress(1079), "Finger"); 11 | server.start(); 12 | loop.loop(); 13 | } 14 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/wordcount/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(wordcount_hasher hasher.cc) 2 | target_link_libraries(wordcount_hasher muduo_net) 3 | 4 | add_executable(wordcount_receiver receiver.cc) 5 | target_link_libraries(wordcount_receiver muduo_net) 6 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/wordcount/gen.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import random 4 | 5 | words = 1000000 6 | word_len = 5 7 | alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-' 8 | 9 | output = open('random_words', 'w') 10 | for x in xrange(words): 11 | arr = [random.choice(alphabet) for i in range(word_len)] 12 | word = ''.join(arr) 13 | output.write(word) 14 | output.write('\n') 15 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/zeromq/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(zeromq_local_lat local_lat.cc) 2 | target_link_libraries(zeromq_local_lat muduo_net) 3 | 4 | add_executable(zeromq_remote_lat remote_lat.cc) 5 | target_link_libraries(zeromq_remote_lat muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/44/jmuduo/examples/zeromq/README: -------------------------------------------------------------------------------- 1 | 2 | local_lat.cc : echo server with LengthHeaderCodec 3 | remote_lat.cc : echo client with LengthHeaderCodec 4 | -------------------------------------------------------------------------------- /src/44/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/44/jmuduo/muduo/net/inspect/tests/Inspector_test.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | int main() 9 | { 10 | EventLoop loop; 11 | EventLoopThread t; // 监控线程 12 | Inspector ins(t.startLoop(), InetAddress(12345), "test"); 13 | loop.loop(); 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/44/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/44/jmuduo/tests/Filetransfer_test.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/tests/Filetransfer_test.cc -------------------------------------------------------------------------------- /src/44/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/44/jmuduo/tests/Reactor_test13.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/44/jmuduo/tests/Reactor_test13.cc -------------------------------------------------------------------------------- /src/44/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/asio/chat/client.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/examples/asio/chat/client.cc -------------------------------------------------------------------------------- /src/45/jmuduo/examples/asio/chat/codec.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/examples/asio/chat/codec.h -------------------------------------------------------------------------------- /src/45/jmuduo/examples/asio/chat/server.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/examples/asio/chat/server.cc -------------------------------------------------------------------------------- /src/45/jmuduo/examples/asio/chat/server_threaded.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/examples/asio/chat/server_threaded.cc -------------------------------------------------------------------------------- /src/45/jmuduo/examples/asio/chat/server_threaded_efficient.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/examples/asio/chat/server_threaded_efficient.cc -------------------------------------------------------------------------------- /src/45/jmuduo/examples/asio/chat/server_threaded_highperformance.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/examples/asio/chat/server_threaded_highperformance.cc -------------------------------------------------------------------------------- /src/45/jmuduo/examples/asio/echo_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/examples/asio/echo_see_simple -------------------------------------------------------------------------------- /src/45/jmuduo/examples/asio/tutorial/daytime_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/examples/asio/tutorial/daytime_see_simple -------------------------------------------------------------------------------- /src/45/jmuduo/examples/asio/tutorial/there_is_no_timer1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/examples/asio/tutorial/there_is_no_timer1 -------------------------------------------------------------------------------- /src/45/jmuduo/examples/asio/tutorial/timer2/timer.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | void print() 6 | { 7 | std::cout << "Hello, world!\n"; 8 | } 9 | 10 | int main() 11 | { 12 | muduo::net::EventLoop loop; 13 | loop.runAfter(5, print); 14 | loop.loop(); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/cdns/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(muduo_cdns Resolver.cc) 2 | target_link_libraries(muduo_cdns muduo_net) 3 | target_link_libraries(muduo_cdns cares) 4 | 5 | install(TARGETS muduo_cdns DESTINATION lib) 6 | install(FILES Resolver.h DESTINATION include/muduo/cdns) 7 | 8 | add_executable(cdns dns.cc) 9 | target_link_libraries(cdns muduo_cdns) 10 | 11 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/curl/README: -------------------------------------------------------------------------------- 1 | This is a proof-of-concept implementation of muduo-curl bridge. 2 | It demostrates the simplest use case of curl with muduo. 3 | 4 | Note: 5 | 1. DNS resolving could be blocking, if your curl is not built with c-ares. 6 | 2. Request object should survive doneCallback. 7 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/fastcgi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(fastcgi_test fastcgi.cc fastcgi_test.cc) 2 | target_link_libraries(fastcgi_test muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/filetransfer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(filetransfer_download download.cc) 2 | target_link_libraries(filetransfer_download muduo_net) 3 | 4 | add_executable(filetransfer_download2 download2.cc) 5 | target_link_libraries(filetransfer_download2 muduo_net) 6 | 7 | add_executable(filetransfer_download3 download3.cc) 8 | target_link_libraries(filetransfer_download3 muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/hub/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(hub hub.cc codec.cc) 2 | target_link_libraries(hub muduo_inspect) 3 | 4 | add_library(muduo_pubsub pubsub.cc codec.cc) 5 | target_link_libraries(muduo_pubsub muduo_inspect) 6 | 7 | add_executable(pub pub.cc) 8 | target_link_libraries(pub muduo_pubsub) 9 | 10 | add_executable(sub sub.cc) 11 | target_link_libraries(sub muduo_pubsub) 12 | 13 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/hub/README: -------------------------------------------------------------------------------- 1 | hub - a server for broadcasting 2 | pubsub - a client library of hub 3 | pub - a command line tool for publishing content on a topic 4 | sub - a demo tool for subscribing a topic 5 | 6 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/idleconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(idleconnection_echo echo.cc main.cc) 2 | target_link_libraries(idleconnection_echo muduo_net) 3 | 4 | add_executable(idleconnection_echo2 sortedlist.cc) 5 | target_link_libraries(idleconnection_echo2 muduo_net) 6 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/maxconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(maxconnection_echo echo.cc main.cc) 2 | target_link_libraries(maxconnection_echo muduo_net) 3 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/multiplexer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(multiplex_server multiplexer.cc) 2 | target_link_libraries(multiplex_server muduo_net) 3 | 4 | add_executable(multiplex_server_simple multiplexer_simple.cc) 5 | target_link_libraries(multiplex_server_simple muduo_net) 6 | 7 | add_executable(multiplex_demux demux.cc) 8 | target_link_libraries(multiplex_demux muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/Event.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class Event { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/EventSource.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public enum EventSource { 4 | kBackend, kClient 5 | } 6 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/TestFailedException.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class TestFailedException extends RuntimeException { 4 | private static final long serialVersionUID = 1982L; 5 | 6 | public TestFailedException(String message) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/netty/discard/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_discard_client client.cc) 2 | target_link_libraries(netty_discard_client muduo_net) 3 | 4 | add_executable(netty_discard_server server.cc) 5 | target_link_libraries(netty_discard_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/netty/echo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_echo_client client.cc) 2 | target_link_libraries(netty_echo_client muduo_net) 3 | 4 | add_executable(netty_echo_server server.cc) 5 | target_link_libraries(netty_echo_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/netty/uptime/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_uptime uptime.cc) 2 | target_link_libraries(netty_uptime muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/pingpong/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(pingpong_client client.cc) 2 | target_link_libraries(pingpong_client muduo_net) 3 | 4 | add_executable(pingpong_server server.cc) 5 | target_link_libraries(pingpong_server muduo_net) 6 | 7 | add_executable(pingpong_bench bench.cc) 8 | target_link_libraries(pingpong_bench muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/protobuf/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(codec) 2 | add_subdirectory(rpc) 3 | add_subdirectory(rpcbench) 4 | 5 | if(CARES_INCLUDE_DIR AND CARES_LIBRARY) 6 | add_subdirectory(resolver) 7 | else() 8 | add_subdirectory(resolver EXCLUDE_FROM_ALL) 9 | endif() 10 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/roundtrip/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(roundtrip roundtrip.cc) 2 | target_link_libraries(roundtrip muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/shorturl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(shorturl shorturl.cc) 2 | target_link_libraries(shorturl muduo_http) 3 | 4 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/socks4a/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(tcprelay tcprelay.cc) 2 | target_link_libraries(tcprelay muduo_net) 3 | 4 | add_executable(socks4a socks4a.cc) 5 | target_link_libraries(socks4a muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/sudoku/sudoku.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 2 | #define MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 3 | 4 | 5 | #include 6 | 7 | // FIXME, use (const char*, len) for saving memory copying. 8 | muduo::string solveSudoku(const muduo::string& puzzle); 9 | const int kCells = 81; 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/twisted/finger/finger01.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace muduo; 4 | using namespace muduo::net; 5 | 6 | int main() 7 | { 8 | EventLoop loop; 9 | loop.loop(); 10 | } 11 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/twisted/finger/finger02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | using namespace muduo::net; 6 | 7 | int main() 8 | { 9 | EventLoop loop; 10 | TcpServer server(&loop, InetAddress(1079), "Finger"); 11 | server.start(); 12 | loop.loop(); 13 | } 14 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/wordcount/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(wordcount_hasher hasher.cc) 2 | target_link_libraries(wordcount_hasher muduo_net) 3 | 4 | add_executable(wordcount_receiver receiver.cc) 5 | target_link_libraries(wordcount_receiver muduo_net) 6 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/wordcount/gen.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import random 4 | 5 | words = 1000000 6 | word_len = 5 7 | alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-' 8 | 9 | output = open('random_words', 'w') 10 | for x in xrange(words): 11 | arr = [random.choice(alphabet) for i in range(word_len)] 12 | word = ''.join(arr) 13 | output.write(word) 14 | output.write('\n') 15 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/zeromq/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(zeromq_local_lat local_lat.cc) 2 | target_link_libraries(zeromq_local_lat muduo_net) 3 | 4 | add_executable(zeromq_remote_lat remote_lat.cc) 5 | target_link_libraries(zeromq_remote_lat muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/45/jmuduo/examples/zeromq/README: -------------------------------------------------------------------------------- 1 | 2 | local_lat.cc : echo server with LengthHeaderCodec 3 | remote_lat.cc : echo client with LengthHeaderCodec 4 | -------------------------------------------------------------------------------- /src/45/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/45/jmuduo/muduo/net/inspect/tests/Inspector_test.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | int main() 9 | { 10 | EventLoop loop; 11 | EventLoopThread t; // 监控线程 12 | Inspector ins(t.startLoop(), InetAddress(12345), "test"); 13 | loop.loop(); 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/45/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/45/jmuduo/tests/Filetransfer_test.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/tests/Filetransfer_test.cc -------------------------------------------------------------------------------- /src/45/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/45/jmuduo/tests/Reactor_test13.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/45/jmuduo/tests/Reactor_test13.cc -------------------------------------------------------------------------------- /src/45/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/asio/chat/client.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/asio/chat/client.cc -------------------------------------------------------------------------------- /src/47/jmuduo/examples/asio/chat/codec.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/asio/chat/codec.h -------------------------------------------------------------------------------- /src/47/jmuduo/examples/asio/chat/server.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/asio/chat/server.cc -------------------------------------------------------------------------------- /src/47/jmuduo/examples/asio/chat/server_threaded.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/asio/chat/server_threaded.cc -------------------------------------------------------------------------------- /src/47/jmuduo/examples/asio/chat/server_threaded_efficient.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/asio/chat/server_threaded_efficient.cc -------------------------------------------------------------------------------- /src/47/jmuduo/examples/asio/chat/server_threaded_highperformance.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/asio/chat/server_threaded_highperformance.cc -------------------------------------------------------------------------------- /src/47/jmuduo/examples/asio/echo_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/asio/echo_see_simple -------------------------------------------------------------------------------- /src/47/jmuduo/examples/asio/tutorial/daytime_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/asio/tutorial/daytime_see_simple -------------------------------------------------------------------------------- /src/47/jmuduo/examples/asio/tutorial/there_is_no_timer1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/asio/tutorial/there_is_no_timer1 -------------------------------------------------------------------------------- /src/47/jmuduo/examples/asio/tutorial/timer2/timer.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | void print() 6 | { 7 | std::cout << "Hello, world!\n"; 8 | } 9 | 10 | int main() 11 | { 12 | muduo::net::EventLoop loop; 13 | loop.runAfter(5, print); 14 | loop.loop(); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/cdns/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(muduo_cdns Resolver.cc) 2 | target_link_libraries(muduo_cdns muduo_net) 3 | target_link_libraries(muduo_cdns cares) 4 | 5 | install(TARGETS muduo_cdns DESTINATION lib) 6 | install(FILES Resolver.h DESTINATION include/muduo/cdns) 7 | 8 | add_executable(cdns dns.cc) 9 | target_link_libraries(cdns muduo_cdns) 10 | 11 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/curl/README: -------------------------------------------------------------------------------- 1 | This is a proof-of-concept implementation of muduo-curl bridge. 2 | It demostrates the simplest use case of curl with muduo. 3 | 4 | Note: 5 | 1. DNS resolving could be blocking, if your curl is not built with c-ares. 6 | 2. Request object should survive doneCallback. 7 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/fastcgi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(fastcgi_test fastcgi.cc fastcgi_test.cc) 2 | target_link_libraries(fastcgi_test muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/filetransfer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(filetransfer_download download.cc) 2 | target_link_libraries(filetransfer_download muduo_net) 3 | 4 | add_executable(filetransfer_download2 download2.cc) 5 | target_link_libraries(filetransfer_download2 muduo_net) 6 | 7 | add_executable(filetransfer_download3 download3.cc) 8 | target_link_libraries(filetransfer_download3 muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/hub/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(hub hub.cc codec.cc) 2 | target_link_libraries(hub muduo_inspect) 3 | 4 | add_library(muduo_pubsub pubsub.cc codec.cc) 5 | target_link_libraries(muduo_pubsub muduo_inspect) 6 | 7 | add_executable(pub pub.cc) 8 | target_link_libraries(pub muduo_pubsub) 9 | 10 | add_executable(sub sub.cc) 11 | target_link_libraries(sub muduo_pubsub) 12 | 13 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/hub/README: -------------------------------------------------------------------------------- 1 | hub - a server for broadcasting 2 | pubsub - a client library of hub 3 | pub - a command line tool for publishing content on a topic 4 | sub - a demo tool for subscribing a topic 5 | 6 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/idleconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(idleconnection_echo echo.cc main.cc) 2 | target_link_libraries(idleconnection_echo muduo_net) 3 | 4 | add_executable(idleconnection_echo2 sortedlist.cc) 5 | target_link_libraries(idleconnection_echo2 muduo_net) 6 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/idleconnection/echo.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/idleconnection/echo.cc -------------------------------------------------------------------------------- /src/47/jmuduo/examples/idleconnection/echo.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/idleconnection/echo.h -------------------------------------------------------------------------------- /src/47/jmuduo/examples/idleconnection/sortedlist.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/idleconnection/sortedlist.cc -------------------------------------------------------------------------------- /src/47/jmuduo/examples/maxconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(maxconnection_echo echo.cc main.cc) 2 | target_link_libraries(maxconnection_echo muduo_net) 3 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/maxconnection/echo.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/maxconnection/echo.cc -------------------------------------------------------------------------------- /src/47/jmuduo/examples/maxconnection/echo.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/examples/maxconnection/echo.h -------------------------------------------------------------------------------- /src/47/jmuduo/examples/multiplexer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(multiplex_server multiplexer.cc) 2 | target_link_libraries(multiplex_server muduo_net) 3 | 4 | add_executable(multiplex_server_simple multiplexer_simple.cc) 5 | target_link_libraries(multiplex_server_simple muduo_net) 6 | 7 | add_executable(multiplex_demux demux.cc) 8 | target_link_libraries(multiplex_demux muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/Event.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class Event { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/EventSource.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public enum EventSource { 4 | kBackend, kClient 5 | } 6 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/TestFailedException.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class TestFailedException extends RuntimeException { 4 | private static final long serialVersionUID = 1982L; 5 | 6 | public TestFailedException(String message) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/netty/discard/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_discard_client client.cc) 2 | target_link_libraries(netty_discard_client muduo_net) 3 | 4 | add_executable(netty_discard_server server.cc) 5 | target_link_libraries(netty_discard_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/netty/echo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_echo_client client.cc) 2 | target_link_libraries(netty_echo_client muduo_net) 3 | 4 | add_executable(netty_echo_server server.cc) 5 | target_link_libraries(netty_echo_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/netty/uptime/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_uptime uptime.cc) 2 | target_link_libraries(netty_uptime muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/pingpong/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(pingpong_client client.cc) 2 | target_link_libraries(pingpong_client muduo_net) 3 | 4 | add_executable(pingpong_server server.cc) 5 | target_link_libraries(pingpong_server muduo_net) 6 | 7 | add_executable(pingpong_bench bench.cc) 8 | target_link_libraries(pingpong_bench muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/protobuf/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(codec) 2 | add_subdirectory(rpc) 3 | add_subdirectory(rpcbench) 4 | 5 | if(CARES_INCLUDE_DIR AND CARES_LIBRARY) 6 | add_subdirectory(resolver) 7 | else() 8 | add_subdirectory(resolver EXCLUDE_FROM_ALL) 9 | endif() 10 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/roundtrip/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(roundtrip roundtrip.cc) 2 | target_link_libraries(roundtrip muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/shorturl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(shorturl shorturl.cc) 2 | target_link_libraries(shorturl muduo_http) 3 | 4 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/socks4a/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(tcprelay tcprelay.cc) 2 | target_link_libraries(tcprelay muduo_net) 3 | 4 | add_executable(socks4a socks4a.cc) 5 | target_link_libraries(socks4a muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/sudoku/sudoku.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 2 | #define MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 3 | 4 | 5 | #include 6 | 7 | // FIXME, use (const char*, len) for saving memory copying. 8 | muduo::string solveSudoku(const muduo::string& puzzle); 9 | const int kCells = 81; 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/twisted/finger/finger01.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace muduo; 4 | using namespace muduo::net; 5 | 6 | int main() 7 | { 8 | EventLoop loop; 9 | loop.loop(); 10 | } 11 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/twisted/finger/finger02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | using namespace muduo::net; 6 | 7 | int main() 8 | { 9 | EventLoop loop; 10 | TcpServer server(&loop, InetAddress(1079), "Finger"); 11 | server.start(); 12 | loop.loop(); 13 | } 14 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/wordcount/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(wordcount_hasher hasher.cc) 2 | target_link_libraries(wordcount_hasher muduo_net) 3 | 4 | add_executable(wordcount_receiver receiver.cc) 5 | target_link_libraries(wordcount_receiver muduo_net) 6 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/wordcount/gen.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import random 4 | 5 | words = 1000000 6 | word_len = 5 7 | alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-' 8 | 9 | output = open('random_words', 'w') 10 | for x in xrange(words): 11 | arr = [random.choice(alphabet) for i in range(word_len)] 12 | word = ''.join(arr) 13 | output.write(word) 14 | output.write('\n') 15 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/zeromq/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(zeromq_local_lat local_lat.cc) 2 | target_link_libraries(zeromq_local_lat muduo_net) 3 | 4 | add_executable(zeromq_remote_lat remote_lat.cc) 5 | target_link_libraries(zeromq_remote_lat muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/47/jmuduo/examples/zeromq/README: -------------------------------------------------------------------------------- 1 | 2 | local_lat.cc : echo server with LengthHeaderCodec 3 | remote_lat.cc : echo client with LengthHeaderCodec 4 | -------------------------------------------------------------------------------- /src/47/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/47/jmuduo/muduo/net/inspect/tests/Inspector_test.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | int main() 9 | { 10 | EventLoop loop; 11 | EventLoopThread t; // 监控线程 12 | Inspector ins(t.startLoop(), InetAddress(12345), "test"); 13 | loop.loop(); 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/47/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/47/jmuduo/tests/Filetransfer_test.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/tests/Filetransfer_test.cc -------------------------------------------------------------------------------- /src/47/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/47/jmuduo/tests/Reactor_test13.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/47/jmuduo/tests/Reactor_test13.cc -------------------------------------------------------------------------------- /src/47/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/asio/chat/client.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/asio/chat/client.cc -------------------------------------------------------------------------------- /src/48/jmuduo/examples/asio/chat/codec.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/asio/chat/codec.h -------------------------------------------------------------------------------- /src/48/jmuduo/examples/asio/chat/server.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/asio/chat/server.cc -------------------------------------------------------------------------------- /src/48/jmuduo/examples/asio/chat/server_threaded.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/asio/chat/server_threaded.cc -------------------------------------------------------------------------------- /src/48/jmuduo/examples/asio/chat/server_threaded_efficient.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/asio/chat/server_threaded_efficient.cc -------------------------------------------------------------------------------- /src/48/jmuduo/examples/asio/chat/server_threaded_highperformance.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/asio/chat/server_threaded_highperformance.cc -------------------------------------------------------------------------------- /src/48/jmuduo/examples/asio/echo_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/asio/echo_see_simple -------------------------------------------------------------------------------- /src/48/jmuduo/examples/asio/tutorial/daytime_see_simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/asio/tutorial/daytime_see_simple -------------------------------------------------------------------------------- /src/48/jmuduo/examples/asio/tutorial/there_is_no_timer1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/asio/tutorial/there_is_no_timer1 -------------------------------------------------------------------------------- /src/48/jmuduo/examples/asio/tutorial/timer2/timer.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | void print() 6 | { 7 | std::cout << "Hello, world!\n"; 8 | } 9 | 10 | int main() 11 | { 12 | muduo::net::EventLoop loop; 13 | loop.runAfter(5, print); 14 | loop.loop(); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/cdns/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(muduo_cdns Resolver.cc) 2 | target_link_libraries(muduo_cdns muduo_net) 3 | target_link_libraries(muduo_cdns cares) 4 | 5 | install(TARGETS muduo_cdns DESTINATION lib) 6 | install(FILES Resolver.h DESTINATION include/muduo/cdns) 7 | 8 | add_executable(cdns dns.cc) 9 | target_link_libraries(cdns muduo_cdns) 10 | 11 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/curl/README: -------------------------------------------------------------------------------- 1 | This is a proof-of-concept implementation of muduo-curl bridge. 2 | It demostrates the simplest use case of curl with muduo. 3 | 4 | Note: 5 | 1. DNS resolving could be blocking, if your curl is not built with c-ares. 6 | 2. Request object should survive doneCallback. 7 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/fastcgi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(fastcgi_test fastcgi.cc fastcgi_test.cc) 2 | target_link_libraries(fastcgi_test muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/filetransfer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(filetransfer_download download.cc) 2 | target_link_libraries(filetransfer_download muduo_net) 3 | 4 | add_executable(filetransfer_download2 download2.cc) 5 | target_link_libraries(filetransfer_download2 muduo_net) 6 | 7 | add_executable(filetransfer_download3 download3.cc) 8 | target_link_libraries(filetransfer_download3 muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/hub/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(hub hub.cc codec.cc) 2 | target_link_libraries(hub muduo_inspect) 3 | 4 | add_library(muduo_pubsub pubsub.cc codec.cc) 5 | target_link_libraries(muduo_pubsub muduo_inspect) 6 | 7 | add_executable(pub pub.cc) 8 | target_link_libraries(pub muduo_pubsub) 9 | 10 | add_executable(sub sub.cc) 11 | target_link_libraries(sub muduo_pubsub) 12 | 13 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/hub/README: -------------------------------------------------------------------------------- 1 | hub - a server for broadcasting 2 | pubsub - a client library of hub 3 | pub - a command line tool for publishing content on a topic 4 | sub - a demo tool for subscribing a topic 5 | 6 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/idleconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(idleconnection_echo echo.cc main.cc) 2 | target_link_libraries(idleconnection_echo muduo_net) 3 | 4 | add_executable(idleconnection_echo2 sortedlist.cc) 5 | target_link_libraries(idleconnection_echo2 muduo_net) 6 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/idleconnection/echo.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/idleconnection/echo.cc -------------------------------------------------------------------------------- /src/48/jmuduo/examples/idleconnection/echo.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/idleconnection/echo.h -------------------------------------------------------------------------------- /src/48/jmuduo/examples/idleconnection/sortedlist.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/idleconnection/sortedlist.cc -------------------------------------------------------------------------------- /src/48/jmuduo/examples/maxconnection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(maxconnection_echo echo.cc main.cc) 2 | target_link_libraries(maxconnection_echo muduo_net) 3 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/maxconnection/echo.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/maxconnection/echo.cc -------------------------------------------------------------------------------- /src/48/jmuduo/examples/maxconnection/echo.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/examples/maxconnection/echo.h -------------------------------------------------------------------------------- /src/48/jmuduo/examples/multiplexer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(multiplex_server multiplexer.cc) 2 | target_link_libraries(multiplex_server muduo_net) 3 | 4 | add_executable(multiplex_server_simple multiplexer_simple.cc) 5 | target_link_libraries(multiplex_server_simple muduo_net) 6 | 7 | add_executable(multiplex_demux demux.cc) 8 | target_link_libraries(multiplex_demux muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/Event.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class Event { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/EventSource.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public enum EventSource { 4 | kBackend, kClient 5 | } 6 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/multiplexer/harness/src/com/chenshuo/muduo/example/multiplexer/TestFailedException.java: -------------------------------------------------------------------------------- 1 | package com.chenshuo.muduo.example.multiplexer; 2 | 3 | public class TestFailedException extends RuntimeException { 4 | private static final long serialVersionUID = 1982L; 5 | 6 | public TestFailedException(String message) { 7 | super(message); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/netty/discard/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_discard_client client.cc) 2 | target_link_libraries(netty_discard_client muduo_net) 3 | 4 | add_executable(netty_discard_server server.cc) 5 | target_link_libraries(netty_discard_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/netty/echo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_echo_client client.cc) 2 | target_link_libraries(netty_echo_client muduo_net) 3 | 4 | add_executable(netty_echo_server server.cc) 5 | target_link_libraries(netty_echo_server muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/netty/uptime/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(netty_uptime uptime.cc) 2 | target_link_libraries(netty_uptime muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/pingpong/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(pingpong_client client.cc) 2 | target_link_libraries(pingpong_client muduo_net) 3 | 4 | add_executable(pingpong_server server.cc) 5 | target_link_libraries(pingpong_server muduo_net) 6 | 7 | add_executable(pingpong_bench bench.cc) 8 | target_link_libraries(pingpong_bench muduo_net) 9 | 10 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/protobuf/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(codec) 2 | add_subdirectory(rpc) 3 | add_subdirectory(rpcbench) 4 | 5 | if(CARES_INCLUDE_DIR AND CARES_LIBRARY) 6 | add_subdirectory(resolver) 7 | else() 8 | add_subdirectory(resolver EXCLUDE_FROM_ALL) 9 | endif() 10 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/roundtrip/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(roundtrip roundtrip.cc) 2 | target_link_libraries(roundtrip muduo_net) 3 | 4 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/shorturl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(shorturl shorturl.cc) 2 | target_link_libraries(shorturl muduo_http) 3 | 4 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/socks4a/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(tcprelay tcprelay.cc) 2 | target_link_libraries(tcprelay muduo_net) 3 | 4 | add_executable(socks4a socks4a.cc) 5 | target_link_libraries(socks4a muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/sudoku/sudoku.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 2 | #define MUDUO_EXAMPLES_SUDOKU_SUDOKU_H 3 | 4 | 5 | #include 6 | 7 | // FIXME, use (const char*, len) for saving memory copying. 8 | muduo::string solveSudoku(const muduo::string& puzzle); 9 | const int kCells = 81; 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/twisted/finger/finger01.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | using namespace muduo; 4 | using namespace muduo::net; 5 | 6 | int main() 7 | { 8 | EventLoop loop; 9 | loop.loop(); 10 | } 11 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/twisted/finger/finger02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using namespace muduo; 5 | using namespace muduo::net; 6 | 7 | int main() 8 | { 9 | EventLoop loop; 10 | TcpServer server(&loop, InetAddress(1079), "Finger"); 11 | server.start(); 12 | loop.loop(); 13 | } 14 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/wordcount/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(wordcount_hasher hasher.cc) 2 | target_link_libraries(wordcount_hasher muduo_net) 3 | 4 | add_executable(wordcount_receiver receiver.cc) 5 | target_link_libraries(wordcount_receiver muduo_net) 6 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/wordcount/gen.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import random 4 | 5 | words = 1000000 6 | word_len = 5 7 | alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-' 8 | 9 | output = open('random_words', 'w') 10 | for x in xrange(words): 11 | arr = [random.choice(alphabet) for i in range(word_len)] 12 | word = ''.join(arr) 13 | output.write(word) 14 | output.write('\n') 15 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/zeromq/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(zeromq_local_lat local_lat.cc) 2 | target_link_libraries(zeromq_local_lat muduo_net) 3 | 4 | add_executable(zeromq_remote_lat remote_lat.cc) 5 | target_link_libraries(zeromq_remote_lat muduo_net) 6 | 7 | -------------------------------------------------------------------------------- /src/48/jmuduo/examples/zeromq/README: -------------------------------------------------------------------------------- 1 | 2 | local_lat.cc : echo server with LengthHeaderCodec 3 | remote_lat.cc : echo client with LengthHeaderCodec 4 | -------------------------------------------------------------------------------- /src/48/jmuduo/muduo/base/AsyncLogging.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/muduo/base/AsyncLogging.cc -------------------------------------------------------------------------------- /src/48/jmuduo/muduo/base/AsyncLogging.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/muduo/base/AsyncLogging.h -------------------------------------------------------------------------------- /src/48/jmuduo/muduo/base/copyable.h: -------------------------------------------------------------------------------- 1 | #ifndef MUDUO_BASE_COPYABLE_H 2 | #define MUDUO_BASE_COPYABLE_H 3 | 4 | namespace muduo 5 | { 6 | 7 | /// A tag class emphasises the objects are copyable. 8 | /// The empty base class optimization applies. 9 | /// Any derived class of copyable should be a value type. 10 | class copyable 11 | { 12 | }; 13 | 14 | }; 15 | 16 | #endif // MUDUO_BASE_COPYABLE_H 17 | -------------------------------------------------------------------------------- /src/48/jmuduo/muduo/base/tests/AsyncLogging_test.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/muduo/base/tests/AsyncLogging_test.cc -------------------------------------------------------------------------------- /src/48/jmuduo/muduo/net/inspect/tests/Inspector_test.cc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | int main() 9 | { 10 | EventLoop loop; 11 | EventLoopThread t; // 监控线程 12 | Inspector ins(t.startLoop(), InetAddress(12345), "test"); 13 | loop.loop(); 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/48/jmuduo/muduo/net/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(BOOSTTEST_LIBRARY) 2 | add_executable(inetaddress_unittest InetAddress_unittest.cc) 3 | target_link_libraries(inetaddress_unittest muduo_net boost_unit_test_framework) 4 | endif() 5 | -------------------------------------------------------------------------------- /src/48/jmuduo/tests/Filetransfer_test.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/tests/Filetransfer_test.cc -------------------------------------------------------------------------------- /src/48/jmuduo/tests/Reactor_test02.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | using namespace muduo; 6 | using namespace muduo::net; 7 | 8 | EventLoop* g_loop; 9 | 10 | void threadFunc() 11 | { 12 | g_loop->loop(); 13 | } 14 | 15 | int main(void) 16 | { 17 | EventLoop loop; 18 | g_loop = &loop; 19 | Thread t(threadFunc); 20 | t.start(); 21 | t.join(); 22 | return 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /src/48/jmuduo/tests/Reactor_test13.cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/48/jmuduo/tests/Reactor_test13.cc -------------------------------------------------------------------------------- /src/48/jmuduo/tests/bsa.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | class Timestamp 4 | { 5 | private: 6 | int64_t microSecondsSinceEpoch_; 7 | }; 8 | 9 | BOOST_STATIC_ASSERT(sizeof(Timestamp) == sizeof(int64_t)); 10 | //BOOST_STATIC_ASSERT(sizeof(int) == sizeof(short)); 11 | 12 | int main(void) 13 | { 14 | return 0; 15 | } 16 | -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/BankClient.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/BankClient.suo -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/BankClient.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/BankClient.vcproj -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/BankSession.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/BankSession.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/BankSession.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/BankSession.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/BalanceInquiry.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/BalanceInquiry.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/BalanceInquiry.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/BalanceInquiry.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/ChangePassword.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/ChangePassword.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/ChangePassword.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/ChangePassword.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/CloseAccount.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/CloseAccount.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/CloseAccount.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/CloseAccount.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/Deposit.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/Deposit.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/Deposit.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/Deposit.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/OpenAccount.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/OpenAccount.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/OpenAccount.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/OpenAccount.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/QueryAccountHistoryBill.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/QueryAccountHistoryBill.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/QueryAccountHistoryBill.h: -------------------------------------------------------------------------------- 1 | #ifndef _QUERY_ACCOUNT_HISTORY_BILL_H_ 2 | #define _QUERY_ACCOUNT_HISTORY_BILL_H_ 3 | 4 | #include "Transaction.h" 5 | 6 | namespace CMD 7 | { 8 | 9 | class QueryAccountHistoryBill : public Transaction 10 | { 11 | public: 12 | virtual void Execute(BankSession& session); 13 | }; 14 | 15 | } 16 | 17 | #endif // _QUERY_ACCOUNT_HISTORY_BILL_H_ 18 | -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/QueryDayBill.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/QueryDayBill.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/QueryDayBill.h: -------------------------------------------------------------------------------- 1 | #ifndef _QUERY_DAY_BILL_H_ 2 | #define _QUERY_DAY_BILL_H_ 3 | 4 | #include "Transaction.h" 5 | 6 | namespace CMD 7 | { 8 | 9 | class QueryDayBill : public Transaction 10 | { 11 | public: 12 | virtual void Execute(BankSession& session); 13 | }; 14 | 15 | } 16 | 17 | #endif // _QUERY_DAY_BILL_H_ -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/QueryHistoryBill.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/QueryHistoryBill.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/QueryHistoryBill.h: -------------------------------------------------------------------------------- 1 | #ifndef _QUERY_HISTORY_BILL_H_ 2 | #define _QUERY_HISTORY_BILL_H_ 3 | 4 | #include "Transaction.h" 5 | 6 | namespace CMD 7 | { 8 | 9 | class QueryHistoryBill : public Transaction 10 | { 11 | public: 12 | virtual void Execute(BankSession& session); 13 | }; 14 | 15 | } 16 | 17 | #endif // _QUERY_HISTORY_BILL_H_ -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/Transaction.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/Transaction.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/Transfer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/Transfer.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/Transfer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/Transfer.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/UserLogin.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/UserLogin.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/UserLogin.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/UserLogin.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/Withdrawal.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/Withdrawal.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/CMD/Withdrawal.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/CMD/Withdrawal.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/JFC/JApplication.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/JFC/JApplication.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/JFC/JApplication.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/JFC/JApplication.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/JFC/JButton.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/JFC/JButton.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/JFC/JEdit.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/JFC/JEdit.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/JFC/JForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/JFC/JForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/JFC/JMessageBox.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/JFC/JMessageBox.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/JFC/JMessageBox.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/JFC/JMessageBox.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/JFC/JWindow.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/JFC/JWindow.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/JFC/JWindowBase.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/JFC/JWindowBase.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/JFC/JWindowBase.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/JFC/JWindowBase.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/TransDetail.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/TransDetail.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/BalanceInquiryForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/BalanceInquiryForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/ChangePasswordForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/ChangePasswordForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/CloseAccountForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/CloseAccountForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/DepositForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/DepositForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/FormManager.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/FormManager.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/LoginForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/LoginForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/MainMenuForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/MainMenuForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/OpenAccountForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/OpenAccountForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/QueryAccountHistoryBillForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/QueryAccountHistoryBillForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/QueryDayBillForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/QueryDayBillForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/QueryHistoryBillForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/QueryHistoryBillForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/ReceiptForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/ReceiptForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/ReportForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/ReportForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/ReportForm.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/ReportForm.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/TransferForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/TransferForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/Validator.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/Validator.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/UI/WithdrawalForm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/UI/WithdrawalForm.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/client.conf: -------------------------------------------------------------------------------- 1 | [CLIENT] 2 | SERVER_IP=127.0.0.1 3 | PORT=8888 -------------------------------------------------------------------------------- /src/49/ABCBank/BankClient/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankClient/main.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/BankServer.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/BankServer.suo -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/BankServer.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/BankServer.vcproj -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/BankSession.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/BankSession.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/BankThread.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/BankThread.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/BalanceInquiry.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/BalanceInquiry.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/BalanceInquiry.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/BalanceInquiry.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/ChangePassword.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/ChangePassword.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/ChangePassword.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/ChangePassword.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/CloseAccount.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/CloseAccount.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/CloseAccount.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/CloseAccount.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/Deposit.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/Deposit.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/Deposit.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/Deposit.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/OpenAccount.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/OpenAccount.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/OpenAccount.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/OpenAccount.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/QueryAccountHistoryBill.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/QueryAccountHistoryBill.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/QueryAccountHistoryBill.h: -------------------------------------------------------------------------------- 1 | #ifndef _QUERY_ACCOUNT_HISTORY_BILL_H_ 2 | #define _QUERY_ACCOUNT_HISTORY_BILL_H_ 3 | 4 | #include "Transaction.h" 5 | 6 | namespace CMD 7 | { 8 | 9 | class QueryAccountHistoryBill : public Transaction 10 | { 11 | public: 12 | virtual void Execute(BankSession& session); 13 | }; 14 | 15 | } 16 | 17 | #endif // _QUERY_ACCOUNT_HISTORY_BILL_H_ 18 | -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/QueryDayBill.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/QueryDayBill.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/QueryDayBill.h: -------------------------------------------------------------------------------- 1 | #ifndef _QUERY_DAY_BILL_H_ 2 | #define _QUERY_DAY_BILL_H_ 3 | 4 | #include "Transaction.h" 5 | 6 | namespace CMD 7 | { 8 | 9 | class QueryDayBill : public Transaction 10 | { 11 | public: 12 | virtual void Execute(BankSession& session); 13 | }; 14 | 15 | } 16 | 17 | #endif // _QUERY_DAY_BILL_H_ -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/QueryHistoryBill.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/QueryHistoryBill.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/QueryHistoryBill.h: -------------------------------------------------------------------------------- 1 | #ifndef _QUERY_HISTORY_BILL_H_ 2 | #define _QUERY_HISTORY_BILL_H_ 3 | 4 | #include "Transaction.h" 5 | 6 | namespace CMD 7 | { 8 | 9 | class QueryHistoryBill : public Transaction 10 | { 11 | public: 12 | virtual void Execute(BankSession& session); 13 | }; 14 | 15 | } 16 | 17 | #endif // _QUERY_HISTORY_BILL_H_ -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/Transaction.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/Transaction.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/Transfer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/Transfer.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/Transfer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/Transfer.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/UserLogin.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/UserLogin.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/UserLogin.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/UserLogin.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/Withdrawal.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/Withdrawal.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/CMD/Withdrawal.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/CMD/Withdrawal.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/DAL/Account.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/DAL/Account.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/DAL/BankService.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/DAL/BankService.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/DAL/BankService.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/DAL/BankService.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/DAL/IBankService.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/DAL/IBankService.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/DAL/MysqlDB.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/DAL/MysqlDB.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/DAL/TransDetail.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/DAL/TransDetail.h -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/Server.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/Server.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/main.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/BankServer/server.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/BankServer/server.conf -------------------------------------------------------------------------------- /src/49/ABCBank/Bin/BankClient-short.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/Bin/BankClient-short.exe -------------------------------------------------------------------------------- /src/49/ABCBank/Bin/BankClient.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/Bin/BankClient.exe -------------------------------------------------------------------------------- /src/49/ABCBank/Bin/BankClient.ilk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/Bin/BankClient.ilk -------------------------------------------------------------------------------- /src/49/ABCBank/Bin/BankClient.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/Bin/BankClient.pdb -------------------------------------------------------------------------------- /src/49/ABCBank/Bin/BankServer.ilk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/Bin/BankServer.ilk -------------------------------------------------------------------------------- /src/49/ABCBank/Bin/client.conf: -------------------------------------------------------------------------------- 1 | [CLIENT] 2 | #SERVER_IP=127.0.0.1 3 | SERVER_IP=192.168.159.188 4 | PORT=8888 -------------------------------------------------------------------------------- /src/49/ABCBank/Bin/libmysql.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/Bin/libmysql.dll -------------------------------------------------------------------------------- /src/49/ABCBank/Bin/server.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/Bin/server.conf -------------------------------------------------------------------------------- /src/49/ABCBank/Lib/libmysql.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/Lib/libmysql.lib -------------------------------------------------------------------------------- /src/49/ABCBank/Public/Exception.cpp: -------------------------------------------------------------------------------- 1 | #include "Exception.h" 2 | 3 | using namespace PUBLIC; 4 | 5 | const char* Exception::what() const throw() 6 | { 7 | return message_.c_str(); 8 | } 9 | 10 | const char* Exception::StackTrace() const throw() 11 | { 12 | return stackTrace_.c_str(); 13 | } 14 | 15 | void Exception::FillStackTrace() 16 | { 17 | } 18 | -------------------------------------------------------------------------------- /src/49/ABCBank/Public/LogStream.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/Public/LogStream.cpp -------------------------------------------------------------------------------- /src/49/ABCBank/Public/LogStream.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/ABCBank/Public/LogStream.h -------------------------------------------------------------------------------- /src/49/ABCBank/Public/Singleton.h: -------------------------------------------------------------------------------- 1 | #ifndef _SINGLETON_H_ 2 | #define _SINGLETON_H_ 3 | 4 | namespace PUBLIC 5 | { 6 | 7 | template 8 | class Singleton 9 | { 10 | public: 11 | static T& Instance() 12 | { 13 | static T instance; 14 | return instance; 15 | } 16 | private: 17 | Singleton(); 18 | ~Singleton(); 19 | }; 20 | 21 | } 22 | 23 | #endif // _SINGLETON_H_ 24 | -------------------------------------------------------------------------------- /src/49/abcbank-muduo.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iceCream1997/muduo_server_learn/450c323f09893b141a355cab5e51a9dd372ca843/src/49/abcbank-muduo.tar.gz -------------------------------------------------------------------------------- /src/49/server.conf: -------------------------------------------------------------------------------- 1 | [SERVER] 2 | #SERVER_IP=192.168.0.188 3 | #端口 4 | PORT=8888 5 | 6 | [DB] 7 | IP=localhost 8 | #PORT=0表示默认端口3306 9 | PORT=3306 10 | USER=root 11 | PASS=123456 12 | NAME=bank 13 | 14 | [BANK] 15 | #利率 16 | INTEREST_RATE=0.0035 17 | --------------------------------------------------------------------------------