• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

UltraMonkey-L7 V3(multi-thread implementation)


Commit MetaInfo

Revision10dc7242fb86e98e5c293ea9de0fd96a7b57e659 (tree)
Time2011-01-07 10:22:15
AuthorMichiro Hibari <hibari@user...>
CommiterMichiro Hibari

Log Message

Clean up.

Change Summary

  • delete: CHANGES
  • delete: README
  • delete: include/error_code.h
  • delete: lib/thread/include/rw_mutex.h
  • delete: lib/thread/include/scoped_lock.h
  • delete: lib/thread/include/spin_mutex.h

Incremental Difference

--- a/CHANGES
+++ /dev/null
@@ -1,73 +0,0 @@
1-[Xxx.xx 2009] 3.0.0 Norihisa Nakai
2- - MultiThread version First Release.
3-
4-[Apr.20 2009] 2.1.2-1 Shinya TAKEBAYASHI
5- - Removed cookie modules
6-
7-[Mar. 9 2009] 2.1.2-0 Shinya TAKEBAYASHI
8- - Added protocol modules(recently supported):
9- * cpassive(Cookie passive)
10- * crewrite(Cookie rewrite)
11- * ip(Source IP)
12- * pfilter(Packet filter)
13- - Implemented replication spec to sslid module.
14-
15-[Jan. 27 2009] 2.1.1-0 Shinya TAKEBAYASHI
16- - Added option for FAST SCHEDULE to sessionless module.
17- Establishing connection when clinent connection was established.
18- - Updated l7directord man file.
19- - Changed methods for sslid module.(liner list -> hash list)
20-
21-[Dec. 17 2008] 2.1.0-0 Shinya TAKEBAYASHI
22- - Implemented access logger (CLIENT - DESTINATION mapping).
23- - Optimized event listener.
24- - Fixed algorithms for some check type.
25- - "Checkcount" has been enabled.
26- - Created "man" page.(Japanese(UTF-8) only ;))
27- - Implemented flow control logic(server).
28- - Eliminated flow control logic(client).
29-
30-[May. 26 2008] 2.0.0-0 Shinya TAKEBAYASHI
31- - Changed logger library(vanessa_logger -> log4cxx)
32- - Implemented configuration function(using configuration file: /etc/l7vs/l7vs.cf)
33- - Implemented replication system(for HA clustering)
34- - Added new protocol module(sessionless - Layer-4 LB like module)
35-
36-[Dec. 11 2007] 1.0.0-1 Shinya TAKEBAYASHI
37- - Implemented blocking mode switching function
38-
39-[Oct. 11 2007] 1.0.0-0 Shinya TAKEBAYASHI
40- - Change liblary from GLib1.2 to GLib2.0 (memory leak fix)
41- - Change from select() to epoll ET.
42- - Change bloking mode to non-blocking mode(recv() and send()).
43- - Change from service conn list to service conn hash.
44- - Change from iomux-list to hash-map and available list.
45- - Add QoS Control.
46- - Add Weighted Round-Robin scheduler.
47- - Add real server weight.
48- - Fixed some bugs.
49-
50- * Following members helped us. Thanks!
51-
52- Hideaki KONDO
53- Shunji FUKUSHIMA
54- Norihisa NAKAI
55- Hajime OKADA
56- Akira TAKAMARU
57- Hiroyuki BAN
58- Toru MORISHITA
59- Kouhei TANUMA
60- Tetsuya TAKATSURU
61- Masahiro SAKAMOTO
62- Yumi KITANI
63-
64-[May. 9 2007] 0.6.0-0 Shinya TAKEBAYASHI
65- - Extended maximum client connections.
66- - Fixed some bugs.
67-
68-[Feb. 19, 2007] 0.5.0-3 Shinya TAKEBAYASHI
69- - Fixed syntax errors.(umagent/umagent.c, umagent/Makefile)
70-
71-[Dec. 26, 2006] 0.5.0-2 Takahiro Kurosawa / Hideaki Kondo
72- - Rewrote to fix bug about Segmentation Fault.(conn.c)
73-
--- a/README
+++ /dev/null
@@ -1,35 +0,0 @@
1-About UltraMonkey-L7
2----------------------------------------------------------------------------
3-
4-Welcome
5-=======
6- UltraMonkey-L7 is a opensource layer-7 load balancing software.
7-
8-
9-System requirements
10-===================
11-
12- OS : Linux 2.6.9(or later)on x86 and x86_64 architecture
13- We recommend to use Redhat Enterprise Linux.
14-
15- CPU : Intel x86 and x86_64 or compatible architecture processors
16-
17- Memory : 2 GB(recommended)
18-
19- Libraries : gcc4(or higher), glib2.x, apache log4cxx(0.10 or higher), boost C++ libraries( 1.38 or higher )
20-
21-
22-License
23-=======
24-
25- UltraMonkey-L7 is distributed using LGPL License.
26-
27-
28-About UltraMonkey-L7 Project
29-============================
30-
31- To get more information about UltraMonkey-L7, please visit our project
32- Web Site.
33-
34- Project Web Site - http://ultramonkey-l7.sourceforge.jp/
35- Software repository - http://sourceforge.jp/projects/ultramonkey-l7/
--- a/include/error_code.h
+++ /dev/null
@@ -1,43 +0,0 @@
1-#ifndef ERROR_CODE_H
2-#define ERROR_CODE_H
3-//
4-// (C) Copyright 2009- Norihisa Nakai
5-// Distributed under the Boost Software License, Version 1.0
6-// (See accompanying file LICENSE_1_0.txt http://www.boost.org/LICENSE_1_0.txt)
7-
8-#include <string>
9-
10-namespace ultramonkey{
11-
12-//! @class error_code
13-//! @brief getValue error
14-//! @brief this class is POD
15-class error_code{
16-protected:
17- bool flag; //!< errorcode flag
18- std::string msg; //!< errorcode message
19-public:
20- error_code() : flag(false){} //!< constractor
21- //! setter constractor
22- //! @param[in] flags
23- //! @param[in] error message
24- error_code( const bool inflg, const std::string& instr ) : flag( inflag ), msg( instr ){}
25- bool operator==( const bool in ) const { return ( flag == in ); } //!< operator== orverload
26- bool operator!=( const bool in ) const { return ( flag != in ); } //!< operator!= orverload
27- bool operator!() const { return !flag; } //!< operator! orverload
28- typedef void (*unspecified_bool_type)(); //!< if return function
29- static void unspecified_bool_true() {} //!< if true orverload function
30- operator unspecified_bool_type() const { return flag == 0 ? 0 : unspecified_bool_true; } //!< if() orverload
31- const std::string& get_message() const { return msg; } //!< message getter
32- //! error setter
33- //! @param[in] flags
34- //! @param[in] error message
35- void setter( const bool flg, const std::string& instr ){
36- flag = flg;
37- msg = instr;
38- }
39-};
40-
41-} // ultramonkey
42-
43-#endif // ERROR_CODE_H
--- a/lib/thread/include/rw_mutex.h
+++ /dev/null
@@ -1,47 +0,0 @@
1-#ifndef RW_MUTEX_H
2-#define RW_MUTEX_H
3-//
4-// (C) Copyright 2009- Norihisa Nakai
5-// Distributed under the Boost Software License, Version 1.0
6-// (See accompanying file LICENSE_1_0.txt http://www.boost.org/LICENSE_1_0.txt)
7-
8-#include <boost/noncopyable.hpp>
9-#include <boost/thread/exceptions.hpp>
10-#include <error.h>
11-#include <pthread.h>
12-
13-namespace ultramonkey{
14-
15-class rw_mutex : boost::noncopyable{
16-protected:
17- pthread_rwlock_t m;
18-public:
19- rw_mutex(){
20- int const res = pthread_rwlock_init( &m, NULL );
21- if( res ) throw boost::thread_resource_error();
22- }
23-
24- ~rw_mutex(){
25- pthread_rwlock_destroy(&m);
26- }
27-
28- void rdlock(){ pthread_rwlock_rdlock( &m ); }
29- void wrlock(){ pthread_rwlock_wrlock( &m ); }
30- bool try_rdlock(){
31- int const res = pthread_rwlock_tryrdlock( &m );
32- return res;
33- }
34- bool try_wrlock(){
35- int const res = pthread_rwlock_trywrlock(&m);
36- return res;
37- }
38- void unlock(){
39- pthread_rwlock_unlock( &m );
40- }
41-
42-};
43-
44-
45-} //namespace ultramonkey
46-
47-#endif // RW_MUTEX_H
\ No newline at end of file
--- a/lib/thread/include/scoped_lock.h
+++ /dev/null
@@ -1,55 +0,0 @@
1-#ifndef SCOPED_LOCK_H
2-#define SCOPED_LOCK_H
3-//
4-// (C) Copyright 2009- Norihisa Nakai
5-// Distributed under the Boost Software License, Version 1.0
6-// (See accompanying file LICENSE_1_0.txt http://www.boost.org/LICENSE_1_0.txt)
7-
8-#include "spin_mutex.h"
9-#include "rw_mutex.h"
10-
11-namespace ultramonkey{
12-
13-template < class T >
14-class scoped_lock : boost::noncopyable {
15-protected:
16- T& mtx;
17-public:
18- explicit scoped_lock( T& mutex ) : mtx( mutex ){
19- mtx.lock();
20- }
21-
22- ~scoped_lock(){
23- mtx.unlock();
24- }
25-};
26-
27-typedef scoped_lock< spin_mutex > spin_scoped_lock;
28-
29-class rd_scoped_lock : boost::noncopyable{
30-protected:
31- rw_mutex& mtx;
32-public:
33- explicit rd_scoped_lock( rw_mutex& mutex ) : mtx( mutex ){
34- mtx.rdlock();
35- }
36- ~rd_scoped_lock(){
37- mtx.unlock();
38- }
39-};
40-
41-class wr_scoped_lock {
42-protected:
43- rw_mutex& mtx;
44-public:
45- wr_scoped_lock( rw_mutex& mutex ) : mtx( mutex ){
46- mtx.wrlock();
47- }
48- ~wr_scoped_lock(){
49- mtx.unlock();
50- }
51-};
52-
53-} //namespace ultramonkey
54-
55-#endif // SCOPED_LOCK_H
\ No newline at end of file
--- a/lib/thread/include/spin_mutex.h
+++ /dev/null
@@ -1,38 +0,0 @@
1-#ifndef SPIN_MUTEX_H
2-#define SPIN_MUTEX_H
3-//
4-// (C) Copyright 2009- Norihisa Nakai
5-// Distributed under the Boost Software License, Version 1.0
6-// (See accompanying file LICENSE_1_0.txt http://www.boost.org/LICENSE_1_0.txt)
7-
8-
9-#include <boost/noncopyable.hpp>
10-#include <boost/thread/exceptions.hpp>
11-#include <error.h>
12-#include <pthread.h>
13-
14-namespace ultramonkey{
15-
16-class spin_mutex : boost::noncopyable{
17-protected:
18- pthread_spinlock_t m;
19-public:
20- spin_mutex(){
21- int const res = pthread_spin_init( &m, NULL );
22- if( res ) throw boost::thread_resource_error();
23- }
24-
25- ~spin_mutex(){
26- pthread_spin_destroy(&m);
27- }
28-
29- void lock(){ pthread_spin_lock(&m); }
30- void unlock(){ pthread_spin_unlock(&m); }
31- bool try_lock(){
32- int const res = pthread_spin_trylock(&m);
33- return !res;
34- }
35-};
36-
37-} // namespace ultramonkey
38-#endif //SPIN_MUTEX_H
\ No newline at end of file