From 5b24915b92470c4f4174c7f9e36971b88a9a468b Mon Sep 17 00:00:00 2001 From: Yoshimoto Masanori Date: Mon, 1 Sep 2014 14:13:23 +0900 Subject: [PATCH 01/14] [Release] 1.1.1 bug fixes - Avoid to close the already closed socket - Skip proxy request when destination node is down - Fix the resource leaks of socket in server - Fix some compile warnings - Fix some race conditions in thread.cc - Check dynamic_cast result - Fix pthread_cond_wait() in zookeeper_lock::_assure_session_connected() - Add initialization of cluster#node - Remove some deadcode - Add null check before the code with the potential null access - Exit when IO-buffer is unsafe - Fix memory leak of proxy in op_parser_text --- NEWS | 16 ++++++++++++++++ configure.ac | 2 +- debian/changelog | 6 ++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index a9190095..204356cc 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,19 @@ +* [2014/09/01] 1.1.1 release + + * bug fixes + - Avoid to close the already closed socket + - Skip proxy request when destination node is down + - Fix the resource leaks of socket in server + - Fix some compile warnings + - Fix some race conditions in thread.cc + - Check dynamic_cast result + - Fix pthread_cond_wait() in zookeeper_lock::_assure_session_connected() + - Add initialization of cluster#node + - Remove some deadcode + - Add null check before the code with the potential null access + - Exit when IO-buffer is unsafe + - Fix memory leak of proxy in op_parser_text + * [2014/05/14] 1.1.0 release * feature updates diff --git a/configure.ac b/configure.ac index d44ce594..61a008ec 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT(flare, 1.1.0) +AC_INIT(flare, 1.1.1) AC_CONFIG_SRCDIR(src/flared/flared.cc) AM_INIT_AUTOMAKE AC_CONFIG_HEADERS(src/config.h) diff --git a/debian/changelog b/debian/changelog index 27e8dab0..049802c0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +flare (1.1.1-1) unstable; urgency=low + + * 1.1.1 + + -- Masanori Yoshimoto Fri, 29 Aug 2014 14:02:50 +0900 + flare (1.1.0-1) unstable; urgency=low * 1.1.0 From e015fb86022e58892e32b911f15d06d6779dc512 Mon Sep 17 00:00:00 2001 From: Kiyoshi Ikehara Date: Thu, 6 Nov 2014 19:26:31 +0900 Subject: [PATCH 02/14] Fix zookeeper_lock::_assure_session_connected() --- src/lib/zookeeper_lock.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/lib/zookeeper_lock.cc b/src/lib/zookeeper_lock.cc index df892f8b..87923d13 100644 --- a/src/lib/zookeeper_lock.cc +++ b/src/lib/zookeeper_lock.cc @@ -557,13 +557,12 @@ int zookeeper_lock::_reset_lock() { int zookeeper_lock::_assure_session_connected() { pthread_mutex_lock(&(this->_mutex_session_state)); - session_state s = this->_session_state; - while (s != session_state_active && s != session_state_finished) { + while (this->_session_state != session_state_active && this->_session_state != session_state_finished) { log_notice("not connected [%s] - %s", this->_path.c_str(), this->_message.c_str()); pthread_cond_wait(&this->_cond_session_state, &this->_mutex_session_state); } pthread_mutex_unlock(&(this->_mutex_session_state)); - return (s == session_state_active)?0:-1; + return (this->_session_state == session_state_active)?0:-1; } void zookeeper_lock::_lock_watcher_fn(zhandle_t* zh, int type, int state, From f3ab7c0defe98792eed8e3947efa980ca2c85895 Mon Sep 17 00:00:00 2001 From: Kiyoshi Ikehara Date: Wed, 12 Nov 2014 12:32:47 +0900 Subject: [PATCH 03/14] Fix op_set binary parser to enable behavior_cas flag --- src/lib/op_set.cc | 7 +++++-- test/lib/test_op_set.cc | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/op_set.cc b/src/lib/op_set.cc index 28e5b749..ac52e993 100644 --- a/src/lib/op_set.cc +++ b/src/lib/op_set.cc @@ -78,6 +78,9 @@ int op_set::_parse_text_server_parameters() { int op_set::_parse_binary_request(const binary_request_header& header, const char* body) { if (header.get_extras_length() == _binary_request_required_extras_length && this->_entry.parse(header, body) == 0) { + if (this->_entry.version > 0) { + this->_behavior |= storage::behavior_cas; + } this->_entry.flag = ntohl(*(reinterpret_cast(body))); this->_entry.expire = util::realtime(ntohl(*(reinterpret_cast(body + 4)))); shared_byte data(new uint8_t[this->_entry.size]); @@ -129,7 +132,7 @@ int op_set::_run_server() { } if (r_storage == storage::result_stored || r_storage == storage::result_touched) { - if (this->get_ident() == "cas"){ + if ((this->_behavior & storage::behavior_cas) || this->get_ident() == "cas"){ stats_object->increment_cas_hits(); } else if (this->get_ident() == "touch"){ stats_object->increment_touch_hits(); @@ -138,7 +141,7 @@ int op_set::_run_server() { this->_is_sync(this->_entry.option, this->_cluster->get_replication_type())); } else { - if (this->get_ident() == "cas"){ + if ((this->_behavior & storage::behavior_cas) || this->get_ident() == "cas"){ if (r_storage == storage::result_exists){ stats_object->increment_cas_badval(); } else if (r_storage == storage::result_not_found) { diff --git a/test/lib/test_op_set.cc b/test/lib/test_op_set.cc index ec44b5ce..ff4135cf 100644 --- a/test/lib/test_op_set.cc +++ b/test/lib/test_op_set.cc @@ -87,6 +87,7 @@ namespace test_op_set cut_assert_equal_int(1, op._entry.flag); cut_assert_equal_double(stats_object->get_timestamp() + 60, 2, op._entry.expire); cut_assert_equal_int(5, op._entry.size); + cut_assert_equal_int(5, op._entry.version); cut_assert_equal_memory("value", 5, op._entry.data.get(), 5); char* dummy; cut_assert_equal_int(-1, c->readsize(1, &dummy)); From 85e2dd15e263302bd3a0a35d62e8a08d7eac98cf Mon Sep 17 00:00:00 2001 From: Yoshimoto Masanori Date: Thu, 13 Nov 2014 20:38:44 +0900 Subject: [PATCH 04/14] Replication over cluster --- src/flared/flared.cc | 34 ++ src/flared/flared.h | 6 + src/flared/ini_option.cc | 59 +- src/flared/ini_option.h | 13 +- src/flared/show_node.cc | 5 + src/lib/Makefile.am | 8 +- src/lib/cluster.cc | 34 ++ src/lib/cluster.h | 8 + src/lib/cluster_replication.cc | 213 +++++++ src/lib/cluster_replication.h | 63 +++ src/lib/handler_cluster_replication.cc | 106 ++++ src/lib/handler_cluster_replication.h | 48 ++ src/lib/handler_dump_replication.cc | 183 ++++++ src/lib/handler_dump_replication.h | 52 ++ src/lib/proxy_event_listener.h | 31 ++ src/lib/queue_forward_query.cc | 118 ++++ src/lib/queue_forward_query.h | 58 ++ src/lib/storage_listener.h | 2 +- src/lib/thread_pool.h | 2 + test/lib/Makefile.am | 12 +- test/lib/mock_cluster.cc | 117 ++++ test/lib/mock_cluster.h | 54 +- test/lib/mock_op_proxy_write.h | 59 ++ test/lib/mock_storage.cc | 150 +++++ test/lib/mock_storage.h | 64 +++ test/lib/storage_simple_map.h | 102 ---- test/lib/test_cluster_replication.cc | 552 +++++++++++++++++++ test/lib/test_connection_tcp.h | 4 +- test/lib/test_handler_cluster_replication.cc | 199 +++++++ test/lib/test_handler_dump_replication.cc | 299 ++++++++++ test/lib/test_handler_proxy.cc | 62 ++- test/lib/test_op_dump.cc | 16 +- test/lib/test_queue_forward_query.cc | 165 ++++++ 33 files changed, 2721 insertions(+), 177 deletions(-) create mode 100644 src/lib/cluster_replication.cc create mode 100644 src/lib/cluster_replication.h create mode 100644 src/lib/handler_cluster_replication.cc create mode 100644 src/lib/handler_cluster_replication.h create mode 100644 src/lib/handler_dump_replication.cc create mode 100644 src/lib/handler_dump_replication.h create mode 100644 src/lib/proxy_event_listener.h create mode 100644 src/lib/queue_forward_query.cc create mode 100644 src/lib/queue_forward_query.h create mode 100644 test/lib/mock_cluster.cc create mode 100644 test/lib/mock_op_proxy_write.h create mode 100644 test/lib/mock_storage.cc create mode 100644 test/lib/mock_storage.h delete mode 100644 test/lib/storage_simple_map.h create mode 100644 test/lib/test_cluster_replication.cc create mode 100644 test/lib/test_handler_cluster_replication.cc create mode 100644 test/lib/test_handler_dump_replication.cc create mode 100644 test/lib/test_queue_forward_query.cc diff --git a/src/flared/flared.cc b/src/flared/flared.cc index 7e1582c9..3db6d701 100644 --- a/src/flared/flared.cc +++ b/src/flared/flared.cc @@ -161,6 +161,8 @@ int flared::startup(int argc, char **argv) { this->_thread_pool = new thread_pool(ini_option_object().get_thread_pool_size(), ini_option_object().get_stack_size()); + this->_cluster_replication = shared_cluster_replication(new cluster_replication(this->_thread_pool)); + this->_cluster = new cluster(this->_thread_pool, ini_option_object().get_server_name(), ini_option_object().get_server_port()); this->_cluster->set_proxy_concurrency(ini_option_object().get_proxy_concurrency()); this->_cluster->set_reconstruction_interval(ini_option_object().get_reconstruction_interval()); @@ -168,6 +170,7 @@ int flared::startup(int argc, char **argv) { this->_cluster->set_replication_type(ini_option_object().get_replication_type()); this->_cluster->set_max_total_thread_queue(ini_option_object().get_max_total_thread_queue()); this->_cluster->set_noreply_window_limit(ini_option_object().get_noreply_window_limit()); + this->_cluster->add_proxy_event_listener(this->_cluster_replication); if (this->_cluster->startup_node(ini_option_object().get_index_servers(), ini_option_object().get_proxy_prior_netmask()) < 0) { return -1; @@ -245,6 +248,17 @@ int flared::startup(int argc, char **argv) { } #endif + // cluster replication + this->_cluster_replication->set_sync(ini_option_object().get_cluster_replication_sync()); + if (ini_option_object().is_cluster_replication()) { + string n = ini_option_object().get_cluster_replication_server_name(); + int p = ini_option_object().get_cluster_replication_server_port(); + int c = ini_option_object().get_cluster_replication_concurrency(); + if (this->_cluster_replication->start(n, p, c, this->_storage, this->_cluster) < 0) { + return -1; + } + } + if (this->_set_pid() < 0) { return -1; } @@ -358,6 +372,26 @@ int flared::reload() { time_watcher_object->start(ini_option_object().get_time_watcher_polling_interval_msec()); } + // cluster replication + this->_cluster_replication->set_sync(ini_option_object().get_cluster_replication_sync()); + + if (ini_option_object().is_cluster_replication()) { + string cl_repl_server_name = ini_option_object().get_cluster_replication_server_name(); + int cl_repl_server_port = ini_option_object().get_cluster_replication_server_port(); + int cl_repl_concurrency = ini_option_object().get_cluster_replication_concurrency(); + + if (this->_cluster_replication->is_started() + && (cl_repl_server_name != this->_cluster_replication->get_server_name() + || cl_repl_server_port != this->_cluster_replication->get_server_port())) { + this->_cluster_replication->stop(); + } + + this->_cluster_replication->start(cl_repl_server_name, cl_repl_server_port, cl_repl_concurrency, + this->_storage, this->_cluster); + } else { + this->_cluster_replication->stop(); + } + log_notice("process successfully reloaded", 0); return 0; diff --git a/src/flared/flared.h b/src/flared/flared.h index b50858e4..47435b68 100644 --- a/src/flared/flared.h +++ b/src/flared/flared.h @@ -9,14 +9,19 @@ #define FLARED_H #include "app.h" +#include "cluster_replication.h" #include "ini_option.h" #include "stats_node.h" #include "status_node.h" #include "storage_access_info.h" +using boost::shared_ptr; + namespace gree { namespace flare { +typedef shared_ptr shared_cluster_replication; + /** * flared application class */ @@ -31,6 +36,7 @@ class flared : #ifdef ENABLE_MYSQL_REPLICATION server* _mysql_replication_server; #endif + shared_cluster_replication _cluster_replication; public: flared(); diff --git a/src/flared/ini_option.cc b/src/flared/ini_option.cc index 86a01daf..00cf8173 100644 --- a/src/flared/ini_option.cc +++ b/src/flared/ini_option.cc @@ -62,7 +62,12 @@ ini_option::ini_option(): _time_watcher_enabled(false), _time_watcher_polling_interval_msec(default_time_watcher_polling_interval_msec), _storage_access_watch_threshold_warn_msec(0), - _storage_access_watch_threshold_ping_ng_msec(0) { + _storage_access_watch_threshold_ping_ng_msec(0), + _cluster_replication(false), + _cluster_replication_server_name(""), + _cluster_replication_server_port(default_server_port), + _cluster_replication_concurrency(default_proxy_concurrency), + _cluster_replication_sync(false) { pthread_mutex_init(&this->_mutex_index_servers, NULL); } @@ -336,6 +341,28 @@ int ini_option::load() { if (opt_var_map.count("storage-access-watch-threshold-ping-ng-msec")) { this->_storage_access_watch_threshold_ping_ng_msec = opt_var_map["storage-access-watch-threshold-ping-ng-msec"].as(); } + + if (opt_var_map.count("cluster-replication")) { + this->_cluster_replication = true; + } + + if (opt_var_map.count("cluster-replication-server-name")) { + this->_cluster_replication_server_name = opt_var_map["cluster-replication-server-name"].as(); + } + + if (opt_var_map.count("cluster-replication-server-port")) { + this->_cluster_replication_server_port = opt_var_map["cluster-replication-server-port"].as(); + } + + if (opt_var_map.count("cluster-replication-concurrency")) { + this->_cluster_replication_concurrency = opt_var_map["cluster-replication-concurrency"].as(); + } else { + this->_cluster_replication_concurrency = this->_proxy_concurrency; + } + + if (opt_var_map.count("cluster-replication-sync")) { + this->_cluster_replication_sync = true; + } } catch (int e) { cout << option << endl; return -1; @@ -486,6 +513,23 @@ int ini_option::reload() { log_notice(" storage_access_watch_threshold_ping_ng_msec: %u -> %u", this->_storage_access_watch_threshold_ping_ng_msec, opt_var_map["storage-access-watch-threshold-ping-ng-msec"].as()); this->_storage_access_watch_threshold_ping_ng_msec = opt_var_map["storage-access-watch-threshold-ping-ng-msec"].as(); } + + log_notice(" cluster_replication: %s -> %s", this->_cluster_replication ? "true" : "false", opt_var_map.count("cluster-replication") ? "true" : "false"); + this->_cluster_replication = opt_var_map.count("cluster-replication") ? true : false; + + if (opt_var_map.count("cluster-replication-server-name")) { + log_notice(" cluster_replication_server_name: %s -> %s", this->_cluster_replication_server_name.c_str(), opt_var_map["cluster-replication-server-name"].as().c_str()); + this->_cluster_replication_server_name = opt_var_map["cluster-replication-server-name"].as(); + } + + if (opt_var_map.count("cluster-replication-server-port")) { + log_notice(" cluster_replication_server_port: %d -> %d", this->_cluster_replication_server_port, opt_var_map["cluster-replication-server-port"].as()); + this->_cluster_replication_server_port = opt_var_map["cluster-replication-server-port"].as(); + } + + log_notice(" cluster_replication_sync: %s -> %s", this->_cluster_replication_sync ? "true" : "false", opt_var_map.count("cluster-replication-sync") ? "true" : "false"); + this->_cluster_replication_sync = opt_var_map.count("cluster-replication-sync") ? true : false; + } catch (int e) { ostringstream ss; ss << option << endl; @@ -558,10 +602,15 @@ int ini_option::_setup_config_option(program_options::options_description& optio ("thread-pool-size", program_options::value(), "thread pool size (dynamic)") ("proxy-prior-netmask", program_options::value(), "proxy prior netmask") ("max-total-thread-queue", program_options::value(), "max thread queue length (dynamic)") - ("time-watcher-enabled", program_options::value(), "time watcher enabled") - ("time-watcher-polling-interval-msec", program_options::value(), "time watcher polling interval (msec)") - ("storage-access-watch-threshold-warn-msec", program_options::value(), "threshold to log error when a thread accessing storage long time (msec)") - ("storage-access-watch-threshold-ping-ng-msec", program_options::value(), "threshold to return ping ng when a thread accessing storage long time (msec)"); + ("time-watcher-enabled", program_options::value(), "time watcher enabled") + ("time-watcher-polling-interval-msec", program_options::value(), "time watcher polling interval (msec)") + ("storage-access-watch-threshold-warn-msec", program_options::value(), "threshold to log error when a thread accessing storage long time (msec)") + ("storage-access-watch-threshold-ping-ng-msec", program_options::value(), "threshold to return ping ng when a thread accessing storage long time (msec)") + ("cluster-replication", "enable cluster replication") + ("cluster-replication-server-name", program_options::value(), "destination server name to replicate over cluster (dynamic)") + ("cluster-replication-server-port", program_options::value(), "destination server port to replicate over cluster (dynamic)") + ("cluster-replication-concurrency", program_options::value(), "concurrency to replicate over cluster") + ("cluster-replication-sync", "type of the replication over cluster"); return 0; } diff --git a/src/flared/ini_option.h b/src/flared/ini_option.h index c2dafea2..8d98d1fc 100644 --- a/src/flared/ini_option.h +++ b/src/flared/ini_option.h @@ -62,7 +62,7 @@ class ini_option : public ini { bool _storage_large; int _storage_lmemb; int _storage_nmemb; - int32_t _storage_dfunit; + int32_t _storage_dfunit; string _storage_type; int _thread_pool_size; uint32_t _proxy_prior_netmask; @@ -71,6 +71,11 @@ class ini_option : public ini { uint32_t _time_watcher_polling_interval_msec; uint32_t _storage_access_watch_threshold_warn_msec; uint32_t _storage_access_watch_threshold_ping_ng_msec; + bool _cluster_replication; + string _cluster_replication_server_name; + int _cluster_replication_server_port; + int _cluster_replication_concurrency; + bool _cluster_replication_sync; public: static const int default_back_log = 30; static const int default_index_server_port = 12120; @@ -98,6 +103,7 @@ class ini_option : public ini { static const uint32_t default_proxy_prior_netmask = 0x00; static const uint32_t default_max_total_thread_queue = 0; // unlimited static const uint32_t default_time_watcher_polling_interval_msec = 0; // disabled + static const uint32_t default_cluster_replication_concurrency = 1; ini_option(); virtual ~ini_option(); @@ -156,6 +162,11 @@ class ini_option : public ini { uint32_t get_time_watcher_polling_interval_msec() { return this->_time_watcher_polling_interval_msec; }; uint32_t get_storage_access_watch_threshold_warn_msec() { return this->_storage_access_watch_threshold_warn_msec; }; uint32_t get_storage_access_watch_threshold_ping_ng() { return this->_storage_access_watch_threshold_ping_ng_msec; }; + bool is_cluster_replication() { return this->_cluster_replication; } + string get_cluster_replication_server_name() { return this->_cluster_replication_server_name; }; + int get_cluster_replication_server_port() { return this->_cluster_replication_server_port; } + int get_cluster_replication_concurrency() { return this->_cluster_replication_concurrency; }; + bool get_cluster_replication_sync() { return this->_cluster_replication_sync; } private: int _setup_cli_option(program_options::options_description& option); diff --git a/src/flared/show_node.cc b/src/flared/show_node.cc index 632f9cf3..12f0c82b 100644 --- a/src/flared/show_node.cc +++ b/src/flared/show_node.cc @@ -55,6 +55,11 @@ vector show_node::lines() { l.PUSH_BACK_STRING_WITH_STREAM("thread_pool_size: " << ini_option_object().get_thread_pool_size()); l.PUSH_BACK_STRING_WITH_STREAM("proxy_prior_netmask: " << ini_option_object().get_proxy_prior_netmask()); l.PUSH_BACK_STRING_WITH_STREAM("max_total_thread_queue: " << ini_option_object().get_max_total_thread_queue()); + l.PUSH_BACK_STRING_WITH_STREAM("cluster_replication: " << ini_option_object().is_cluster_replication()); + l.PUSH_BACK_STRING_WITH_STREAM("cluster_replication_server_name: " << ini_option_object().get_cluster_replication_server_name()); + l.PUSH_BACK_STRING_WITH_STREAM("cluster_replication_server_port: " << ini_option_object().get_cluster_replication_server_port()); + l.PUSH_BACK_STRING_WITH_STREAM("cluster_replication_concurrency: " << ini_option_object().get_cluster_replication_concurrency()); + l.PUSH_BACK_STRING_WITH_STREAM("cluster_replication_sync: " << ini_option_object().get_cluster_replication_sync()); return l; } diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index 620dc7dd..b71d5099 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -19,9 +19,13 @@ libflare_la_SOURCES = \ binary_response_header.h \ client.h client.cc \ cluster.h cluster.cc \ + cluster_replication.h cluster_replication.cc \ + cluster_replication_listener.h \ connection.h \ connection_tcp.h connection_tcp.cc \ + handler_cluster_replication.h handler_cluster_replication.cc \ handler_controller.h handler_controller.cc \ + handler_dump_replication.h handler_dump_replication.cc \ handler_monitor.h handler_monitor.cc \ handler_proxy.h handler_proxy.cc \ handler_reconstruction.h handler_reconstruction.cc \ @@ -70,6 +74,7 @@ libflare_la_SOURCES = \ op_version.h op_version.cc \ op_show.h op_show.cc \ op_shutdown.h op_shutdown.cc \ + queue_forward_query.h queue_forward_query.cc \ queue_node_state.h queue_node_state.cc \ queue_node_sync.h queue_node_sync.cc \ queue_proxy_read.h queue_proxy_read.cc \ @@ -96,7 +101,8 @@ libflare_la_SOURCES = \ time_watcher_target_info.h \ coordinator.h coordinator.cc \ coordinator_factory.h coordinator_factory.cc \ - file_coordinator.h file_coordinator.cc + file_coordinator.h file_coordinator.cc \ + proxy_event_listener.h if ENABLE_ZOOKEEPER libflare_la_SOURCES += zookeeper_lock.h zookeeper_lock.cc zookeeper_coordinator.h zookeeper_coordinator.cc endif diff --git a/src/lib/cluster.cc b/src/lib/cluster.cc index a8f60361..28af1359 100644 --- a/src/lib/cluster.cc +++ b/src/lib/cluster.cc @@ -86,6 +86,9 @@ cluster::~cluster() { delete this->_key_resolver; this->_key_resolver = NULL; + + this->_proxy_event_listeners.clear(); + this->_fixed_proxy_event_listeners.clear(); } // }}} @@ -299,6 +302,13 @@ int cluster::startup_node(const vector& index_servers, uint32_t pr return -1; } + vector listeners; + for (list::iterator it = this->_proxy_event_listeners.begin(); + it != this->_proxy_event_listeners.end(); it++) { + listeners.push_back(*it); + } + this->_fixed_proxy_event_listeners = listeners; + return 0; } @@ -1254,6 +1264,18 @@ int cluster::shutdown_node() { return 0; } +/** + * [node] add proxy listener + * # Do not add the listener after the cluster is started up. + * # You must add all listeners before cluster::startup_node is called. + */ +int cluster::add_proxy_event_listener(shared_proxy_event_listener listener) { + if (find(this->_proxy_event_listeners.begin(), this->_proxy_event_listeners.end(), listener) == this->_proxy_event_listeners.end()) { + this->_proxy_event_listeners.push_back(listener); + } + return 0; +} + /** * [node] pre proxy for reading ops (get, gets) * @@ -1351,6 +1373,11 @@ cluster::proxy_request cluster::pre_proxy_write(op_proxy_write* op, shared_queue * [node] post proxy for writing ops */ cluster::proxy_request cluster::post_proxy_write(op_proxy_write* op, bool sync) { + for (vector::iterator it = this->_fixed_proxy_event_listeners.begin(); + it != this->_fixed_proxy_event_listeners.end(); it++) { + (*it)->on_post_proxy_write(op); + } + storage::entry& e = op->get_entry(); partition p, p_prepare; @@ -1414,6 +1441,13 @@ cluster::proxy_request cluster::post_proxy_write(op_proxy_write* op, bool sync) return proxy_request_complete; } + +int cluster::get_node_partition_map_size() { + pthread_rwlock_rdlock(&this->_mutex_node_partition_map); + int partition_size = this->_node_partition_map.size(); + pthread_rwlock_unlock(&this->_mutex_node_partition_map); + return partition_size; +} // }}} // {{{ protected methods diff --git a/src/lib/cluster.h b/src/lib/cluster.h index 4e6ccfad..ce58768a 100644 --- a/src/lib/cluster.h +++ b/src/lib/cluster.h @@ -31,12 +31,15 @@ #include "thread_pool.h" #include "key_resolver.h" #include "coordinator.h" +#include "proxy_event_listener.h" using namespace std; namespace gree { namespace flare { +typedef boost::shared_ptr shared_proxy_event_listener; + typedef class op_proxy_write op_proxy_write; typedef class op_proxy_read op_proxy_read; @@ -189,6 +192,9 @@ class cluster { uint32_t _proxy_prior_netmask; uint32_t _max_total_thread_queue; + list _proxy_event_listeners; + vector _fixed_proxy_event_listeners; + public: cluster(thread_pool* tp, string server_name, int server_port); virtual ~cluster(); @@ -214,6 +220,7 @@ class cluster { int shutdown_node(); int request_down_node(string node_server_name, int node_server_port); int request_up_node(string node_server_name, int node_server_port); + int add_proxy_event_listener(shared_proxy_event_listener listener); proxy_request pre_proxy_read(op_proxy_read* op, storage::entry& e, void* parameter, shared_queue_proxy_read& q); proxy_request pre_proxy_write(op_proxy_write* op, shared_queue_proxy_write& q, uint64_t generic_value = 0); proxy_request post_proxy_write(op_proxy_write* op, bool sync = false); @@ -241,6 +248,7 @@ class cluster { int set_monitor_read_timeout(int monitor_read_timeout); int get_partition_size() { return this->_partition_size; }; int set_partition_size(int partition_size) { this->_partition_size = partition_size; return 0; }; + int get_node_partition_map_size(); int set_proxy_concurrency(int proxy_concurrency) { this->_proxy_concurrency = proxy_concurrency; return 0; }; int get_reconstruction_interval() { return this->_reconstruction_interval; }; int set_reconstruction_interval(int reconstruction_interval) { this->_reconstruction_interval = reconstruction_interval; return 0; }; diff --git a/src/lib/cluster_replication.cc b/src/lib/cluster_replication.cc new file mode 100644 index 00000000..cae30032 --- /dev/null +++ b/src/lib/cluster_replication.cc @@ -0,0 +1,213 @@ +/** + * cluster_replication.cc + * + * implementation of gree::flare::cluster_replication + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#include "cluster_replication.h" +#include "handler_cluster_replication.h" +#include "handler_dump_replication.h" +#include "logger.h" +#include "queue_forward_query.h" + +namespace gree { +namespace flare { + +// {{{ global functions +// }}} + +// {{{ ctor/dtor +/** + * ctor for cluster_replication + */ +cluster_replication::cluster_replication(thread_pool* tp): + _thread_pool(tp), + _server_name(""), + _server_port(0), + _concurrency(0), + _started(false), + _sync (false) { + pthread_mutex_init(&this->_mutex_started, NULL); +} + +/** + * dtor for cluster_replicationplication + */ +cluster_replication::~cluster_replication() { + this->stop(); +} +// }}} + +// {{{ operator overloads +// }}} + +// {{{ public methods +/** + * start cluster replication. + */ +int cluster_replication::start(string server_name, int server_port, int concurrency, storage* st, cluster* cl) { + log_notice("start cluster replication (dest=%s:%d, concurrency=%d)", server_name.c_str(), server_port, concurrency); + + if (this->_started) { + log_debug("cluster replication is already started", 0); + return -1; + } + + cluster::node n = cl->get_node(cl->get_server_name(), cl->get_server_port()); + if (n.node_role == cluster::role_proxy) { + log_warning("unavailable to start cluster replication becuase this node is proxy node", 0); + return -1; + } + + if (concurrency <= 0) { + log_warning("concurrency is not valid, concurrency=%d", concurrency); + return -1; + } + + for (int i = 0; i < concurrency; i++) { + shared_thread t = this->_thread_pool->get(thread_pool::thread_type_cluster_replication); + handler_cluster_replication* h = new handler_cluster_replication(t, server_name, server_port); + t->trigger(h); + } + pthread_mutex_lock(&this->_mutex_started); + this->_started = true; + pthread_mutex_unlock(&this->_mutex_started); + + this->_server_name = server_name; + this->_server_port = server_port; + this->_concurrency = concurrency; + + this->_start_dump_replication(server_name, server_port, st, cl); + + return 0; +} + +/** + * stop cluster replication. + */ +int cluster_replication::stop() { + log_notice("stop cluster replication", 0); + + pthread_mutex_lock(&this->_mutex_started); + this->_started = false; + pthread_mutex_unlock(&this->_mutex_started); + + this->_server_name = ""; + this->_server_port = 0; + this->_concurrency = 0; + + thread_pool::local_map m = this->_thread_pool->get_active(thread_pool::thread_type_cluster_replication); + for (thread_pool::local_map::iterator it = m.begin(); it != m.end(); it++) { + log_debug("killing cluster replication thread", 0); + it->second->set_state("killed"); + it->second->shutdown(true, false); + } + + this->_stop_dump_replication(); + + return 0; +} + +/** + * implementation of on_pre_proxy_read event handling. + */ +int cluster_replication::on_pre_proxy_read(op_proxy_read* op) { + // nothing to do + return 0; +} + +/** + * implementation of on_pre_proxy_write event handling. + */ +int cluster_replication::on_pre_proxy_write(op_proxy_write* op) { + // nothing to do + return 0; +} + +/** + * implementation of on_post_proxy_write event handling. + */ +int cluster_replication::on_post_proxy_write(op_proxy_write* op) { + pthread_mutex_lock(&this->_mutex_started); + if (!this->_started) { + pthread_mutex_unlock(&this->_mutex_started); + return -1; + } + pthread_mutex_unlock(&this->_mutex_started); + + storage::entry& e = op->get_entry(); + shared_thread_queue q(new queue_forward_query(e, op->get_ident())); + + thread_pool::local_map m = this->_thread_pool->get_active(thread_pool::thread_type_cluster_replication); + if (m.size() == 0) { + log_notice("no available thread to proxy", 0); + return -1; + } + + shared_thread t; + int key_hash_value = e.get_key_hash_value(storage::hash_algorithm_murmur); + int index = key_hash_value % m.size(); + int i = 0; + for (thread_pool::local_map::iterator it = m.begin(); it != m.end(); it++) { + if (i == index) { + t = it->second; + break; + } + i++; + } + + if (this->_sync) { + q->sync_ref(); + } + if (t->enqueue(q) < 0) { + log_warning("enqueue failed (perhaps thread is now exiting?)", 0); + if (this->_sync) { + q->sync_unref(); + } + return -1; + } + if (this->_sync) { + q->sync(); + } + + return 0; +} +// }}} + +// {{{ protected methods +// }}} + +// {{{ private methods +/** + * start to replicate the dump of storage. + */ +int cluster_replication::_start_dump_replication(string server_name, int server_port, storage* st, cluster* cl) { + log_notice("start to replicate the dump of storage", 0); + shared_thread t = this->_thread_pool->get(thread_pool::thread_type_dump_replication); + handler_dump_replication* h = new handler_dump_replication(t, cl, st, server_name, server_port); + t->trigger(h); + return 0; +} + +/** + * stop to replicate the dump of storage. + */ +int cluster_replication::_stop_dump_replication() { + log_notice("stop replication of the dump of storage", 0); + thread_pool::local_map m = this->_thread_pool->get_active(thread_pool::thread_type_dump_replication); + for (thread_pool::local_map::iterator it = m.begin(); it != m.end(); it++) { + log_debug("killing dump replication thread", 0); + it->second->set_state("killed"); + it->second->shutdown(true, false); + } + return 0; +} +// }}} + +} // namespace flare +} // namespace gree + +// vim: foldmethod=marker tabstop=2 shiftwidth=2 autoindent diff --git a/src/lib/cluster_replication.h b/src/lib/cluster_replication.h new file mode 100644 index 00000000..a118bf0d --- /dev/null +++ b/src/lib/cluster_replication.h @@ -0,0 +1,63 @@ +/** + * cluster_replication.h + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#ifndef CLUSTER_REPLICATION_H +#define CLUSTER_REPLICATION_H + +#include + +#include + +#include "cluster.h" +#include "proxy_event_listener.h" +#include "storage.h" +#include "thread_pool.h" + +namespace gree { +namespace flare { + +/** + * class to handle replication over cluster + **/ +class cluster_replication : public proxy_event_listener { +private: + thread_pool* _thread_pool; + string _server_name; + int _server_port; + int _concurrency; + bool _started; + bool _sync; + pthread_mutex_t _mutex_started; + +public: + cluster_replication(thread_pool* tp); + virtual ~cluster_replication(); + + bool is_started() { return this->_started; }; + int start(string server_name, int server_port, int concurrency, storage* st, cluster* cl); + int stop(); + + int set_sync(bool sync) { this->_sync = sync; return 0; }; + bool get_sync() { return this->_sync; }; + string get_server_name() { return this->_server_name; }; + int get_server_port() { return this->_server_port; }; + int get_concurrency() { return this->_concurrency; }; + + virtual int on_pre_proxy_read(op_proxy_read* op); + virtual int on_pre_proxy_write(op_proxy_write* op); + virtual int on_post_proxy_write(op_proxy_write* op); + +private: + int _start_dump_replication(string server_name, int server_port, storage* st, cluster* cl); + int _stop_dump_replication(); +}; + +} // namespace flare +} // namespace gree + +#endif // CLUSTER_RPLICATION +// vim: foldmethod=marker tabstop=2 shiftwidth=2 autoindent diff --git a/src/lib/handler_cluster_replication.cc b/src/lib/handler_cluster_replication.cc new file mode 100644 index 00000000..27024a09 --- /dev/null +++ b/src/lib/handler_cluster_replication.cc @@ -0,0 +1,106 @@ +/** + * handler_cluster_replication.cc + * + * implementation of gree::flare::handler_cluster_replication + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#include "handler_cluster_replication.h" +#include "connection_tcp.h" +#include "queue_forward_query.h" + +namespace gree { +namespace flare { + +// {{{ global functions +// }}} + +// {{{ ctor/dtor +/** + * ctor for handler_cluster_replication + */ +handler_cluster_replication::handler_cluster_replication(shared_thread t, string server_name, int server_port): + thread_handler(t), + _replication_server_name(server_name), + _replication_server_port(server_port) { +} + +/** + * dtor for handler_cluster_replication + */ +handler_cluster_replication::~handler_cluster_replication() { +} +// }}} + +// {{{ operator overloads +// }}} + +// {{{ public methods +int handler_cluster_replication::run() { + this->_thread->set_peer(this->_replication_server_name, this->_replication_server_port); + this->_thread->set_state("connect"); + + shared_connection c(new connection_tcp( + this->_replication_server_name, this->_replication_server_port)); + this->_connection = c; + if (c->open() < 0) { + log_err("failed to connect to cluster replication destination server (name=%s, port=%d)", + this->_replication_server_name.c_str(), this->_replication_server_port); + return -1; + } + + for (;;) { + this->_thread->set_state("wait"); + this->_thread->set_op(""); + + if (this->_thread->is_shutdown_request()) { + log_info("thread shutdown request -> breaking loop", 0); + this->_thread->set_state("shutdown"); + break; + } + + // dequeue (tentative) + shared_thread_queue q; + if (this->_thread->dequeue(q, 0) < 0) { + log_info("dequeued but no queue is available (something is inconsistent?)", 0); + continue; + } + if (this->_thread->is_shutdown_request()) { + log_info("thread shutdown request -> breaking loop", 0); + this->_thread->set_state("shutdown"); + q->sync_unref(); + break; + } + + this->_process_queue(q); + q->sync_unref(); + } + + return 0; +} +// }}} + +// {{{ protected methods +int handler_cluster_replication::_process_queue(shared_thread_queue q) { + this->_thread->set_state("execute"); + this->_thread->set_op(q->get_ident()); + + shared_queue_forward_query r = boost::dynamic_pointer_cast(q); + if (r.get()) { + return r->run(this->_connection); + } else { + log_err("invalid type of queue is enqueued", 0); + return -1; + } +} +// }}} + +// {{{ private methods +// }}} + +} // namespace flare +} // namespace gree + +// vim: foldmethod=marker tabstop=2 shiftwidth=2 autoindent diff --git a/src/lib/handler_cluster_replication.h b/src/lib/handler_cluster_replication.h new file mode 100644 index 00000000..0c6f88e5 --- /dev/null +++ b/src/lib/handler_cluster_replication.h @@ -0,0 +1,48 @@ +/** + * handler_cluster_replication.h + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#ifndef HANDLER_CLUSTER_REPLICATION_H +#define HANDLER_CLUSTER_REPLICATION_H + +#include + +#include + +#include "connection.h" +#include "cluster.h" +#include "thread_handler.h" +#include "thread_queue.h" + +using namespace std; + +namespace gree { +namespace flare { + +/** + * cluster replication thread handler class + */ +class handler_cluster_replication : public thread_handler { +protected: + string _replication_server_name; + int _replication_server_port; + shared_connection _connection; + +public: + handler_cluster_replication(shared_thread t, string server_name, int server_port); + virtual ~handler_cluster_replication(); + + virtual int run(); + +protected: + int _process_queue(shared_thread_queue q); +}; + +} // namespace flare +} // namespace gree + +#endif // HANDLER_CLUSTER_REPLICATION_H +// vim: foldmethod=marker tabstop=2 shiftwidth=2 autoindent diff --git a/src/lib/handler_dump_replication.cc b/src/lib/handler_dump_replication.cc new file mode 100644 index 00000000..7866e2c6 --- /dev/null +++ b/src/lib/handler_dump_replication.cc @@ -0,0 +1,183 @@ +/** + * handler_dump_replication.cc + * + * implementation of gree::flare::handler_dump_replication + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#include "handler_dump_replication.h" +#include "connection_tcp.h" +#include "op_set.h" + +namespace gree { +namespace flare { + +// {{{ global functions +// }}} + +// {{{ ctor/dtor +/** + * ctor for handler_dump_replication + */ +handler_dump_replication::handler_dump_replication(shared_thread t, cluster* cl, storage* st, string server_name, int server_port): + thread_handler(t), + _cluster(cl), + _storage(st), + _replication_server_name(server_name), + _replication_server_port(server_port), + _total_written(0) { + this->_prior_tv.tv_sec = 0; + this->_prior_tv.tv_usec = 0; +} + +/** + * dtor for handler_dump_replication + */ +handler_dump_replication::~handler_dump_replication() { +} +// }}} + +// {{{ operator overloads +// }}} + +// {{{ public methods +int handler_dump_replication::run() { + this->_thread->set_peer(this->_replication_server_name, this->_replication_server_port); + this->_thread->set_state("connect"); + + shared_connection c(new connection_tcp( + this->_replication_server_name, this->_replication_server_port)); + this->_connection = c; + if (c->open() < 0) { + log_err("failed to connect to cluster replication server (name=%s, port=%d)", + this->_replication_server_name.c_str(), this->_replication_server_port); + return -1; + } + + this->_thread->set_state("execute"); + this->_thread->set_op("dump"); + + this->_prior_tv.tv_sec = 0; + this->_prior_tv.tv_usec = 0; + + if (this->_storage->iter_begin() < 0) { + log_err("database busy", 0); + return -1; + } + + key_resolver* kr = this->_cluster->get_key_resolver(); + cluster::node n = this->_cluster->get_node(this->_cluster->get_server_name(), this->_cluster->get_server_port()); + int partition = n.node_partition; + int partition_size = this->_cluster->get_node_partition_map_size(); + int wait = this->_cluster->get_reconstruction_interval(); + int bwlimit = this->_cluster->get_reconstruction_bwlimit(); + + log_notice("starting dump replication (dest=%s:%d, partition=%d, partition_size=%d, interval=%d, bwlimit=%d)", + this->_replication_server_name.c_str(), this->_replication_server_port, partition, partition_size, wait, bwlimit); + storage::entry e; + storage::iteration i; + while ((i = this->_storage->iter_next(e.key)) == storage::iteration_continue + && this->_thread && !this->_thread->is_shutdown_request()) { + if (partition >= 0) { + partition_size = this->_cluster->get_node_partition_map_size(); + int key_hash_value = e.get_key_hash_value(this->_cluster->get_key_hash_algorithm()); + int p = kr->resolve(key_hash_value, partition_size); + if (p != partition) { + log_debug("skipping entry (key=%s, key_hash_value=%d, mod=%d, partition=%d, partition_size=%d)", + e.key.c_str(), key_hash_value, p, partition, partition_size); + continue; + } + } + + storage::result r; + if (this->_storage->get(e, r) < 0) { + if (r == storage::result_not_found) { + log_info("skipping entry [key not found (perhaps expired)] (key=%s)", e.key.c_str()); + } else { + log_err("skipping entry [get() error] (key=%s)", e.key.c_str()); + } + continue; + } + + // replicate + op_set* p = new op_set(this->_connection, NULL, NULL); + if (p->run_client(e) < 0) { + delete p; + break; + } + + delete p; + + // wait + long elapsed_usec = 0; + if (bwlimit > 0) { + elapsed_usec = this->_sleep_for_bwlimit(e.size, bwlimit); + } + if (wait > 0 && wait-elapsed_usec > 0) { + log_debug("wait for %d usec", wait); + usleep(wait-elapsed_usec); + } + } + + this->_storage->iter_end(); + if (!this->_thread->is_shutdown_request()) { + log_notice("dump replication completed (dest=%s:%d, partition=%d, partition_size=%d, interval=%d, bwlimit=%d)", + this->_replication_server_name.c_str(), this->_replication_server_port, partition, partition_size, wait, bwlimit); + } else { + this->_thread->set_state("shutdown"); + log_warning("dump replication interruptted (dest=%s:%d, partition=%d, partition_size=%d, interval=%d, bwlimit=%d)", + this->_replication_server_name.c_str(), this->_replication_server_port, partition, partition_size, wait, bwlimit); + } + return 0; +} +// }}} + +// {{{ protected methods +// }}} + +// {{{ private methods +// code from rsync 2.6.9 +long handler_dump_replication::_sleep_for_bwlimit(int bytes_written, int bwlimit) { + if (bytes_written == 0) { + return 0; + } + + this->_total_written += bytes_written; + + static const long one_sec = 1000000L; // of microseconds in a second. + + long elapsed_usec; + struct timeval start_tv; + gettimeofday(&start_tv, NULL); + if (this->_prior_tv.tv_sec) { + elapsed_usec = (start_tv.tv_sec - this->_prior_tv.tv_sec) * one_sec + + (start_tv.tv_usec - this->_prior_tv.tv_usec); + this->_total_written -= elapsed_usec * bwlimit / (one_sec/1024); + if (this->_total_written < 0) { + this->_total_written = 0; + } + } + + long sleep_usec = this->_total_written * (one_sec/1024) / bwlimit; + if (sleep_usec < one_sec / 10) { + this->_prior_tv = start_tv; + return 0; + } + + usleep(sleep_usec); + + gettimeofday(&this->_prior_tv, NULL); + elapsed_usec = (this->_prior_tv.tv_sec - start_tv.tv_sec) * one_sec + + (this->_prior_tv.tv_usec - start_tv.tv_usec); + this->_total_written = (sleep_usec - elapsed_usec) * bwlimit / (one_sec/1024); + + return elapsed_usec; +} +// }}} + +} // namespace flare +} // namespace gree + +// vim: foldmethod=marker tabstop=2 shiftwidth=2 autoindent diff --git a/src/lib/handler_dump_replication.h b/src/lib/handler_dump_replication.h new file mode 100644 index 00000000..ab832605 --- /dev/null +++ b/src/lib/handler_dump_replication.h @@ -0,0 +1,52 @@ +/** + * handler_dump_replication.h + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#ifndef HANDLER_DUMP_REPLICATION_H +#define HANDLER_DUMP_REPLICATION_H + +#include + +#include "connection.h" +#include "cluster.h" +#include "storage.h" +#include "thread_handler.h" + +using namespace std; + +namespace gree { +namespace flare { + +/** + * thread handler class to replicate the dumped storage data + **/ +class handler_dump_replication : public thread_handler { +protected: + cluster* _cluster; + storage* _storage; + const string _replication_server_name; + const int _replication_server_port; + int _total_written; + shared_connection _connection; + struct timeval _prior_tv; + +public: + handler_dump_replication(shared_thread t, cluster* cl, storage* st, string server_name, int server_port); + virtual ~handler_dump_replication(); + + virtual int run(); + +protected: + +private: + long _sleep_for_bwlimit(int bytes_written, int bwlimit); +}; + +} // namespace flare +} // namespace gree + +#endif // HANDLER_DUMP_REPLICATION_H +// vim: foldmethod=marker tabstop=2 shiftwidth=2 autoindent diff --git a/src/lib/proxy_event_listener.h b/src/lib/proxy_event_listener.h new file mode 100644 index 00000000..34014041 --- /dev/null +++ b/src/lib/proxy_event_listener.h @@ -0,0 +1,31 @@ +/** + * proxy_event_listener.h + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#ifndef PROXY_EVENT_LISTENER_H +#define PROXY_EVENT_LISTENER_H + +namespace gree { +namespace flare { + +typedef class op_proxy_read op_proxy_read; +typedef class op_proxy_write op_proxy_write; + +class proxy_event_listener { +public: + proxy_event_listener() { } + virtual ~proxy_event_listener() { } + + virtual int on_pre_proxy_read(op_proxy_read* op) = 0; + virtual int on_pre_proxy_write(op_proxy_write* op) = 0; + virtual int on_post_proxy_write(op_proxy_write* op) = 0; +}; + +} // namespace flare +} // namespace gree + +#endif // PROXY_EVENT_LISTENER_H +// vim: foldmethod=marker tabstop=2 shiftwidth=2 autoindent diff --git a/src/lib/queue_forward_query.cc b/src/lib/queue_forward_query.cc new file mode 100644 index 00000000..5ab697a9 --- /dev/null +++ b/src/lib/queue_forward_query.cc @@ -0,0 +1,118 @@ +/** + * queue_forward_query.cc + * + * implementation of gree::flare::queue_forward_query + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#include "queue_forward_query.h" +#include "connection_tcp.h" +#include "op_set.h" +#include "op_delete.h" +#include "op_proxy_write.h" +#include "op_touch.h" + +namespace gree { +namespace flare { + +// {{{ ctor/dtor +/** + * ctor for queue_forward_query + */ +queue_forward_query::queue_forward_query(storage::entry entry, string op_ident): + thread_queue(op_ident), + _entry(entry), + _op_ident(op_ident), + _result(op::result_none), + _result_message("") { +} + +/** + * dtor for queue_forward_query + */ +queue_forward_query::~queue_forward_query() { +} +// }}} + +// {{{ operator overloads +// }}} + +// {{{ public methods +int queue_forward_query::run(shared_connection c) { +#ifdef DEBUG + if (const connection_tcp* ctp = dynamic_cast(c.get())) { + log_debug("forwarding query (host=%s, port=%d, op=%s, key=%s, version=%u)", + ctp->get_host().c_str(), ctp->get_port(), this->_op_ident.c_str(), + this->_entry.key.c_str(), this->_entry.version); + } +#endif + + op_proxy_write* p = this->_get_op(this->_op_ident, c); + if (p == NULL) { + return -1; + } + + int retry = queue_forward_query::max_retry; + while (retry > 0) { + if (p->run_client(this->_entry) >= 0) { + break; + } + if (c->is_available() == false) { +#ifdef DEBUG + if (const connection_tcp* ctp = dynamic_cast(c.get())) { + log_debug("reconnecting (host=%s, port=%d)", ctp->get_host().c_str(), ctp->get_port()); + } +#endif + c->open(); + } + retry--; + } + if (retry <= 0) { + log_err("failed forwarding query due to unavailable connection (key=%s, version=%u)", + this->_entry.key.c_str(), this->_entry.version); + delete p; + return -1; + } + + this->_success = true; + this->_result = p->get_result(); + this->_result_message = p->get_result_message(); + delete p; + + log_debug("result: %s:%d", p->get_ident().c_str(), this->_result); + + return 0; +} +// }}} + +// {{{ protected methods +// }}} + +// {{{ private methods +op_proxy_write* queue_forward_query::_get_op(string op_ident, shared_connection c) { + if (op_ident == "set" + || op_ident == "add" + || op_ident == "replace" + || op_ident == "cas" + || op_ident == "append" + || op_ident == "prepend" + || op_ident == "incr" + || op_ident == "decr" + || op_ident == "touch" + || op_ident == "gat") { + return new op_set(c, NULL, NULL); + } else if (op_ident == "delete") { + return new op_delete(c, NULL, NULL); + } + log_warning("unknown op (ident=%s)", op_ident.c_str()); + + return NULL; +} +// }}} + +} // namespace flare +} // namespace gree + +// vim: foldmethod=marker tabstop=2 shiftwidth=2 autoindent diff --git a/src/lib/queue_forward_query.h b/src/lib/queue_forward_query.h new file mode 100644 index 00000000..a9946417 --- /dev/null +++ b/src/lib/queue_forward_query.h @@ -0,0 +1,58 @@ +/** + * queue_forward_query.h + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#ifndef QUEUE_FORWARD_QUERY_H +#define QUEUE_FORWARD_QUERY_H + +#include + +#include + +#include "storage.h" +#include "thread_queue.h" +#include "op.h" +#include "op_proxy_write.h" + +using namespace std; + +namespace gree { +namespace flare { + +typedef class queue_forward_query queue_forward_query; +typedef boost::shared_ptr shared_queue_forward_query; + +/** + * forwarding query queue class + */ +class queue_forward_query : public thread_queue { +protected: + storage::entry _entry; + string _op_ident; + op::result _result; + string _result_message; + +public: + static const int max_retry = 4; + + queue_forward_query(storage::entry entry, string op_indent); + virtual ~queue_forward_query(); + + virtual int run(shared_connection c); + op::result get_result() { return this->_result; }; + string get_result_message() { return this->_result_message; }; + string get_op_ident() { return this->_op_ident; }; + storage::entry& get_entry() { return this->_entry; }; + +protected: + op_proxy_write* _get_op(string op_ident, shared_connection c); +}; + +} // namespace flare +} // namespace gree + +#endif // QUEUE_FORWARD_QUERY_H +// vim: foldmethod=marker tabstop=2 shiftwidth=2 autoindent diff --git a/src/lib/storage_listener.h b/src/lib/storage_listener.h index 8ca364b6..d1ec6e76 100644 --- a/src/lib/storage_listener.h +++ b/src/lib/storage_listener.h @@ -6,7 +6,7 @@ * $Id$ */ #ifndef STORAGE_LISTENER_H -#define STORAGE_LISTENER_H +#define STORAGE_LISTENER_H namespace gree { namespace flare { diff --git a/src/lib/thread_pool.h b/src/lib/thread_pool.h index ba0cfaf1..a0ad9150 100644 --- a/src/lib/thread_pool.h +++ b/src/lib/thread_pool.h @@ -30,6 +30,8 @@ class thread_pool { thread_type_alarm, thread_type_reconstruction, thread_type_controller, + thread_type_cluster_replication, + thread_type_dump_replication, #ifdef ENABLE_MYSQL_REPLICATION thread_type_mysql_replication, #endif diff --git a/test/lib/Makefile.am b/test/lib/Makefile.am index 67c2fef4..380a67a5 100644 --- a/test/lib/Makefile.am +++ b/test/lib/Makefile.am @@ -2,9 +2,12 @@ if WITH_CUTTER noinst_LTLIBRARIES = \ test_binary_header.la \ test_cluster.la \ + test_cluster_replication.la \ test_connection_tcp.la \ test_connection_iostream.la \ test_handler_proxy.la \ + test_handler_cluster_replication.la \ + test_handler_dump_replication.la \ test_storage.la \ test_storage_entry.la \ test_storage_tcb.la \ @@ -44,6 +47,7 @@ noinst_LTLIBRARIES = \ test_op_touch.la \ test_op_verbosity.la \ test_op_version.la \ + test_queue_forward_query.la \ test_thread_pool.la \ test_time_util.la \ test_util.la \ @@ -76,8 +80,11 @@ LIBS = \ test_binary_header_la_SOURCES = test_binary_header.cc connection_iostream.cc test_connection_tcp_la_SOURCES = test_connection_tcp.cc common_connection_tests.cc test_cluster_la_SOURCES = test_cluster.cc +test_cluster_replication_la_SOURCES = test_cluster_replication.cc connection_iostream.cc mock_cluster.cc mock_storage.cc test_connection_iostream_la_SOURCES = test_connection_iostream.cc common_connection_tests.cc connection_iostream.cc -test_handler_proxy_la_SOURCES = test_handler_proxy.cc mock_cluster.h +test_handler_proxy_la_SOURCES = test_handler_proxy.cc mock_cluster.cc +test_handler_cluster_replication_la_SOURCES = test_handler_cluster_replication.cc +test_handler_dump_replication_la_SOURCES = test_handler_dump_replication.cc mock_cluster.cc mock_storage.cc test_storage_la_SOURCES = test_storage.cc test_storage_entry_la_SOURCES = test_storage_entry.cc test_storage_tcb_la_SOURCES = test_storage_tcb.cc common_storage_tests.cc @@ -92,7 +99,7 @@ test_op_append_la_SOURCES = test_op_append.cc connection_iostream.cc test_op_cas_la_SOURCES = test_op_cas.cc connection_iostream.cc test_op_decr_la_SOURCES = test_op_decr.cc connection_iostream.cc test_op_delete_la_SOURCES = test_op_delete.cc connection_iostream.cc -test_op_dump_la_SOURCES = test_op_dump.cc connection_iostream.cc +test_op_dump_la_SOURCES = test_op_dump.cc connection_iostream.cc mock_storage.cc test_op_dump_key_la_SOURCES = test_op_dump_key.cc connection_iostream.cc test_op_error_la_SOURCES = test_op_error.cc connection_iostream.cc test_op_flush_all_la_SOURCES = test_op_flush_all.cc connection_iostream.cc @@ -120,6 +127,7 @@ test_op_stats_la_SOURCES = test_op_stats.cc connection_iostream.cc test_op_touch_la_SOURCES = test_op_touch.cc connection_iostream.cc test_op_verbosity_la_SOURCES = test_op_verbosity.cc connection_iostream.cc test_op_version_la_SOURCES = test_op_version.cc connection_iostream.cc +test_queue_forward_query_la_SOURCES = test_queue_forward_query.cc connection_iostream.cc test_thread_pool_la_SOURCES = test_thread_pool.cc test_time_util_la_SOURCES = test_time_util.cc test_util_la_SOURCES = test_util.cc diff --git a/test/lib/mock_cluster.cc b/test/lib/mock_cluster.cc new file mode 100644 index 00000000..ab86d596 --- /dev/null +++ b/test/lib/mock_cluster.cc @@ -0,0 +1,117 @@ +/** + * mock_cluster.cc + * + * implementation of gree::flare::mock_cluster + * + * @author Masanori Yoshimoto + * + */ +#include "mock_cluster.h" +#include "key_resolver_modular.h" + +#include + +namespace gree { +namespace flare { + +// {{{ global functions +// }}} + +// {{{ ctor/dtor +mock_cluster::mock_cluster(string server_name, int server_port): + cluster(NULL, server_name, server_port) { + this->_key_hash_algorithm = storage::hash_algorithm_simple; + this->_key_resolver = new key_resolver_modular(1024, 1, 4096); + this->_key_resolver->startup(); +} + +mock_cluster::~mock_cluster() { + this->clear_node_map(); + this->clear_node_partition_map(); +} +// }}} + +// {{{ operator overloads +// }}} + +// {{{ public methods +cluster::partition mock_cluster::set_partition(int partition, node master, node slave[], int slave_num) { + string node_key = this->to_node_key(master.node_server_name, master.node_server_port); + cluster::partition p; + p.master = this->_get_partition_node(master.node_server_name, master.node_server_port, master.node_balance); + if (slave != NULL) { + for (int i = 0; i < slave_num; i++) { + p.slave.push_back(this->_get_partition_node(slave[i].node_server_name, slave[i].node_server_port, slave[i].node_balance)); + } + } + this->_node_partition_map[partition] = p; + return p; +} + +cluster::node mock_cluster::set_node(string server_name, int server_port, role r, state s, int partition, int balance) { + string node_key = this->to_node_key(server_name, server_port); + node n; + n.node_server_name = server_name; + n.node_server_port = server_port; + n.node_role = r; + n.node_state = s; + n.node_partition = partition; + n.node_balance = balance; + n.node_thread_type = this->_thread_type; + this->_node_map[node_key] = n; + this->_thread_type++; + return n; +} + +void mock_cluster::clear_node_map() { + this->_node_map.clear(); +} + +void mock_cluster::clear_node_partition_map() { + for (node_partition_map::iterator it = this->_node_partition_map.begin(); + it != this->_node_partition_map.end(); it++) { + it->second.slave.clear(); + } + this->_node_partition_map.clear(); +} + +void mock_cluster::dump_node_map() { + log_notice("dump node_map", 0); + for (node_map::iterator it = this->_node_map.begin(); + it != this->_node_map.end(); it++) { + log_notice(" node_map[%s] %d %d %d %d", it->first.c_str(), it->second.node_role, + it->second.node_state, it->second.node_balance, it->second.node_partition); + } + return; +} + +void mock_cluster::dump_node_partition_map() { + log_notice("dump node_partition_map", 0); + for (node_partition_map::iterator it = this->_node_partition_map.begin(); + it != this->_node_partition_map.end(); it++) { + log_notice(" master: %s", it->second.master.node_key.c_str()); + vector slave = it->second.slave; + for (vector::iterator s_it = slave.begin(); + s_it != slave.end(); s_it++) { + log_notice(" slave: %s", s_it->node_key.c_str()); + } + } +} +// }}} + +// {{{ protected methods +// }}} + +// {{{ private methods +cluster::partition_node mock_cluster::_get_partition_node(string server_name, int server_port, int balance) { + partition_node pn; + pn.node_key = this->to_node_key(server_name, server_port); + pn.node_balance = balance; + return pn; +} +// }}} + +} // namespace flare +} // namespace gree + +// vim: foldmethod=marker tabstop=2 shiftwidth=2 noexpandtab autoindent diff --git a/test/lib/mock_cluster.h b/test/lib/mock_cluster.h index 48f156c5..86772581 100644 --- a/test/lib/mock_cluster.h +++ b/test/lib/mock_cluster.h @@ -7,6 +7,8 @@ #ifndef MOCK_CLUSTER_H #define MOCK_CLUSTER_H +#include + #include "cluster.h" #include "key_resolver_modular.h" @@ -20,40 +22,24 @@ struct mock_cluster : public cluster { using cluster::_node_partition_map; public: - mock_cluster(string server_name, int server_port): - cluster(NULL, server_name, server_port) { - this->_key_hash_algorithm = storage::hash_algorithm_simple; - this->_key_resolver = new key_resolver_modular(1024, 1, 4096); - }; - - ~mock_cluster() { - }; - - cluster::node set_node(string server_name, int server_port, cluster::role r, cluster::state s, int partition = 0, int balance = 0) { - string node_key = this->to_node_key(server_name, server_port); - if (this->_node_map.count(node_key) > 0) { - this->_node_map[node_key].node_role = r; - this->_node_map[node_key].node_state = s; - this->_node_map[node_key].node_partition = partition; - return this->_node_map[node_key]; - } else { - cluster::node n; - n.node_server_name = server_name; - n.node_server_port = server_port; - n.node_role = r; - n.node_state = s; - if (r == cluster::role_proxy) { - n.node_partition = -1; - } else { - n.node_partition = partition; - } - n.node_balance = balance; - n.node_thread_type = this->_thread_type; - this->_thread_type++; - this->_node_map[node_key] = n; - return n; - } - }; + mock_cluster(string server_name, int server_port); + virtual ~mock_cluster(); + + /* + * set partition to node_partition_map + */ + cluster::partition set_partition(int partition, node master, node slave[] = NULL, int slave_num = 0); + /* + * set node to node_map + */ + cluster::node set_node(string server_name, int server_port, role r, state s, int partition = 0, int balance = 0); + void clear_node_map(); + void clear_node_partition_map(); + void dump_node_map(); + void dump_node_partition_map(); + +private: + cluster::partition_node _get_partition_node(string server_name, int server_port, int balance); }; } // namespace flare diff --git a/test/lib/mock_op_proxy_write.h b/test/lib/mock_op_proxy_write.h new file mode 100644 index 00000000..004a21e3 --- /dev/null +++ b/test/lib/mock_op_proxy_write.h @@ -0,0 +1,59 @@ +/** + * mock_op_proxy_write.h + * + * @author Masnaori Yoshimoto + * + */ + +#ifndef MOCK_OP_PROXY_WRITE_H +#define MOCK_OP_PROXY_WRITE_H + +#include "op_proxy_write.h" +#include "storage.h" + +namespace gree { +namespace flare { + +class mock_op_proxy_write : public op_proxy_write { +public: + mock_op_proxy_write(shared_connection c, cluster* cl, storage* st): + op_proxy_write(c, "set", binary_header::opcode_set, cl, st) { + }; + virtual ~mock_op_proxy_write() {}; + + // helper functions + void set_entry(storage::entry& e) { this->_entry = e; }; + int parse() { + char* p; + if (this->_connection->readline(&p) < 0) { + return -1; + } + if (this->_entry.parse(p, this->get_ident() == "cas" ? storage::parse_type_cas : storage::parse_type_set) < 0) { + delete[] p; + return -1; + } + delete[] p; + + if (this->_connection->readsize(this->_entry.size + 2, &p) < 0) { + return -1; + } + shared_byte data(new uint8_t[this->_entry.size]); + memcpy(data.get(), p, this->_entry.size); + delete[] p; + this->_entry.data = data; + return 0; + }; + +protected: + virtual int _parse_text_server_parameters() { return 0; }; + virtual int _parse_binary_request(const binary_request_header&, const char* body) { return 0; }; + virtual int _run_server() { return 0; }; + virtual int _run_client() { return 0; }; + virtual int _parse_text_client_parameters(storage::entry& e) { return 0; }; +}; + +} // namespace flare +} // namespace gree + +#endif // MOCK_OP_PROXY_WRITE_H +// vim: foldmethod=marker tabstop=2 shiftwidth=2 autoindent diff --git a/test/lib/mock_storage.cc b/test/lib/mock_storage.cc new file mode 100644 index 00000000..dd81d99b --- /dev/null +++ b/test/lib/mock_storage.cc @@ -0,0 +1,150 @@ +/** + * mock_storage.cc + * + * implementation of gree::flare::mock_storage class + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#include "mock_storage.h" + +namespace gree { +namespace flare { + +// {{{ global functions +// }}} + +// {{{ ctor/dtor +mock_storage::mock_storage(string data_dir, int mutex_slot_size, int header_cache_size): + storage(data_dir, mutex_slot_size, header_cache_size), + iter_wait(-1), + _is_iter(false) { + this->_it = this->_map.end(); + pthread_mutex_init(&this->_mutex, NULL); +} + +mock_storage::~mock_storage() { +} +// }}} + +// {{{ operator overloads +// }}} + +// {{{ public methods +int mock_storage::set(entry& e, result& r, int b) { + pthread_mutex_lock(&this->_mutex); + if (this->_map.count(e.key) > 0) { + if (this->_map[e.key].version < e.version) { + this->_map[e.key] = e; + } + } else { + this->_map[e.key] = e; + } + pthread_mutex_unlock(&this->_mutex); + r = result_stored; + return 0; +} + +int mock_storage::incr(entry& e, uint64_t value, result& r, bool increment, int b) { + r = result_not_stored; + return 0; +} + +int mock_storage::get(entry& e, result& r, int b) { + pthread_mutex_lock(&this->_mutex); + map::iterator it = this->_map.find(e.key); + if (it != this->_map.end()) { + r = result_found; + e = (*it).second; + } else { + r = result_not_found; + } + pthread_mutex_unlock(&this->_mutex); + return 0; +} + +int mock_storage::remove(entry& e, result& r, int b) { + pthread_mutex_lock(&this->_mutex); + this->_map.erase(e.key); + pthread_mutex_unlock(&this->_mutex); + return 0; +} + +int mock_storage::truncate(int b) { + pthread_mutex_lock(&this->_mutex); + this->_map.clear(); + pthread_mutex_unlock(&this->_mutex); + return 0; +} + +int mock_storage::iter_begin() { + if (!this->_is_iter) { + this->_is_iter = true; + pthread_mutex_lock(&this->_mutex); + this->_it = this->_map.begin(); + pthread_mutex_unlock(&this->_mutex); + return 0; + } else { + return -1; + } +} + +storage::iteration mock_storage::iter_next(string& key) { + if (!this->_is_iter) { + return iteration_error; + } + if (this->iter_wait > 0) { + usleep(iter_wait); + } + pthread_mutex_lock(&this->_mutex); + if (this->_it != this->_map.end()) { + key = (*this->_it).first; + ++this->_it; + pthread_mutex_unlock(&this->_mutex); + return iteration_continue; + } + pthread_mutex_unlock(&this->_mutex); + return iteration_end; +} + +int mock_storage::iter_end() { + if (this->_is_iter) { + this->_is_iter = false; + pthread_mutex_lock(&this->_mutex); + this->_it = this->_map.end(); + pthread_mutex_unlock(&this->_mutex); + return 0; + } else { + return -1; + } +} + +void mock_storage::set_helper(const string& key, const string& value, int flag, int version) { + storage::result result; + storage::entry entry; + entry.key = key; + entry.flag = flag; + entry.version = version; + entry.size = value.size(); + entry.data = shared_byte(new uint8_t[entry.size]); + memcpy(entry.data.get(), value.data(), entry.size); + this->set(entry, result); +} + +void mock_storage::get_helper(const string& key, entry& e) { + e = this->_map[key]; +} +// }}} + + +// {{{ protected methods +// }}} + +// {{{ private methods +// }}} + +} // namespace flare +} // namespace gree + +// vim: foldmethod=marker tabstop=2 shiftwidth=2 noexpandtab autoindent diff --git a/test/lib/mock_storage.h b/test/lib/mock_storage.h new file mode 100644 index 00000000..83daf559 --- /dev/null +++ b/test/lib/mock_storage.h @@ -0,0 +1,64 @@ +/** + * mock_storage.h + * + * @author Masanori Yoshimoto + * + * $Id$ + */ +#ifndef MOCK_STORAGE_H +#define MOCK_STORAGE_H + +#include + +#include + +namespace gree { +namespace flare { + +/* + * storage simple map class + */ +class mock_storage : public storage { +public: + int iter_wait; + +protected: + map _map; + map::iterator _it; + bool _is_iter; + pthread_mutex_t _mutex; + +public: + mock_storage(string data_dir, int mutex_slot_size, int header_cache_size); + virtual ~mock_storage(); + + virtual int open() { this->_open = true; }; + virtual int close() { this->_open = false; }; + virtual int set(entry& e, result& r, int b = 0); + virtual int incr(entry& e, uint64_t value, result& r, bool increment, int b = 0); + virtual int get(entry& e, result& r, int b = 0); + virtual int remove(entry& e, result& r, int b = 0); + virtual int truncate(int b = 0); + virtual int iter_begin(); + virtual iteration iter_next(string& key); + virtual int iter_end(); + virtual uint32_t count() { return this->_map.size(); }; + virtual uint64_t size() { return -1; }; + virtual int get_key(string key, int limit, vector& r) { return -1; }; + + virtual type get_type() { return type_tch; }; + virtual bool is_capable(capability c) { return false; }; + + // Helper functions for test + void set_helper(const string& key, const string& value, int flag = 0, int version = 0); + void get_helper(const string& key, entry& e); + +protected: + virtual int _get_header(string key, entry& e) { return -1; }; +}; + +} // namespace flare +} // namespace gree + +#endif // MOCK_STORAGE_H +// vim: foldmethod=marker tabstop=2 shiftwidth=2 noexpandtab autoindent diff --git a/test/lib/storage_simple_map.h b/test/lib/storage_simple_map.h deleted file mode 100644 index 4089aa6a..00000000 --- a/test/lib/storage_simple_map.h +++ /dev/null @@ -1,102 +0,0 @@ -/** - * storage_map.h - * - * @author Masanori Yoshimoto - * - * $Id$ - */ -#ifndef STORAGE_SIMPLE_MAP_H -#define STORAGE_SIMPLE_MAP_H - -#include - -namespace gree { -namespace flare { - -/* - * storage simple map class - */ -class storage_simple_map : public storage { -protected: - map _map; - map::iterator _it; - -public: - storage_simple_map(string data_dir, int mutex_slot_size, int header_cache_size): - storage(data_dir, mutex_slot_size, header_cache_size) { - this->_it = this->_map.end(); - }; - virtual ~storage_simple_map() { - this->_map.clear(); - }; - - virtual int open() { this->_open = true; }; - virtual int close() { this->_open = false; }; - virtual int set(entry& e, result& r, int b = 0) { - this->_map.insert(pair(e.key, e)); - r = result_stored; - return 0; - }; - virtual int incr(entry& e, uint64_t value, result& r, bool increment, int b = 0) { - r = result_not_stored; - return 0; - }; - virtual int get(entry& e, result& r, int b = 0) { - map::iterator it = this->_map.find(e.key); - if (it != this->_map.end()) { - r = result_found; - e = (*it).second; - } else { - r = result_not_found; - } - return 0; - }; - virtual int remove(entry& e, result& r, int b = 0) { - this->_map.erase(e.key); - return 0; - }; - virtual int truncate(int b = 0) { return 0; }; - virtual int iter_begin() { - this->_it = this->_map.begin(); - return 0; - }; - virtual iteration iter_next(string& key) { - if (this->_it != this->_map.end()) { - key = (*this->_it).first; - ++this->_it; - return iteration_continue; - } - return iteration_end; - }; - virtual int iter_end() { - this->_it = this->_map.end(); - return 0; - }; - virtual uint32_t count() { return this->_map.size(); }; - virtual uint64_t size() { return -1; }; - virtual int get_key(string key, int limit, vector& r) { return -1; }; - - virtual type get_type() { return type_tch; }; - virtual bool is_capable(capability c) { return false; }; - - // Helper functions for test - void set(const string& key, const string& value, int flag) { - storage::result result; - storage::entry entry; - entry.key = key; - entry.flag = flag; - entry.size = value.size(); - entry.data = shared_byte(new uint8_t[entry.size]); - memcpy(entry.data.get(), value.data(), entry.size); - this->set(entry, result); - }; - -protected: - virtual int _get_header(string key, entry& e) { return -1; }; -}; - -} // namespace flare -} // namespace gree - -#endif // STORAGE_SIMPLE_MAP_H -// vim: foldmethod=marker tabstop=2 shiftwidth=2 noexpandtab autoindent diff --git a/test/lib/test_cluster_replication.cc b/test/lib/test_cluster_replication.cc new file mode 100644 index 00000000..55b99a26 --- /dev/null +++ b/test/lib/test_cluster_replication.cc @@ -0,0 +1,552 @@ +/** + * test_cluster_replication.cc + * + * @author Masanori Yoshimoto + */ + +#include "app.h" +#include "stats.h" +#include "cluster.h" +#include "cluster_replication.h" +#include "key_resolver_modular.h" +#include "server.h" +#include "thread.h" +#include "thread_handler.h" +#include "thread_pool.h" + +#include "mock_cluster.h" +#include "mock_storage.h" +#include "mock_op_proxy_write.h" +#include "connection_iostream.h" + +#include + +using namespace std; +using namespace gree::flare; + +namespace test_cluster_replication { + class handler_async_response : public thread_handler { + public: + bool wait; + private: + server* _server; + mock_storage* _storage; + public: + handler_async_response(shared_thread t, server* s, mock_storage* storage): + thread_handler(t) { + this->wait = false; + this->_server = s; + this->_storage = storage; + } + + ~handler_async_response() { + } + + virtual int run() { + vector cs; + while (!this->_thread->is_shutdown_request()) { + if (cs.size() <= 0 || !cs[0]->is_available()) { + cs = this->_server->wait(); + } + + if (wait) { + long t = (rand() % 30 + 50) * 1000; // 50 ~ 80 msecs + usleep(t); + } + + if (cs.size() > 0 && cs[0]->is_available()) { + char *p, *q; + if (cs[0]->readline(&p) <= 0) { + return 0; + } + + storage::entry e; + e.parse(p + 4, storage::parse_type_set); + delete[] p; + + if (cs[0]->readline(&q) <= 0) { + return 0; + } + + shared_byte data(new uint8_t[e.size]); + memcpy(data.get(), q, e.size); + delete[] q; + + e.data = data; + storage::result r; + this->_storage->set(e, r); + + cs[0]->writeline("STORED"); + } + } + return 0; + } + }; + + void sa_usr1_handler(int sig) { + // just ignore + } + + int port; + mock_cluster* cl; + mock_storage* st; + server* s; + thread_pool* tp; + vector cs; + cluster_replication* cl_repl; + mock_storage* local_storage; + struct sigaction prev_sigusr1_action; + + void setup() { + struct sigaction sa; + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = sa_usr1_handler; + if (sigaction(SIGUSR1, &sa, &prev_sigusr1_action) < 0) { + log_err("sigaction for %d failed: %s (%d)", SIGUSR1, util::strerror(errno), errno); + return; + } + + stats_object = new stats(); + stats_object->update_timestamp(); + + port = rand() % (65535 - 1024) + 1024; + s = new server(); + + cl = new mock_cluster("localhost", port); + tp = new thread_pool(5); + st = new mock_storage("", 0, 0); + st->open(); + + cl_repl = new cluster_replication(tp); + local_storage = new mock_storage("", 0 , 0); + } + + void teardown() { + for (int i = 0; i < cs.size(); i++) { + cs[i]->close(); + } + tp->shutdown(); + cs.clear(); + s->close(); + st->close(); + delete cl_repl; + delete tp; + delete s; + delete st; + delete cl; + delete local_storage; + delete stats_object; + + if (sigaction(SIGUSR1, &prev_sigusr1_action, NULL) < 0) { + log_err("sigaction for %d failed: %s (%d)", SIGUSR1, util::strerror(errno), errno); + return; + } + } + + void prepare_storage(int item_num, int version) { + for (int i = 0; i < item_num; i++) { + string key = "key" + boost::lexical_cast(i); + string data = "VALUE"; + st->set_helper(key, data.c_str(), 0, version); + } + } + + storage::entry get_entry(string firstline, storage::parse_type type, string value) { + storage::entry e; + e.parse(firstline.c_str(), type); + shared_byte data(new uint8_t[e.size]); + memcpy(data.get(), value.c_str(), e.size); + e.data = data; + return e; + } + + void start_cluster_replication(string host, int _port, int concurrency, bool wait = true) { + cut_assert_equal_int(0, cl_repl->start(host, _port, concurrency, st, cl)); + if (s->listen(port) < 0) { + cut_fail("failed to listen port (=%d)", port); + } + if (wait) { + cs = s->wait(); + } + } + + void assert_variable(string server_name, int server_port, int concurrency, bool sync = false) { + cut_assert_equal_string(server_name.c_str(), cl_repl->get_server_name().c_str()); + cut_assert_equal_int(server_port, cl_repl->get_server_port()); + cut_assert_equal_int(concurrency, cl_repl->get_concurrency()); + cut_assert_equal_boolean(sync, cl_repl->get_sync()); + } + + void assert_state(bool started, bool dump) { + cut_assert_equal_boolean(started, cl_repl->is_started()); + thread_pool::local_map m_cl = tp->get_active(thread_pool::thread_type_cluster_replication); + if (started) { + cut_assert_equal_int(cl_repl->get_concurrency(), m_cl.size()); + } else { + cut_assert_equal_int(0, m_cl.size()); + } + thread_pool::local_map m_dump = tp->get_active(thread_pool::thread_type_dump_replication); + if (dump) { + cut_assert_equal_int(1, m_dump.size()); + } else { + cut_assert_equal_int(0, m_dump.size()); + } + } + + void assert_queue_size(int exp) { + int queue_size = 0; + thread_pool::local_map m = tp->get_active(thread_pool::thread_type_cluster_replication); + for (thread_pool::local_map::iterator it = m.begin(); it != m.end(); it++) { + queue_size += it->second->get_thread_info().queue_size; + } + cut_assert_equal_int(exp, queue_size); + } + + void assert_queue_size(int max, int min) { + int queue_size = 0; + thread_pool::local_map m = tp->get_active(thread_pool::thread_type_cluster_replication); + for (thread_pool::local_map::iterator it = m.begin(); it != m.end(); it++) { + queue_size += it->second->get_thread_info().queue_size; + } + cut_assert_true(max >= queue_size && min <= queue_size); + } + + void test_default_value() { + assert_variable("", 0, 0); + assert_state(false, false); + } + + void test_set_sync() { + cut_assert_equal_boolean(false, cl_repl->get_sync()); + cut_assert_equal_int(0, cl_repl->set_sync(true)); + cut_assert_equal_boolean(true, cl_repl->get_sync()); + cut_assert_equal_int(0, cl_repl->set_sync(false)); + cut_assert_equal_boolean(false, cl_repl->get_sync()); + } + + void test_start_success_when_master() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + st->iter_wait = 1 * 100 * 1000; // 100 msecs + + // execute + start_cluster_replication("localhost", port, 3); + + // assert + assert_variable("localhost", port, 3); + assert_state(true, true); + usleep(200 * 1000); // waiting for dump replication completed + assert_state(true, false); + } + + void test_start_success_when_slave() { + // prepare + cluster::node master = cl->set_node("dummy", port + 1, cluster::role_master, cluster::state_active); + cluster::node slave = cl->set_node("localhost", port, cluster::role_slave, cluster::state_active); + cluster::node slaves[] = {slave}; + cl->set_partition(0, master, slaves, 1); + st->iter_wait = 1 * 100 * 1000; // 100 msecs + + // execute + start_cluster_replication("localhost", port, 3); + + // assert + assert_variable("localhost", port, 3); + assert_state(true, true); + usleep(200 * 1000); // waiting for dump replication completed + assert_state(true, false); + } + + void test_start_success_with_dump() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + prepare_storage(5, 1); + + // execute + start_cluster_replication("localhost", port, 1, false); + assert_variable("localhost", port, 1); + assert_state(true, true); + + for (int i = 0; i < 2; i++) { + shared_thread t = tp->get(thread_pool::thread_type_request); + handler_async_response* h = new handler_async_response(t, s, local_storage); + t->trigger(h, true, false); + } + + bool no_request = false; + usleep(1000 * 1000); // waiting for dump replication completed + cut_assert_equal_int(5, local_storage->count()); + for (int i = 0; i < 5; i++) { + string key = "key" + boost::lexical_cast(i); + storage::entry e; + local_storage->get_helper(key, e); + cut_assert_equal_string(key.c_str(), e.key.c_str()); + cut_assert_equal_int(0, e.flag); + cut_assert_equal_int(5, e.size); + cut_assert_equal_int(1, e.version); + cut_assert_equal_memory("VALUE", 5, (const char*)e.data.get(), 5); + } + usleep(100 * 1000); + assert_state(true, false); + } + + void test_start_failure_when_proxy() { + // prepare + cl->set_node("localhost", port, cluster::role_proxy, cluster::state_active); + + // execute + cut_assert_equal_int(-1, cl_repl->start("localhost", port, 1, st, cl)); + + // assert + assert_variable("", 0, 0); + assert_state(false, false); + } + + void test_start_failure_with_no_concurrency() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + + // execute + cut_assert_equal_int(-1, cl_repl->start("localhost", port, 0, st, cl)); + + // assert + assert_variable("", 0, 0); + assert_state(false, false); + } + + void test_start_failure_in_started_state() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + st->iter_wait = 1 * 100 * 1000; // 100 msecs + start_cluster_replication("localhost", port, 3); + + // execute + cut_assert_equal_int(-1, cl_repl->start("localhost", port, 4, st, cl)); + + // assert + assert_variable("localhost", port, 3); + assert_state(true, true); + } + + void test_stop_success_in_stated_state() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + st->iter_wait = 1 * 100 * 1000; // 200 msecs + start_cluster_replication("localhost", port, 3); + assert_variable("localhost", port, 3); + assert_state(true, true); + + // execute + cut_assert_equal_int(0, cl_repl->stop()); + usleep(100 * 1000); // waiting for shutdown of asynchronous replication threads. + + // assert + assert_variable("", 0, 0); + assert_state(false, false); + } + + void test_stop_sucess_in_not_started_state() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + + // execute + cut_assert_equal_int(0, cl_repl->stop()); + + // assert + assert_variable("", 0, 0); + assert_state(false, false); + } + + void test_on_pre_proxy_read_success() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + start_cluster_replication("localhost", port, 3); + assert_variable("localhost", port, 3); + + // execute + usleep(100 * 1000); + shared_connection c(new connection_sstream(" TEST")); + op_get op(c, cl, st); + cut_assert_equal_int(0, cl_repl->on_pre_proxy_read(&op)); + } + + void test_on_pre_proxy_write_success() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + start_cluster_replication("localhost", port, 3); + assert_variable("localhost", port, 3); + + // execute + usleep(100 * 1000); + shared_connection c(new connection_sstream(" TEST 0 0 5\r\nVALUE\r\n")); + op_set op(c, cl, st); + cut_assert_equal_int(0, cl_repl->on_pre_proxy_write(&op)); + } + + void test_on_post_proxy_write_success_when_async() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + st->iter_wait = 1 * 100 * 1000; // 100 msecs + start_cluster_replication("localhost", port, 3, false); + assert_variable("localhost", port, 3); + assert_state(true, true); + + for (int i = 0; i < 4; i++) { + shared_thread t = tp->get(thread_pool::thread_type_request); + handler_async_response* h = new handler_async_response(t, s, local_storage); + t->trigger(h, true, false); + } + + // execute + usleep(100 * 1000); + for (int i = 0; i < 5; i++) { + shared_connection c(new connection_sstream("dummy")); + mock_op_proxy_write op(c, cl, st); + string key = "key" + boost::lexical_cast(i); + storage::entry e = get_entry(" " + key + " 0 0 5 3", storage::parse_type_set, "VALUE"); + op.set_entry(e); + cut_assert_equal_int(0, cl_repl->on_post_proxy_write(&op)); + } + + // assert + assert_queue_size(5, 0); + usleep(200 * 1000); // waiting for queue proceeded + assert_queue_size(0); + cut_assert_equal_int(5, local_storage->count()); + for (int i = 0; i < 5; i++) { + string key = "key" + boost::lexical_cast(i); + storage::entry e; + local_storage->get_helper(key, e); + cut_assert_equal_string(key.c_str(), e.key.c_str()); + cut_assert_equal_int(0, e.flag); + cut_assert_equal_int(5, e.size); + cut_assert_equal_int(3, e.version); + cut_assert_equal_memory("VALUE", 5, (const char*)e.data.get(), 5); + } + + usleep(100 * 1000); + assert_queue_size(0); + assert_state(true, false); + } + + void test_on_post_proxy_write_success_with_sync() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + cl_repl->set_sync(true); + st->iter_wait = 1 * 100 * 1000; // 100 msecs + start_cluster_replication("localhost", port, 3, false); + assert_variable("localhost", port, 3, true); + assert_state(true, true); + + for (int i = 0; i < 4; i++) { + shared_thread t = tp->get(thread_pool::thread_type_request); + handler_async_response* h = new handler_async_response(t, s, local_storage); + t->trigger(h, true, false); + } + + // execute + usleep(100 * 1000); + for (int i = 0; i < 5; i++) { + shared_connection c(new connection_sstream("dummy")); + mock_op_proxy_write op(c, cl, st); + string key = "key" + boost::lexical_cast(i); + storage::entry e = get_entry(" " + key + " 0 0 5 3", storage::parse_type_set, "VALUE"); + op.set_entry(e); + + // assert + cut_assert_equal_int(0, cl_repl->on_post_proxy_write(&op)); + assert_queue_size(0); + storage::entry _e; + local_storage->get_helper(key, _e); + cut_assert_equal_string(key.c_str(), _e.key.c_str()); + cut_assert_equal_int(0, _e.flag); + cut_assert_equal_int(5, _e.size); + cut_assert_equal_int(3, _e.version); + cut_assert_equal_memory("VALUE", 5, (const char*)_e.data.get(), 5); + } + + // assert + usleep(100 * 1000); // waiting for queue proceeded + assert_queue_size(0); + assert_state(true, false); + } + + void test_on_post_proxy_write_success_with_dump() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + //st->iter_wait = 1 * 10 * 1000; // 100 msecs + prepare_storage(5, 1); + + // execute + start_cluster_replication("localhost", port, 3, false); + assert_variable("localhost", port, 3); + assert_state(true, true); + + for (int i = 0; i < 4; i++) { + shared_thread t = tp->get(thread_pool::thread_type_request); + handler_async_response* h = new handler_async_response(t, s, local_storage); + t->trigger(h, true, false); + h->wait = true; + } + + usleep(100 * 1000); + for (int i = 0; i < 5; i++) { + shared_connection c(new connection_sstream("dummy")); + mock_op_proxy_write op(c, cl, st); + string key = "key" + boost::lexical_cast(i); + storage::entry e = get_entry(" " + key + " 0 0 5 3", storage::parse_type_set, "VALUE"); + op.set_entry(e); + cut_assert_equal_int(0, cl_repl->on_post_proxy_write(&op)); + } + + usleep(500 * 1000); // waiting for replication completed + cut_assert_equal_int(5, local_storage->count()); + for (int i = 0; i < 5; i++) { + string key = "key" + boost::lexical_cast(i); + storage::entry e; + local_storage->get_helper(key, e); + cut_assert_equal_string(key.c_str(), e.key.c_str()); + cut_assert_equal_int(0, e.flag); + cut_assert_equal_int(5, e.size); + cut_assert_equal_int(3, e.version); + cut_assert_equal_memory("VALUE", 5, (const char*)e.data.get(), 5); + } + usleep(100 * 1000); + assert_state(true, false); + } + + void test_on_post_proxy_write_failure_in_not_started_state() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + + // execute + shared_connection c(new connection_sstream(" TEST 0 0 5\r\nVALUE\r\n")); + op_set op(c, cl, st); + cut_assert_equal_int(-1, cl_repl->on_post_proxy_write(&op)); + } + + void test_on_post_proxy_write_invalid_destination() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + cut_assert_equal_int(0, cl_repl->start("localhost", port, 1, st, cl)); + sleep(7); // waiting for connection failed + + // execute + shared_connection c(new connection_sstream(" TEST 0 0 5\r\nVALUE\r\n")); + mock_op_proxy_write op(c, NULL, NULL); + cut_assert_equal_int(-1, cl_repl->on_post_proxy_write(&op)); + } +} diff --git a/test/lib/test_connection_tcp.h b/test/lib/test_connection_tcp.h index 693adaea..1ab06959 100644 --- a/test/lib/test_connection_tcp.h +++ b/test/lib/test_connection_tcp.h @@ -102,7 +102,9 @@ namespace test_connection_tcp sockaddr_in addr; socklen_t addrlen = sizeof(addr); int nsfd = accept(instance._sfd, (sockaddr*)&addr, &addrlen); - send(nsfd, instance._output.data(), instance._output.size(), MSG_DONTWAIT); + if (instance._output.size() > 0) { + send(nsfd, instance._output.data(), instance._output.size(), MSG_DONTWAIT); + } while(instance._running) { sleep(1); } pthread_exit(NULL); } diff --git a/test/lib/test_handler_cluster_replication.cc b/test/lib/test_handler_cluster_replication.cc new file mode 100644 index 00000000..2c355434 --- /dev/null +++ b/test/lib/test_handler_cluster_replication.cc @@ -0,0 +1,199 @@ +/** + * test_handler_cluster_replication.cc + * + * @author Masanori Yoshimoto + */ + +#include "app.h" +#include "stats.h" +#include "handler_cluster_replication.h" +#include "queue_forward_query.h" +#include "server.h" +#include "storage.h" + +#include + +using namespace std; +using namespace gree::flare; + +namespace test_handler_cluster_replication { + void sa_usr1_handler(int sig) { + // just ignore + } + + int port; + server* s; + thread_pool* tp; + vector cs; + struct sigaction prev_sigusr1_action; + + void setup() { + struct sigaction sa; + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = sa_usr1_handler; + if (sigaction(SIGUSR1, &sa, &prev_sigusr1_action) < 0) { + log_err("sigaction for %d failed, %s (%d)", SIGUSR1, util::strerror(errno), errno); + return; + } + + stats_object = new stats(); + stats_object->update_timestamp(); + + port = rand() % (65535 - 1024) + 1024; + s = new server(); + + tp = new thread_pool(1); + } + + void teardown() { + for (int i = 0; i < cs.size(); i++) { + cs[i]->close(); + } + cs.clear(); + if (s) { + s->close(); + } + tp->shutdown(); + + delete s; + delete tp; + delete stats_object; + + if (sigaction(SIGUSR1, &prev_sigusr1_action, NULL) < 0) { + log_err("sigaction for %d failed: %s (%d)", SIGUSR1, util::strerror(errno), errno); + return; + } + } + + storage::entry get_entry(string input, storage::parse_type type, string value = "") { + storage::entry e; + e.parse(input.c_str(), type); + if (e.size > 0 && value.length() > 0) { + shared_byte data(new uint8_t[e.size]); + memcpy(data.get(), value.c_str(), e.size); + e.data = data; + } + return e; + } + + shared_thread start_handler(bool listen = true) { + shared_thread t = tp->get(thread_pool::thread_type_cluster_replication); + handler_cluster_replication* h = new handler_cluster_replication(t, "localhost", port); + t->trigger(h, true, false); + if (listen) { + s->listen(port); + cs = s->wait(); + } + return t; + } + + void enqueue(shared_thread t, shared_thread_queue q) { + t->enqueue(q); + } + + void replicate_sync(shared_thread t, shared_thread_queue q, string response, string exp_request, string exp_value) { + q->sync_ref(); + t->enqueue(q); + if (response.length() > 0 && cs.size() > 0) { + char *p, *q; + cs[0]->readline(&p); + cs[0]->readline(&q); + cut_assert_equal_string(exp_request.c_str(), p); + cut_assert_equal_string(exp_value.c_str(), q); + cs[0]->writeline(response.c_str()); + delete[] p; + delete[] q; + } + q->sync(); + } + + void test_run_success_sync() { + // prepare + shared_thread t = start_handler(); + + // execute + for (int i = 0; i < 5; i++) { + storage::entry e = get_entry(" key 0 0 5 3", storage::parse_type_set, "VALUE"); + shared_queue_forward_query q(new queue_forward_query(e, "set")); + replicate_sync(t, q, "STORED", "set key 0 0 5 3\n", "VALUE\n"); + cut_assert_equal_int(0, stats_object->get_total_thread_queue()); + cut_assert_equal_boolean(true, q->is_success()); + cut_assert_equal_int(op::result_stored, q->get_result()); + } + + // assert + usleep(100 * 1000); // waiting for all queue proceeded + cut_assert_equal_boolean(true, t->is_running()); + cut_assert_equal_string("wait", t->get_state().c_str()); + } + + void test_run_success_async() { + // prepare + shared_thread t = start_handler(); + shared_queue_forward_query queues[5]; + + // execute + for (int i = 0; i < 5; i++) { + storage::entry e = get_entry(" key 0 0 5 3", storage::parse_type_set, "VALUE"); + shared_queue_forward_query q(new queue_forward_query(e, "set")); + queues[i] = q; + enqueue(t, q); + } + + // assert + for (int i = 0; i < 5; i++) { + cut_assert_equal_int(4 - i, stats_object->get_total_thread_queue()); + char *p, *q; + cs[0]->readline(&p); + cs[0]->readline(&q); + cut_assert_equal_string("set key 0 0 5 3\n", p); + cut_assert_equal_string("VALUE\n", q); + cs[0]->writeline("STORED"); + usleep(100 * 1000); // waiting for queue proceeded + cut_assert_equal_boolean(true, queues[i]->is_success()); + cut_assert_equal_int(op::result_stored, queues[i]->get_result()); + } + + cut_assert_equal_boolean(true, t->is_running()); + cut_assert_equal_string("wait", t->get_state().c_str()); + cut_assert_equal_int(0, stats_object->get_total_thread_queue()); + } + + void test_run_shutdown_graceful() { + // prepare + shared_thread t = start_handler(); + + // execute + cut_assert_equal_int(0, t->shutdown(true, false)); + + // assert + usleep(200 * 1000); // waiting for shutdown completed + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("", t->get_state().c_str()); + } + + void test_run_shutdown_not_graceful() { + // prepare + shared_thread t = start_handler(); + + // execute + cut_assert_equal_int(0, t->shutdown(false, false)); + + // assert + usleep(200 * 1000); // waiting for shutdown completed + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("shutdown", t->get_state().c_str()); + cut_assert_equal_boolean(true, t->is_shutdown_request()); + } + + void test_run_failure_unreachable_connection() { + // execute + shared_thread t = start_handler(false); + + // assert + sleep(6); // waiting for connection failure + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("", t->get_state().c_str()); + } +} +// vim: foldmethod=marker tabstop=2 shiftwidth=2 noexpandtab autoindent diff --git a/test/lib/test_handler_dump_replication.cc b/test/lib/test_handler_dump_replication.cc new file mode 100644 index 00000000..a3c1968c --- /dev/null +++ b/test/lib/test_handler_dump_replication.cc @@ -0,0 +1,299 @@ +/** + * test_handler_dump_replication.cc + * + * @author Masanori Yoshimoto + */ + +#include "app.h" +#include "stats.h" +#include "handler_dump_replication.h" +#include "mock_cluster.h" +#include "server.h" +#include "mock_storage.h" + +#include + +using namespace std; +using namespace gree::flare; + +namespace test_handler_dump_replication { + void sa_usr1_handler(int sig) { + // just ignore + } + + int port; + mock_cluster* cl; + mock_storage* st; + server* s; + thread_pool* tp; + vector cs; + struct sigaction prev_sigusr1_action; + + void setup() { + struct sigaction sa; + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = sa_usr1_handler; + if (sigaction(SIGUSR1, &sa, &prev_sigusr1_action) < 0) { + log_err("sigaction for %d failed, %s (%d)", SIGUSR1, util::strerror(errno), errno); + return; + } + + stats_object = new stats(); + stats_object->update_timestamp(); + + port = rand() % (65535 - 1024) + 1024; + s = new server(); + + cl = new mock_cluster("localhost", port); + tp = new thread_pool(5); + st = new mock_storage("", 0, 0); + st->open(); + } + + void teardown() { + for (int i = 0; i < cs.size(); i++) { + cs[i]->close(); + } + cs.clear(); + if (s) { + s->close(); + } + tp->shutdown(); + st->close(); + + delete s; + delete tp; + delete st; + delete cl; + delete stats_object; + + if (sigaction(SIGUSR1, &prev_sigusr1_action, NULL) < 0) { + log_err("sigaction for %d failed: %s (%d)", SIGUSR1, util::strerror(errno), errno); + return; + } + } + + void prepare_storage(int item_num, int size = 0) { + for (int i = 0; i < item_num; i++) { + string key = "key" + boost::lexical_cast(i); + if (size > 0) { + ostringstream data; + for (int j = 0; j < size; j++) { + data << "o"; + } + st->set_helper(key, data.str(), 0); + } else { + st->set_helper(key, "VALUE", 0, 0); + } + } + } + + shared_thread start_handler(bool listen = true) { + shared_thread t = tp->get(thread_pool::thread_type_dump_replication); + handler_dump_replication* h = new handler_dump_replication(t, cl, st, "localhost", port); + t->trigger(h, true, false); + if (listen) { + s->listen(port); + cs = s->wait(); + } + return t; + } + + void response_dump(string response, int key_id, int data_size = 0) { + int size = 5; + string data = "VALUE\n"; + if (data_size > 0) { + ostringstream tmp; + for (int i = 0; i < data_size; i++) { + tmp << "o"; + } + data = tmp.str() + "\n"; + size = data_size; + } + if (response.length() > 0 && cs.size() > 0) { + char *p, *q; + cs[0]->readline(&p); + cs[0]->readline(&q); + cs[0]->writeline(response.c_str()); + string req = "set key" + boost::lexical_cast(key_id) + " 0 0 " + boost::lexical_cast(size) + "\n"; + cut_assert_equal_string(req.c_str(), p); + cut_assert_equal_string(data.c_str(), q); + delete[] p; + delete[] q; + } + } + + long get_elapsed_msec(timeval& start_tv) { + static const long one_sec = 1000000L; + struct timeval end_tv; + gettimeofday(&end_tv, NULL); + long elapsed_usec = ((end_tv.tv_sec - start_tv.tv_sec) * one_sec + (end_tv.tv_usec - start_tv.tv_usec)); + return elapsed_usec / 1000; + } + + void test_run_success_single_partition() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + prepare_storage(5); + + // execute + shared_thread t = start_handler(); + for (int i = 0; i < 5; i++) { + response_dump("STORED", i); + } + + // assert + usleep(100 * 1000); // waiting for dump completed + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("", t->get_state().c_str()); + } + + void test_run_success_two_partition() { + // prepare + cluster::node master1 = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cluster::node master2 = cl->set_node("dummy", port + 1, cluster::role_master, cluster::state_active, 1); + cl->set_partition(0, master1); + cl->set_partition(1, master2); + prepare_storage(10); + + // execute + shared_thread t = start_handler(); + // assigned key to this partition is half of all keys when hash algorithm is simple + // (key0, key2, key4, key6, key8) + for (int i = 0; i < 5; i++) { + response_dump("STORED", i * 2); + } + + // assert + usleep(100 * 1000); // waiting for dump completed + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("", t->get_state().c_str()); + } + + void test_run_success_wait() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + cl->set_reconstruction_interval(100 * 1000); // 100 msecs + prepare_storage(5); + struct timeval start_tv; + gettimeofday(&start_tv, NULL); + + // execute + shared_thread t = start_handler(); + for (int i = 0; i < 5; i++) { + response_dump("STORED", i); + } + + // assert + // still being under dump replication due to sleep of last key + cut_assert_equal_boolean(true, t->is_running()); + cut_assert_equal_string("execute", t->get_state().c_str()); + usleep(100 * 1000); // waiting for completion of sleep of last key + + long elapsed_msec = get_elapsed_msec(start_tv); + cut_assert_true(elapsed_msec > 500 && elapsed_msec < 1000); + + usleep(100 * 1000); // waiting for dump completed + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("", t->get_state().c_str()); + } + + void test_run_success_bwlimit() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + cl->set_reconstruction_bwlimit(1); // 1 KB + prepare_storage(5, 100); // 5 keys * 500 Bytes ("VALUE") / 1 KBytes = about 500 msecs + struct timeval start_tv; + gettimeofday(&start_tv, NULL); + + // execute + shared_thread t = start_handler(); + for (int i = 0; i < 5; i++) { + response_dump("STORED", i, 100); + } + + // assert + // still being under dump replication due to sleep of last key + cut_assert_equal_boolean(true, t->is_running()); + cut_assert_equal_string("execute", t->get_state().c_str()); + + usleep(200 * 1000); // waiting for dump completed + long elapsed_msec = get_elapsed_msec(start_tv); + cut_assert_true(elapsed_msec > 500 && elapsed_msec < 1000); + + usleep(100 * 1000); + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("", t->get_state().c_str()); + } + + void test_run_success_shutdown_graceful() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + prepare_storage(2); + st->iter_wait = 100 * 1000; // 100 msecs + + // execute + shared_thread t = start_handler(); + response_dump("STORED", 0); // response only first data + cut_assert_equal_int(0, t->shutdown(true, false)); + + // assert + usleep(200 * 1000); // waiting for shutdown + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("", t->get_state().c_str()); + } + + void test_run_success_shutdown_not_graceful() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + prepare_storage(2); + st->iter_wait = 100 * 1000; // 100 msecs + + // execute + shared_thread t = start_handler(); + response_dump("STORED", 0); // response only first data + cut_assert_equal_int(0, t->shutdown(false, false)); + + // assert + usleep(200 * 1000); // waiting for shutdown (not graceful) + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("shutdown", t->get_state().c_str()); + } + + void test_run_failure_unreachable_connection() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + prepare_storage(3); + + // execute + shared_thread t = start_handler(false); + + // assert + sleep(6); // waiting for connection failure + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("", t->get_state().c_str()); + } + + void test_run_failure_database_busy() { + // prepare + cluster::node master = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + cl->set_partition(0, master); + prepare_storage(3); + st->iter_begin(); + + // execute + shared_thread t = start_handler(); + + // assert + usleep(100 * 1000); // waiting for database busy + cut_assert_equal_boolean(false, t->is_running()); + cut_assert_equal_string("", t->get_state().c_str()); + } +} +// vim: foldmethod=marker tabstop=2 shiftwidth=2 noexpandtab autoindent diff --git a/test/lib/test_handler_proxy.cc b/test/lib/test_handler_proxy.cc index 63c33d5f..994d2627 100644 --- a/test/lib/test_handler_proxy.cc +++ b/test/lib/test_handler_proxy.cc @@ -101,10 +101,9 @@ namespace test_handler_proxy { return q; } - shared_thread start_handler_proxy(cluster::role role, cluster::state state) { + shared_thread start_handler_proxy(int thread_type) { s->listen(port); - cluster::node n = cl->set_node("localhost", port, role, state); - shared_thread t = tp->get(n.node_thread_type); + shared_thread t = tp->get(thread_type); handler_proxy* h = new handler_proxy(t, cl, "localhost", port); t->trigger(h, true, false); return t; @@ -142,7 +141,8 @@ namespace test_handler_proxy { } void test_proxy_write_to_master() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); @@ -153,7 +153,8 @@ namespace test_handler_proxy { } void test_proxy_write_to_slave() { - shared_thread t = start_handler_proxy(cluster::role_slave, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_slave, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); @@ -164,7 +165,8 @@ namespace test_handler_proxy { } void test_proxy_write_to_proxy() { - shared_thread t = start_handler_proxy(cluster::role_proxy, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_proxy, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, ""); // proxy request should be skip so no response @@ -175,7 +177,8 @@ namespace test_handler_proxy { } void test_proxy_write_to_prepare_node() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_prepare); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_prepare); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); @@ -186,7 +189,8 @@ namespace test_handler_proxy { } void test_proxy_write_to_ready_node() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_ready); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_ready); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); @@ -197,7 +201,8 @@ namespace test_handler_proxy { } void test_proxy_write_to_down_node() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_down); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_down); + shared_thread t = start_handler_proxy(n.node_thread_type); s->close(); shared_queue_proxy_write q = get_proxy_queue_write(); @@ -209,7 +214,8 @@ namespace test_handler_proxy { } void test_proxy_read_to_master() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_read q = get_proxy_queue_read(); proxy_request(t, q, "VALUE key 0 5\r\nVALUE\r\nEND"); @@ -220,7 +226,8 @@ namespace test_handler_proxy { } void test_proxy_read_to_slave() { - shared_thread t = start_handler_proxy(cluster::role_slave, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_slave, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_read q = get_proxy_queue_read(); proxy_request(t, q, "VALUE key 0 5\r\nVALUE\r\nEND"); @@ -231,7 +238,8 @@ namespace test_handler_proxy { } void test_proxy_read_to_proxy() { - shared_thread t = start_handler_proxy(cluster::role_proxy, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_proxy, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_read q = get_proxy_queue_read(); proxy_request(t, q, ""); // proxy request should be skipped so no reponse @@ -242,7 +250,8 @@ namespace test_handler_proxy { } void test_proxy_read_to_prepare_node() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_prepare); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_prepare); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_read q = get_proxy_queue_read(); proxy_request(t, q, "VALUE key 0 5\r\nVALUE\r\nEND"); @@ -253,7 +262,8 @@ namespace test_handler_proxy { } void test_proxy_read_to_ready_node() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_ready); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_ready); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_read q = get_proxy_queue_read(); proxy_request(t, q, "VALUE key 0 5\r\nVALUE\r\nEND"); @@ -264,7 +274,8 @@ namespace test_handler_proxy { } void test_proxy_read_to_down_node() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_down); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_down); + shared_thread t = start_handler_proxy(n.node_thread_type); s->close(); shared_queue_proxy_read q = get_proxy_queue_read(); @@ -277,7 +288,8 @@ namespace test_handler_proxy { // active -> down -> active void test_proxy_state_machine_for_node_state() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); @@ -307,7 +319,8 @@ namespace test_handler_proxy { // proxy -> master void test_proxy_state_machine_when_node_role_going_into_master_from_proxy() { - shared_thread t = start_handler_proxy(cluster::role_proxy, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_proxy, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); @@ -322,7 +335,8 @@ namespace test_handler_proxy { // proxy -> slave void test_proxy_state_machine_when_node_role_going_into_slave_from_proxy() { - shared_thread t = start_handler_proxy(cluster::role_proxy, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_proxy, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); @@ -337,7 +351,8 @@ namespace test_handler_proxy { // slave -> master (failover) void test_proxy_state_machine_when_node_role_going_into_master_from_slave() { - shared_thread t = start_handler_proxy(cluster::role_slave, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_slave, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); @@ -352,7 +367,8 @@ namespace test_handler_proxy { // master -> slave (invalid case, actually not happen) void test_proxy_state_machine_when_node_role_going_into_slave_from_master() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); @@ -367,7 +383,8 @@ namespace test_handler_proxy { // master -> proxy void test_proxy_state_machine_when_node_role_going_into_proxy_from_master() { - shared_thread t = start_handler_proxy(cluster::role_master, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_master, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); @@ -382,7 +399,8 @@ namespace test_handler_proxy { // slave -> proxy void test_proxy_state_machine_when_node_role_going_into_proxy_from_slave() { - shared_thread t = start_handler_proxy(cluster::role_slave, cluster::state_active); + cluster::node n = cl->set_node("localhost", port, cluster::role_slave, cluster::state_active); + shared_thread t = start_handler_proxy(n.node_thread_type); shared_queue_proxy_write q = get_proxy_queue_write(); proxy_request(t, q, "STORED"); diff --git a/test/lib/test_op_dump.cc b/test/lib/test_op_dump.cc index 0bc2fa63..7428b81e 100644 --- a/test/lib/test_op_dump.cc +++ b/test/lib/test_op_dump.cc @@ -8,7 +8,7 @@ #include "test_op.h" #include "connection_iostream.h" -#include "storage_simple_map.h" +#include "mock_storage.h" #include #include @@ -113,7 +113,7 @@ namespace test_op_dump cut_assert_equal_int(5, op._bwlimit); } - void set_dummy_items(storage_simple_map& st, int item_num = 1, int item_size = 1) + void set_dummy_items(mock_storage& st, int item_num = 1, int item_size = 1) { for (int i = 0; i < item_num; i++) { string key = string("key") + boost::lexical_cast(i); @@ -121,7 +121,7 @@ namespace test_op_dump for (int j = 0; j < item_size; j++) { value << "o"; } - st.set(key, value.str(), 0); + st.set_helper(key, value.str(), 0); } } @@ -176,7 +176,7 @@ namespace test_op_dump shared_connection c(new connection_sstream("\r\n")); connection_sstream& cstr = dynamic_cast(*c); cluster cl(NULL, "", 0); - storage_simple_map st("", 0, 0); + mock_storage st("", 0, 0); thread_pool tp(1); test_op_dump op(c, &cl, &st); op.set_thread(shared_thread(new gree::flare::thread(&tp))); @@ -191,7 +191,7 @@ namespace test_op_dump { shared_connection c(new connection_sstream(" 1000000\r\n")); cluster cl(NULL, "", 0); - storage_simple_map st("", 0, 0); + mock_storage st("", 0, 0); thread_pool tp(1); test_op_dump op(c, &cl, &st); op.set_thread(shared_thread(new gree::flare::thread(&tp))); @@ -207,7 +207,7 @@ namespace test_op_dump { shared_connection c(new connection_sstream(" 0 -1 0 1\r\n")); cluster cl(NULL, "", 0); - storage_simple_map st("", 0, 0); + mock_storage st("", 0, 0); thread_pool tp(1); test_op_dump op(c, &cl, &st); op.set_thread(shared_thread(new gree::flare::thread(&tp))); @@ -223,7 +223,7 @@ namespace test_op_dump { shared_connection c(new connection_sstream(" 2000000 -1 0 1\r\n")); cluster cl(NULL, "", 0); - storage_simple_map st("", 0, 0); + mock_storage st("", 0, 0); thread_pool tp(1); test_op_dump op(c, &cl, &st); op.set_thread(shared_thread(new gree::flare::thread(&tp))); @@ -239,7 +239,7 @@ namespace test_op_dump { shared_connection c(new connection_sstream(" 100 -1 0 1\r\n")); cluster cl(NULL, "", 0); - storage_simple_map st("", 0, 0); + mock_storage st("", 0, 0); thread_pool tp(1); test_op_dump op(c, &cl, &st); op.set_thread(shared_thread(new gree::flare::thread(&tp))); diff --git a/test/lib/test_queue_forward_query.cc b/test/lib/test_queue_forward_query.cc new file mode 100644 index 00000000..582715d2 --- /dev/null +++ b/test/lib/test_queue_forward_query.cc @@ -0,0 +1,165 @@ +/** + * test_queue_forward_query.cc + * + * @author Masanori Yoshimoto + */ +#include "app.h" +#include "op.h" +#include "op_delete.h" +#include "op_set.h" +#include "op_touch.h" +#include "queue_forward_query.h" +#include "logger.h" +#include "storage.h" + +#include "connection_iostream.h" + +#include + +using std::string; +using namespace gree::flare; + +namespace test_queue_forward_query { + struct queue_forward_query_test : public queue_forward_query { + queue_forward_query_test(storage::entry e, string ident): + queue_forward_query(e, ident) { + } + ~queue_forward_query_test() { + } + op_proxy_write* get_op(string op_ident, shared_connection c) { + return this->_get_op(op_ident, c); + } + }; + + void setup() { + stats_object = new stats(); + stats_object->update_timestamp(); + } + + void teardown() { + delete stats_object; + } + + storage::entry get_entry(string input, storage::parse_type type, string value) { + storage::entry e; + e.parse(input.c_str(), type); + shared_byte data(new uint8_t[e.size]); + memcpy(data.get(), value.c_str(), e.size); + e.data = data; + return e; + } + + void check(queue_forward_query& q, bool success, op::result result, string message) { + cut_assert_equal_boolean(success, q.is_success()); + cut_assert_equal_int(result, q.get_result()); + cut_assert_equal_string(message.c_str(), q.get_result_message().c_str()); + } + + void get_op_test(string ident) { + // prepare + storage::entry e; + shared_connection c(new connection_sstream("")); + queue_forward_query_test q(e, ident); + + // execute + op* p = q.get_op(ident, c); + + // assert + if (ident == "add" + || ident == "append" + || ident == "cas" + || ident == "decr" + || ident == "gat" + || ident == "incr" + || ident == "prepend" + || ident == "replace" + || ident == "set" + || ident == "touch") { + cut_assert_not_null(p); + cut_assert_not_null(dynamic_cast(p)); + } else if (ident == "delete") { + cut_assert_not_null(p); + cut_assert_not_null(dynamic_cast(p)); + } else { + cut_assert_null(p); + } + + if (p) { + delete p; + } + } + + void test_run_success() { + // prepare + storage::entry e = get_entry(" key 0 0 5 3", storage::parse_type_set, "VALUE"); + shared_connection c(new connection_sstream("STORED\r\n")); + + // execute + queue_forward_query q(e, "set"); + cut_assert_equal_int(0, q.run(c)); + + // assert + check(q, true, op::result_stored, ""); + } + + void test_run_failure_by_unavailable_connection() { + // prepare + storage::entry e = get_entry(" key 0 0 5 3", storage::parse_type_set, "VALUE"); + shared_connection c(new connection_tcp("localhost", 10000)); + + // execute + queue_forward_query q(e, "set"); + cut_assert_equal_int(-1, q.run(c)); + + // assert + check(q, false, op::result_none, ""); + } + +#define GET_OP_TEST(ident) \ + void test_get_op_##ident() { \ + get_op_test("ident"); \ + } + +GET_OP_TEST(add) +GET_OP_TEST(append) +GET_OP_TEST(cas) +GET_OP_TEST(decr) +GET_OP_TEST(delete) +GET_OP_TEST(dump) +GET_OP_TEST(dump_key) +GET_OP_TEST(error) +GET_OP_TEST(flush_all) +GET_OP_TEST(gat) +GET_OP_TEST(get) +GET_OP_TEST(getk) +GET_OP_TEST(gets) +GET_OP_TEST(incr) +GET_OP_TEST(keys) +GET_OP_TEST(kill) +GET_OP_TEST(meta) +GET_OP_TEST(node_add) +GET_OP_TEST(node_remove) +GET_OP_TEST(node_role) +GET_OP_TEST(node_state) +GET_OP_TEST(node_sync) +GET_OP_TEST(parser) +GET_OP_TEST(parser_binary) +GET_OP_TEST(parser_text) +GET_OP_TEST(ping) +GET_OP_TEST(prepend) +GET_OP_TEST(proxy_read) +GET_OP_TEST(proxy_write) +GET_OP_TEST(replace) +GET_OP_TEST(set) +GET_OP_TEST(show) +GET_OP_TEST(show_node) +GET_OP_TEST(show_index) +GET_OP_TEST(shutdown) +GET_OP_TEST(stats) +GET_OP_TEST(stats_node) +GET_OP_TEST(stats_index) +GET_OP_TEST(touch) +GET_OP_TEST(verbosity) +GET_OP_TEST(version) + +} From 3a886d8146bdcacb07e98eb6a727e423e8e3b468 Mon Sep 17 00:00:00 2001 From: Yoshimoto Masanori Date: Fri, 14 Nov 2014 09:39:41 +0900 Subject: [PATCH 05/14] Fix failure of test_handler_cluster_replication --- test/lib/test_handler_cluster_replication.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/test/lib/test_handler_cluster_replication.cc b/test/lib/test_handler_cluster_replication.cc index 2c355434..22eb88e1 100644 --- a/test/lib/test_handler_cluster_replication.cc +++ b/test/lib/test_handler_cluster_replication.cc @@ -142,7 +142,6 @@ namespace test_handler_cluster_replication { // assert for (int i = 0; i < 5; i++) { - cut_assert_equal_int(4 - i, stats_object->get_total_thread_queue()); char *p, *q; cs[0]->readline(&p); cs[0]->readline(&q); From 24d1da481f0440eaa7c681474d8b97c5743cb16d Mon Sep 17 00:00:00 2001 From: Yuji Kamiya Date: Fri, 14 Nov 2014 12:01:55 +0900 Subject: [PATCH 06/14] [2014/11/14] 1.2.0 release feature updates - Added storage access time watching feature - Replication over cluster bug fixes - Avoid to close the already closed socket. - Fix bwlimit when creating new partition - Fix initial value of epoll socket - Fix pthread_cond_wait() in zookeeper_lock::_assure_session_connected() - Fix resource leak of server socket - Fix some initialization - Fix the race condition in thread class - Fix zookeeper_lock::_assure_session_connected() - Fixed socket condition add_epoll_socket and add_kqueue_socket - Modified include guards to fit them to the C++ standard naming convention. - Skip proxy when destination node is down others - Support TravisCI --- NEWS | 22 ++++++++++++++++++++++ configure.ac | 2 +- debian/changelog | 6 ++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 204356cc..7bc422c4 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,25 @@ +* [2014/11/14] 1.2.0 release + + * feature updates + - Added storage access time watching feature + - Replication over cluster + + * bug fixes + - Avoid to close the already closed socket. + - Fix bwlimit when creating new partition + - Fix initial value of epoll socket + - Fix pthread_cond_wait() in zookeeper_lock::_assure_session_connected() + - Fix resource leak of server socket + - Fix some initialization + - Fix the race condition in thread class + - Fix zookeeper_lock::_assure_session_connected() + - Fixed socket condition add_epoll_socket and add_kqueue_socket + - Modified include guards to fit them to the C++ standard naming convention. + - Skip proxy when destination node is down + + * others + - Support TravisCI + * [2014/09/01] 1.1.1 release * bug fixes diff --git a/configure.ac b/configure.ac index a42f83fb..ca055e02 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT(flare, 1.1.1) +AC_INIT(flare, 1.2.0) AC_CONFIG_SRCDIR(src/flared/flared.cc) AM_INIT_AUTOMAKE AC_CONFIG_HEADERS(src/config.h) diff --git a/debian/changelog b/debian/changelog index 049802c0..ce6c7ae6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +flare (1.2.0-1) unstable; urgency=low + + * 1.2.0 + + -- Yuji Kamiya Fri, 14 Nov 2014 02:25:44 +0000 + flare (1.1.1-1) unstable; urgency=low * 1.1.1 From c9eafb80e94e1c9f362d0e7839723e7bf276c3de Mon Sep 17 00:00:00 2001 From: Yuya YAGUCHI Date: Thu, 20 Nov 2014 14:22:32 +0900 Subject: [PATCH 07/14] Fix to build with clang --- src/flared/flared.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/flared/flared.h b/src/flared/flared.h index 47435b68..12ea00c1 100644 --- a/src/flared/flared.h +++ b/src/flared/flared.h @@ -15,11 +15,11 @@ #include "status_node.h" #include "storage_access_info.h" -using boost::shared_ptr; - namespace gree { namespace flare { +using boost::shared_ptr; + typedef shared_ptr shared_cluster_replication; /** From a8131e2ef05837a79493561b0f98481e43142267 Mon Sep 17 00:00:00 2001 From: Yuya YAGUCHI Date: Thu, 20 Nov 2014 14:25:54 +0900 Subject: [PATCH 08/14] Fix connection_iostream::writeline return value --- test/lib/connection_iostream.cc | 3 ++- test/lib/test_op_dump.cc | 12 ++++++------ test/lib/test_op_gat.cc | 6 +++--- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/test/lib/connection_iostream.cc b/test/lib/connection_iostream.cc index cd0d7d43..b2958285 100644 --- a/test/lib/connection_iostream.cc +++ b/test/lib/connection_iostream.cc @@ -149,7 +149,8 @@ int connection_iostream::write(const char* p, int bufsiz, bool buffered) { */ int connection_iostream::writeline(const char* p) { (*_ostream) << p << line_delimiter; - return 0; + int len = strlen(p); + return len + 2; } string connection_sstream::get_output() const { diff --git a/test/lib/test_op_dump.cc b/test/lib/test_op_dump.cc index 7428b81e..2e0d17a2 100644 --- a/test/lib/test_op_dump.cc +++ b/test/lib/test_op_dump.cc @@ -140,13 +140,13 @@ namespace test_op_dump } void run_server_test(test_op_dump& op, int item_num, int item_size, int wait = 0, int bwlimit = 0, - int sleep_precision = 1, int expected = 0) + int sleep_precision = 1) { static const long one_sec = 1000000L; struct timeval start_tv, end_tv; gettimeofday(&start_tv, NULL); - cut_assert_equal_int(expected, op._run_server()); + op._run_server(); gettimeofday(&end_tv, NULL); if (wait == 0 && bwlimit == 0) { @@ -199,7 +199,7 @@ namespace test_op_dump set_dummy_items(st, 1, 10); cut_assert_equal_int(0, op._parse_text_server_parameters()); cut_assert_equal_int(1000000, op._wait); - cut_assert_equal_int(0, op._bwlimit); + cut_assert_equal_int(0, op._bwlimitter.get_bwlimit()); run_server_test(op, 1, 10, 1000000, 0, 100000); } @@ -215,7 +215,7 @@ namespace test_op_dump set_dummy_items(st, 1, 1024); cut_assert_equal_int(0, op._parse_text_server_parameters()); cut_assert_equal_int(0, op._wait); - cut_assert_equal_int(1, op._bwlimit); + cut_assert_equal_int(1, op._bwlimitter.get_bwlimit()); run_server_test(op, 1, 1024, 0, 1, 100000); } @@ -231,7 +231,7 @@ namespace test_op_dump set_dummy_items(st, 1, 1024); cut_assert_equal_int(0, op._parse_text_server_parameters()); cut_assert_equal_int(2000000, op._wait); - cut_assert_equal_int(1, op._bwlimit); + cut_assert_equal_int(1, op._bwlimitter.get_bwlimit()); run_server_test(op, 1, 1024, 2000000, 1, 100000); } @@ -247,7 +247,7 @@ namespace test_op_dump set_dummy_items(st, 1, 1024); cut_assert_equal_int(0, op._parse_text_server_parameters()); cut_assert_equal_int(100, op._wait); - cut_assert_equal_int(1, op._bwlimit); + cut_assert_equal_int(1, op._bwlimitter.get_bwlimit()); run_server_test(op, 1, 1024, 100, 1, 100000); } diff --git a/test/lib/test_op_gat.cc b/test/lib/test_op_gat.cc index 362b12a7..7f86f7a8 100644 --- a/test/lib/test_op_gat.cc +++ b/test/lib/test_op_gat.cc @@ -123,9 +123,9 @@ namespace test_op_gat void test_send_text_result_not_found() { shared_connection c(new connection_sstream(std::string())); test_op_gat op(c); - cut_assert_equal_int(0, op._send_text_result(op::result_not_found, NULL)); - cut_assert_equal_string("NOT_FOUND\r\n", - static_cast(*c).get_output().c_str()); + const char* expected_msg = "NOT_FOUND\r\n"; + cut_assert_equal_int(strlen(expected_msg), op._send_text_result(op::result_not_found, NULL)); + cut_assert_equal_string(expected_msg, static_cast(*c).get_output().c_str()); } void teardown() From 0c9565254bda49c3db21b0d1d52213b345b6794d Mon Sep 17 00:00:00 2001 From: Yuya YAGUCHI Date: Thu, 20 Nov 2014 14:26:47 +0900 Subject: [PATCH 09/14] Add bwlimit to op_dump_key --- src/lib/Makefile.am | 1 + src/lib/bwlimitter.cc | 62 +++++++++++++++++++++++++++++++ src/lib/bwlimitter.h | 33 +++++++++++++++++ src/lib/op_dump.cc | 64 ++++++-------------------------- src/lib/op_dump.h | 10 ++--- src/lib/op_dump_key.cc | 35 +++++++++++++++--- src/lib/op_dump_key.h | 6 ++- test/lib/Makefile.am | 2 +- test/lib/test_op_dump.cc | 12 +++--- test/lib/test_op_dump_key.cc | 72 ++++++++++++++++++++++++++++++++++++ 10 files changed, 225 insertions(+), 72 deletions(-) create mode 100644 src/lib/bwlimitter.cc create mode 100644 src/lib/bwlimitter.h diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index b71d5099..8869a8a1 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -17,6 +17,7 @@ libflare_la_SOURCES = \ binary_network_mapping.h \ binary_request_header.h \ binary_response_header.h \ + bwlimitter.cc \ client.h client.cc \ cluster.h cluster.cc \ cluster_replication.h cluster_replication.cc \ diff --git a/src/lib/bwlimitter.cc b/src/lib/bwlimitter.cc new file mode 100644 index 00000000..ed179025 --- /dev/null +++ b/src/lib/bwlimitter.cc @@ -0,0 +1,62 @@ +/** +* @author Yuya YAGUCHI +* +* $Id$ +*/ + +#include "bwlimitter.h" +#include +#include "logger.h" +namespace gree { +namespace flare { + +bwlimitter::bwlimitter(): + _bwlimit(0), + _total_written(0) { + this->_prior_tv.tv_sec = 0; + this->_prior_tv.tv_usec = 0; +} + +bwlimitter::~bwlimitter() { +} + +// code from rsync 2.6.9 +long bwlimitter::sleep_for_bwlimit(uint64_t bytes_written) { + if (bytes_written == 0) { + return 0; + } + + this->_total_written += bytes_written; + + static const long one_sec = 1000000L; // of microseconds in a second. + + long elapsed_usec; + struct timeval start_tv; + gettimeofday(&start_tv, NULL); + if (this->_prior_tv.tv_sec) { + elapsed_usec = (start_tv.tv_sec - this->_prior_tv.tv_sec) * one_sec + + (start_tv.tv_usec - this->_prior_tv.tv_usec); + this->_total_written -= elapsed_usec * (long)this->_bwlimit / (one_sec/1024); + if (this->_total_written < 0) { + this->_total_written = 0; + } + } + + long sleep_usec = this->_total_written * (one_sec/1024) / this->_bwlimit; + if (sleep_usec < one_sec / 10) { + this->_prior_tv = start_tv; + return 0; + } + + usleep(sleep_usec); + + gettimeofday(&this->_prior_tv, NULL); + elapsed_usec = (this->_prior_tv.tv_sec - start_tv.tv_sec) * one_sec + + (this->_prior_tv.tv_usec - start_tv.tv_usec); + this->_total_written = (sleep_usec - elapsed_usec) * (long)this->_bwlimit / (one_sec/1024); + + return elapsed_usec; +} + +} // namespace flare +} // namespace gree \ No newline at end of file diff --git a/src/lib/bwlimitter.h b/src/lib/bwlimitter.h new file mode 100644 index 00000000..8fb88f93 --- /dev/null +++ b/src/lib/bwlimitter.h @@ -0,0 +1,33 @@ +/** +* @author Yuya YAGUCHI +* +* $Id$ +*/ + +#ifndef BWLIMITTER_H +#define BWLIMITTER_H + +#include +#include + +namespace gree { +namespace flare { + +class bwlimitter { +protected: + uint64_t _bwlimit; + int64_t _total_written; + struct timeval _prior_tv; + +public: + bwlimitter(); + virtual ~bwlimitter(); + long sleep_for_bwlimit(uint64_t bytes_written); + uint64_t get_bwlimit() { return _bwlimit; } + void set_bwlimit(uint64_t bwlimit) { _bwlimit = bwlimit; } +}; + +} // namespace flare +} // namespace gree + +#endif diff --git a/src/lib/op_dump.cc b/src/lib/op_dump.cc index 62c7f287..8075ff09 100644 --- a/src/lib/op_dump.cc +++ b/src/lib/op_dump.cc @@ -7,6 +7,10 @@ * * $Id$ */ +// include order is important to include inttypes.h with __STDC_FORMAT_MACROS defined +#define __STDC_FORMAT_MACROS +#include + #include "op_dump.h" #include "connection_tcp.h" @@ -24,10 +28,7 @@ op_dump::op_dump(shared_connection c, cluster* cl, storage* st): _wait(0), _partition(-1), _partition_size(0), - _bwlimit(0), - _total_written(0) { - this->_prior_tv.tv_sec = 0; - this->_prior_tv.tv_usec = 0; + _bwlimitter() { } /** @@ -44,7 +45,7 @@ op_dump::~op_dump() { /** * send client request */ -int op_dump::run_client(int wait, int partition, int parition_size, int bwlimit) { +int op_dump::run_client(int wait, int partition, int parition_size, uint64_t bwlimit) { if (this->_run_client(wait, partition, parition_size, bwlimit) < 0) { return -1; } @@ -113,8 +114,8 @@ int op_dump::_parse_text_server_parameters() { n += util::next_digit(p+n, q, sizeof(q)); if (q[0]) { try { - this->_bwlimit = boost::lexical_cast(q); - log_debug("storing bwlimit [%d]", this->_bwlimit); + this->_bwlimitter.set_bwlimit(boost::lexical_cast(q)); + log_debug("storing bwlimit [%d]", this->_bwlimitter.get_bwlimit()); } catch (boost::bad_lexical_cast e) { log_debug("invalid bwlimit (bwlimit=%s)", q); throw -1; @@ -143,9 +144,6 @@ int op_dump::_parse_text_server_parameters() { } int op_dump::_run_server() { - this->_prior_tv.tv_sec = 0; - this->_prior_tv.tv_usec = 0; - if (!this->_thread) { return this->_send_result(result_server_error, "thread not set"); } @@ -195,8 +193,8 @@ int op_dump::_run_server() { // wait long elapsed_usec = 0; - if (this->_bwlimit > 0) { - elapsed_usec = this->_sleep_for_bwlimit(n); + if (this->_bwlimitter.get_bwlimit() > 0) { + elapsed_usec = this->_bwlimitter.sleep_for_bwlimit(static_cast(n)); } if (this->_wait > 0 && this->_wait-elapsed_usec > 0) { log_debug("wait for %d usec", this->_wait); @@ -221,10 +219,10 @@ int op_dump::_run_server() { } } -int op_dump::_run_client(int wait, int partition, int partition_size, int bwlimit) { +int op_dump::_run_client(int wait, int partition, int partition_size, uint64_t bwlimit) { char request[BUFSIZ]; if (bwlimit > 0) { - snprintf(request, sizeof(request), "dump %d %d %d %d", wait, partition, partition_size, bwlimit); + snprintf(request, sizeof(request), "dump %d %d %d %" PRIu64, wait, partition, partition_size, bwlimit); } else { snprintf(request, sizeof(request), "dump %d %d %d", wait, partition, partition_size); // Backward compatibility. } @@ -296,44 +294,6 @@ int op_dump::_parse_text_client_parameters() { return 0; } - -// code from rsync 2.6.9 -long op_dump::_sleep_for_bwlimit(int bytes_written) { - if (bytes_written == 0) { - return 0; - } - - this->_total_written += bytes_written; - - static const long one_sec = 1000000L; // of microseconds in a second. - - long elapsed_usec; - struct timeval start_tv; - gettimeofday(&start_tv, NULL); - if (this->_prior_tv.tv_sec) { - elapsed_usec = (start_tv.tv_sec - this->_prior_tv.tv_sec) * one_sec - + (start_tv.tv_usec - this->_prior_tv.tv_usec); - this->_total_written -= elapsed_usec * this->_bwlimit / (one_sec/1024); - if (this->_total_written < 0) { - this->_total_written = 0; - } - } - - long sleep_usec = this->_total_written * (one_sec/1024) / this->_bwlimit; - if (sleep_usec < one_sec / 10) { - this->_prior_tv = start_tv; - return 0; - } - - usleep(sleep_usec); - - gettimeofday(&this->_prior_tv, NULL); - elapsed_usec = (this->_prior_tv.tv_sec - start_tv.tv_sec) * one_sec - + (this->_prior_tv.tv_usec - start_tv.tv_usec); - this->_total_written = (sleep_usec - elapsed_usec) * this->_bwlimit / (one_sec/1024); - - return elapsed_usec; -} // }}} // {{{ private methods diff --git a/src/lib/op_dump.h b/src/lib/op_dump.h index 2e553f9a..a55fc63a 100644 --- a/src/lib/op_dump.h +++ b/src/lib/op_dump.h @@ -11,6 +11,7 @@ #include "op.h" #include "cluster.h" #include "storage.h" +#include "bwlimitter.h" using namespace std; @@ -27,22 +28,19 @@ class op_dump : public op { int _wait; int _partition; int _partition_size; - int _bwlimit; - int _total_written; - struct timeval _prior_tv; + bwlimitter _bwlimitter; public: op_dump(shared_connection c, cluster* cl, storage* st); virtual ~op_dump(); - virtual int run_client(int wait, int partition, int partition_size, int bwlimit = 0); + virtual int run_client(int wait, int partition, int partition_size, uint64_t bwlimit = 0); protected: virtual int _parse_text_server_parameters(); virtual int _run_server(); - virtual int _run_client(int wait, int partition, int partition_size, int bwlimit); + virtual int _run_client(int wait, int partition, int partition_size, uint64_t bwlimit); virtual int _parse_text_client_parameters(); - virtual long _sleep_for_bwlimit(int bytes_written); }; } // namespace flare diff --git a/src/lib/op_dump_key.cc b/src/lib/op_dump_key.cc index 772f1561..572dffe8 100644 --- a/src/lib/op_dump_key.cc +++ b/src/lib/op_dump_key.cc @@ -7,6 +7,10 @@ * * $Id$ */ +// include order is important to include inttypes.h with __STDC_FORMAT_MACROS defined +#define __STDC_FORMAT_MACROS +#include + #include "op_dump_key.h" namespace gree { @@ -21,7 +25,8 @@ op_dump_key::op_dump_key(shared_connection c, cluster* cl, storage* st): _cluster(cl), _storage(st), _partition(-1), - _partition_size(0) { + _partition_size(0), + _bwlimitter() { } /** @@ -38,8 +43,8 @@ op_dump_key::~op_dump_key() { /** * send client request */ -int op_dump_key::run_client(int partition, int parition_size) { - if (this->_run_client(partition, parition_size) < 0) { +int op_dump_key::run_client(int partition, int parition_size, uint64_t bwlimit) { + if (this->_run_client(partition, parition_size, bwlimit) < 0) { return -1; } @@ -87,6 +92,18 @@ int op_dump_key::_parse_text_server_parameters() { } } + // bwlimit (optional) + n += util::next_digit(p+n, q, sizeof(q)); + if (q[0]) { + try { + this->_bwlimitter.set_bwlimit(boost::lexical_cast(q)); + log_debug("storing bwlimit [%d]", this->_bwlimitter.get_bwlimit()); + } catch (boost::bad_lexical_cast e) { + log_debug("invalid bwlimit (bwlimit=%s)", q); + throw -1; + } + } + if (this->_partition >= 0) { if (this->_partition_size <= 0 || this->_partition_size < this->_partition+1) { log_debug("invalid partition_size (partition=%d, partition_size=%d)", this->_partition, this->_partition_size); @@ -132,6 +149,9 @@ int op_dump_key::_run_server() { if (n < 0) { break; } + if (this->_bwlimitter.get_bwlimit() > 0) { + this->_bwlimitter.sleep_for_bwlimit(static_cast(n)); + } } this->_storage->iter_end(); @@ -142,9 +162,14 @@ int op_dump_key::_run_server() { return this->_send_result(result_end); } -int op_dump_key::_run_client(int partition, int partition_size) { +int op_dump_key::_run_client(int partition, int partition_size, uint64_t bwlimit) { char request[BUFSIZ]; - snprintf(request, sizeof(request), "dump_key %d %d", partition, partition_size); + + if (bwlimit > 0) { + snprintf(request, sizeof(request), "dump_key %d %d %" PRIu64, partition, partition_size, bwlimit); + } else { + snprintf(request, sizeof(request), "dump_key %d %d", partition, partition_size); + } return this->_send_request(request); } diff --git a/src/lib/op_dump_key.h b/src/lib/op_dump_key.h index daeb47b5..478e19b2 100644 --- a/src/lib/op_dump_key.h +++ b/src/lib/op_dump_key.h @@ -11,6 +11,7 @@ #include "op.h" #include "cluster.h" #include "storage.h" +#include "bwlimitter.h" using namespace std; @@ -26,17 +27,18 @@ class op_dump_key : public op { storage* _storage; int _partition; int _partition_size; + bwlimitter _bwlimitter; public: op_dump_key(shared_connection c, cluster* cl, storage* st); virtual ~op_dump_key(); - virtual int run_client(int partition, int partition_size); + virtual int run_client(int partition, int partition_size, uint64_t bwlimit); protected: virtual int _parse_text_server_parameters(); virtual int _run_server(); - virtual int _run_client(int partition, int partition_size); + virtual int _run_client(int partition, int partition_size, uint64_t bwlimit); virtual int _parse_text_client_parameters(); }; diff --git a/test/lib/Makefile.am b/test/lib/Makefile.am index 380a67a5..99c7122d 100644 --- a/test/lib/Makefile.am +++ b/test/lib/Makefile.am @@ -100,7 +100,7 @@ test_op_cas_la_SOURCES = test_op_cas.cc connection_iostream.cc test_op_decr_la_SOURCES = test_op_decr.cc connection_iostream.cc test_op_delete_la_SOURCES = test_op_delete.cc connection_iostream.cc test_op_dump_la_SOURCES = test_op_dump.cc connection_iostream.cc mock_storage.cc -test_op_dump_key_la_SOURCES = test_op_dump_key.cc connection_iostream.cc +test_op_dump_key_la_SOURCES = test_op_dump_key.cc connection_iostream.cc mock_storage.cc test_op_error_la_SOURCES = test_op_error.cc connection_iostream.cc test_op_flush_all_la_SOURCES = test_op_flush_all.cc connection_iostream.cc test_op_gat_la_SOURCES = test_op_gat.cc connection_iostream.cc diff --git a/test/lib/test_op_dump.cc b/test/lib/test_op_dump.cc index 2e0d17a2..013d7404 100644 --- a/test/lib/test_op_dump.cc +++ b/test/lib/test_op_dump.cc @@ -22,7 +22,7 @@ namespace test_op_dump EXPOSE(op_dump, _wait); EXPOSE(op_dump, _partition); EXPOSE(op_dump, _partition_size); - EXPOSE(op_dump, _bwlimit); + EXPOSE(op_dump, _bwlimitter); TEST_OP_CLASS_END; void setup() @@ -39,7 +39,7 @@ namespace test_op_dump cut_assert_equal_int(0, op._wait); cut_assert_equal_int(-1, op._partition); cut_assert_equal_int(0, op._partition_size); - cut_assert_equal_int(0, op._bwlimit); + cut_assert_equal_int(0, op._bwlimitter.get_bwlimit()); } void test_parse_text_server_parameters_wait() @@ -50,7 +50,7 @@ namespace test_op_dump cut_assert_equal_int(1, op._wait); cut_assert_equal_int(-1, op._partition); cut_assert_equal_int(0, op._partition_size); - cut_assert_equal_int(0, op._bwlimit); + cut_assert_equal_int(0, op._bwlimitter.get_bwlimit()); } void test_parse_text_server_parameters_wait_partition() @@ -71,7 +71,7 @@ namespace test_op_dump cut_assert_equal_int(1, op._wait); cut_assert_equal_int(-1, op._partition); cut_assert_equal_int(0, op._partition_size); - cut_assert_equal_int(0, op._bwlimit); + cut_assert_equal_int(0, op._bwlimitter.get_bwlimit()); } { // partition > 0 -> partition_size > partition + 1 @@ -81,7 +81,7 @@ namespace test_op_dump cut_assert_equal_int(1, op._wait); cut_assert_equal_int(2, op._partition); cut_assert_equal_int(5, op._partition_size); - cut_assert_equal_int(0, op._bwlimit); + cut_assert_equal_int(0, op._bwlimitter.get_bwlimit()); } } @@ -110,7 +110,7 @@ namespace test_op_dump cut_assert_equal_int(1, op._wait); cut_assert_equal_int(-1, op._partition); cut_assert_equal_int(0, op._partition_size); - cut_assert_equal_int(5, op._bwlimit); + cut_assert_equal_int(5, op._bwlimitter.get_bwlimit()); } void set_dummy_items(mock_storage& st, int item_num = 1, int item_size = 1) diff --git a/test/lib/test_op_dump_key.cc b/test/lib/test_op_dump_key.cc index 28176fd7..e17b00f1 100644 --- a/test/lib/test_op_dump_key.cc +++ b/test/lib/test_op_dump_key.cc @@ -5,9 +5,11 @@ */ #include +#include #include "test_op.h" #include "connection_iostream.h" +#include "mock_storage.h" #include #include @@ -17,8 +19,10 @@ using namespace gree::flare; namespace test_op_dump_key { TEST_OP_CLASS_BEGIN(op_dump_key, NULL, NULL) + test_op_dump_key(shared_connection c, cluster* cl, storage* st) : op_dump_key(c, cl, st) { }; EXPOSE(op_dump_key, _partition); EXPOSE(op_dump_key, _partition_size); + EXPOSE(op_dump_key, _bwlimitter); TEST_OP_CLASS_END; void setup() @@ -34,6 +38,7 @@ namespace test_op_dump_key cut_assert_equal_int(0, op._parse_text_server_parameters()); cut_assert_equal_int(-1, op._partition); cut_assert_equal_int(0, op._partition_size); + cut_assert_equal_int(0, op._bwlimitter.get_bwlimit()); } void test_parse_text_server_parameters_partition() @@ -42,6 +47,7 @@ namespace test_op_dump_key shared_connection c(new connection_sstream(" 2\r\n")); test_op_dump_key op(c); cut_assert_equal_int(-1, op._parse_text_server_parameters()); + cut_assert_equal_int(0, op._bwlimitter.get_bwlimit()); } void test_parse_text_server_parameters_partition_size() @@ -53,6 +59,7 @@ namespace test_op_dump_key cut_assert_equal_int(0, op._parse_text_server_parameters()); cut_assert_equal_int(-1, op._partition); cut_assert_equal_int(0, op._partition_size); + cut_assert_equal_int(0, op._bwlimitter.get_bwlimit()); } { // partition > 0 -> partition_size > partition + 1 @@ -61,9 +68,74 @@ namespace test_op_dump_key cut_assert_equal_int(0, op._parse_text_server_parameters()); cut_assert_equal_int(2, op._partition); cut_assert_equal_int(5, op._partition_size); + cut_assert_equal_int(0, op._bwlimitter.get_bwlimit()); } } + void test_parse_text_server_parameters_bwlimit() + { + shared_connection c(new connection_sstream(" 2 5 1000\r\n")); + test_op_dump_key op(c); + cut_assert_equal_int(0, op._parse_text_server_parameters()); + cut_assert_equal_int(2, op._partition); + cut_assert_equal_int(5, op._partition_size); + cut_assert_equal_int(1000, op._bwlimitter.get_bwlimit()); + } + + void set_dummy_items(mock_storage& st, int item_num = 1, int item_key_size = 1) + { + for (int i = 0; i < item_num; i++) { + ostringstream key; + key << setfill('k') << std::setw(item_key_size) << i; + st.set_helper(key.str(), string("o"), 0); + } + } + + void run_server_test(test_op_dump_key& op, int item_num, int item_key_size, int bwlimit = 0, int sleep_precision = 1) + { + static const long one_sec = 1000000L; + static const long delta = 100000L; + struct timeval start_tv, end_tv; + + gettimeofday(&start_tv, NULL); + op._run_server(); + gettimeofday(&end_tv, NULL); + + if (bwlimit == 0) { + return; + } + + long elapsed_usec = ((end_tv.tv_sec - start_tv.tv_sec) * one_sec + (end_tv.tv_usec - start_tv.tv_usec)); + long estimated_bwlimit_usec = 0; + if (bwlimit != 0) { + estimated_bwlimit_usec = item_num * (item_key_size + 8) * one_sec / (bwlimit * 1024); + } + + long actual_sleep = elapsed_usec / sleep_precision; + long expected_sleep = estimated_bwlimit_usec / sleep_precision; + cut_assert(abs(actual_sleep - expected_sleep) < delta); + } + + void test_run_server() + { + static const long one_sec = 1000000L; + int bwlimit = 1000; // KB + int item_key_size = 1024; + int item_num = bwlimit * 1024 / (item_key_size + 8); + + shared_connection c(new connection_sstream(" -1 0 1000\r\n")); + cluster cl(NULL, "", 0); + mock_storage st("", 0, 0); + thread_pool tp(1); + test_op_dump_key op(c, &cl, &st); + op.set_thread(shared_thread(new gree::flare::thread(&tp))); + set_dummy_items(st, item_num, item_key_size); + cut_assert_equal_int(item_num, st.count()); + cut_assert_equal_int(0, op._parse_text_server_parameters()); + cut_assert_equal_int(bwlimit, op._bwlimitter.get_bwlimit()); + run_server_test(op, item_num, item_key_size, bwlimit, 1); + } + void teardown() { delete stats_object; From 681a3187e02b43628cdc2dcfb8d197d19bac9d80 Mon Sep 17 00:00:00 2001 From: Yuya YAGUCHI Date: Fri, 21 Nov 2014 18:43:45 +0900 Subject: [PATCH 10/14] Refactoring around bwlimitter --- configure.ac | 1 + src/lib/bwlimitter.cc | 2 +- src/lib/handler_dump_replication.cc | 63 +++++------------------------ src/lib/handler_dump_replication.h | 4 +- src/lib/op_dump.cc | 9 +---- src/lib/op_dump_key.cc | 8 +--- 6 files changed, 18 insertions(+), 69 deletions(-) diff --git a/configure.ac b/configure.ac index a42f83fb..8b3edc37 100644 --- a/configure.ac +++ b/configure.ac @@ -163,6 +163,7 @@ fi # And others... AC_CHECK_FUNC(clock_gettime,[AC_DEFINE([HAVE_CLOCK_GETTIME], [], [have clock_gettime or not])]) +AC_DEFINE([__STDC_FORMAT_MACROS], [1], [enable stdc format macros]) # Debug options diff --git a/src/lib/bwlimitter.cc b/src/lib/bwlimitter.cc index ed179025..ae373123 100644 --- a/src/lib/bwlimitter.cc +++ b/src/lib/bwlimitter.cc @@ -22,7 +22,7 @@ bwlimitter::~bwlimitter() { // code from rsync 2.6.9 long bwlimitter::sleep_for_bwlimit(uint64_t bytes_written) { - if (bytes_written == 0) { + if (this->_bwlimit == 0 || bytes_written == 0) { return 0; } diff --git a/src/lib/handler_dump_replication.cc b/src/lib/handler_dump_replication.cc index 7866e2c6..c9d22434 100644 --- a/src/lib/handler_dump_replication.cc +++ b/src/lib/handler_dump_replication.cc @@ -7,9 +7,11 @@ * * $Id$ */ + #include "handler_dump_replication.h" #include "connection_tcp.h" #include "op_set.h" +#include namespace gree { namespace flare { @@ -27,9 +29,7 @@ handler_dump_replication::handler_dump_replication(shared_thread t, cluster* cl, _storage(st), _replication_server_name(server_name), _replication_server_port(server_port), - _total_written(0) { - this->_prior_tv.tv_sec = 0; - this->_prior_tv.tv_usec = 0; + _bwlimitter() { } /** @@ -59,9 +59,6 @@ int handler_dump_replication::run() { this->_thread->set_state("execute"); this->_thread->set_op("dump"); - this->_prior_tv.tv_sec = 0; - this->_prior_tv.tv_usec = 0; - if (this->_storage->iter_begin() < 0) { log_err("database busy", 0); return -1; @@ -72,10 +69,10 @@ int handler_dump_replication::run() { int partition = n.node_partition; int partition_size = this->_cluster->get_node_partition_map_size(); int wait = this->_cluster->get_reconstruction_interval(); - int bwlimit = this->_cluster->get_reconstruction_bwlimit(); + this->_bwlimitter.set_bwlimit(static_cast(this->_cluster->get_reconstruction_bwlimit())); log_notice("starting dump replication (dest=%s:%d, partition=%d, partition_size=%d, interval=%d, bwlimit=%d)", - this->_replication_server_name.c_str(), this->_replication_server_port, partition, partition_size, wait, bwlimit); + this->_replication_server_name.c_str(), this->_replication_server_port, partition, partition_size, wait, this->_bwlimitter.get_bwlimit()); storage::entry e; storage::iteration i; while ((i = this->_storage->iter_next(e.key)) == storage::iteration_continue @@ -111,10 +108,7 @@ int handler_dump_replication::run() { delete p; // wait - long elapsed_usec = 0; - if (bwlimit > 0) { - elapsed_usec = this->_sleep_for_bwlimit(e.size, bwlimit); - } + long elapsed_usec = this->_bwlimitter.sleep_for_bwlimit(e.size); if (wait > 0 && wait-elapsed_usec > 0) { log_debug("wait for %d usec", wait); usleep(wait-elapsed_usec); @@ -123,12 +117,12 @@ int handler_dump_replication::run() { this->_storage->iter_end(); if (!this->_thread->is_shutdown_request()) { - log_notice("dump replication completed (dest=%s:%d, partition=%d, partition_size=%d, interval=%d, bwlimit=%d)", - this->_replication_server_name.c_str(), this->_replication_server_port, partition, partition_size, wait, bwlimit); + log_notice("dump replication completed (dest=%s:%d, partition=%d, partition_size=%d, interval=%d, bwlimit=%" PRIu64 ")", + this->_replication_server_name.c_str(), this->_replication_server_port, partition, partition_size, wait, this->_bwlimitter.get_bwlimit()); } else { this->_thread->set_state("shutdown"); - log_warning("dump replication interruptted (dest=%s:%d, partition=%d, partition_size=%d, interval=%d, bwlimit=%d)", - this->_replication_server_name.c_str(), this->_replication_server_port, partition, partition_size, wait, bwlimit); + log_warning("dump replication interruptted (dest=%s:%d, partition=%d, partition_size=%d, interval=%d, bwlimit=%" PRIu64 ")", + this->_replication_server_name.c_str(), this->_replication_server_port, partition, partition_size, wait, this->_bwlimitter.get_bwlimit()); } return 0; } @@ -138,43 +132,6 @@ int handler_dump_replication::run() { // }}} // {{{ private methods -// code from rsync 2.6.9 -long handler_dump_replication::_sleep_for_bwlimit(int bytes_written, int bwlimit) { - if (bytes_written == 0) { - return 0; - } - - this->_total_written += bytes_written; - - static const long one_sec = 1000000L; // of microseconds in a second. - - long elapsed_usec; - struct timeval start_tv; - gettimeofday(&start_tv, NULL); - if (this->_prior_tv.tv_sec) { - elapsed_usec = (start_tv.tv_sec - this->_prior_tv.tv_sec) * one_sec - + (start_tv.tv_usec - this->_prior_tv.tv_usec); - this->_total_written -= elapsed_usec * bwlimit / (one_sec/1024); - if (this->_total_written < 0) { - this->_total_written = 0; - } - } - - long sleep_usec = this->_total_written * (one_sec/1024) / bwlimit; - if (sleep_usec < one_sec / 10) { - this->_prior_tv = start_tv; - return 0; - } - - usleep(sleep_usec); - - gettimeofday(&this->_prior_tv, NULL); - elapsed_usec = (this->_prior_tv.tv_sec - start_tv.tv_sec) * one_sec - + (this->_prior_tv.tv_usec - start_tv.tv_usec); - this->_total_written = (sleep_usec - elapsed_usec) * bwlimit / (one_sec/1024); - - return elapsed_usec; -} // }}} } // namespace flare diff --git a/src/lib/handler_dump_replication.h b/src/lib/handler_dump_replication.h index ab832605..e0c966f6 100644 --- a/src/lib/handler_dump_replication.h +++ b/src/lib/handler_dump_replication.h @@ -14,6 +14,7 @@ #include "cluster.h" #include "storage.h" #include "thread_handler.h" +#include "bwlimitter.h" using namespace std; @@ -29,9 +30,8 @@ class handler_dump_replication : public thread_handler { storage* _storage; const string _replication_server_name; const int _replication_server_port; - int _total_written; shared_connection _connection; - struct timeval _prior_tv; + bwlimitter _bwlimitter; public: handler_dump_replication(shared_thread t, cluster* cl, storage* st, string server_name, int server_port); diff --git a/src/lib/op_dump.cc b/src/lib/op_dump.cc index 8075ff09..57e00f73 100644 --- a/src/lib/op_dump.cc +++ b/src/lib/op_dump.cc @@ -7,12 +7,10 @@ * * $Id$ */ -// include order is important to include inttypes.h with __STDC_FORMAT_MACROS defined -#define __STDC_FORMAT_MACROS -#include #include "op_dump.h" #include "connection_tcp.h" +#include namespace gree { namespace flare { @@ -192,10 +190,7 @@ int op_dump::_run_server() { } // wait - long elapsed_usec = 0; - if (this->_bwlimitter.get_bwlimit() > 0) { - elapsed_usec = this->_bwlimitter.sleep_for_bwlimit(static_cast(n)); - } + long elapsed_usec = this->_bwlimitter.sleep_for_bwlimit(static_cast(n)); if (this->_wait > 0 && this->_wait-elapsed_usec > 0) { log_debug("wait for %d usec", this->_wait); usleep(this->_wait-elapsed_usec); diff --git a/src/lib/op_dump_key.cc b/src/lib/op_dump_key.cc index 572dffe8..bd0e5fe3 100644 --- a/src/lib/op_dump_key.cc +++ b/src/lib/op_dump_key.cc @@ -7,11 +7,9 @@ * * $Id$ */ -// include order is important to include inttypes.h with __STDC_FORMAT_MACROS defined -#define __STDC_FORMAT_MACROS -#include #include "op_dump_key.h" +#include namespace gree { namespace flare { @@ -149,9 +147,7 @@ int op_dump_key::_run_server() { if (n < 0) { break; } - if (this->_bwlimitter.get_bwlimit() > 0) { - this->_bwlimitter.sleep_for_bwlimit(static_cast(n)); - } + this->_bwlimitter.sleep_for_bwlimit(static_cast(n)); } this->_storage->iter_end(); From c508d6aa33ada5ed5f3f56dd65dc3a7188cbf760 Mon Sep 17 00:00:00 2001 From: Kiyoshi Ikehara Date: Thu, 2 Oct 2014 11:56:11 +0900 Subject: [PATCH 11/14] Introduce a rwlock for write operations to avoid taking lots of read locks during dump operation --- src/lib/storage.cc | 2 ++ src/lib/storage.h | 2 +- src/lib/storage_kch.cc | 15 +++++++++++++-- src/lib/storage_tcb.cc | 15 +++++++++++++-- src/lib/storage_tch.cc | 15 +++++++++++++-- 5 files changed, 42 insertions(+), 7 deletions(-) diff --git a/src/lib/storage.cc b/src/lib/storage.cc index 09eda3de..17e99441 100644 --- a/src/lib/storage.cc +++ b/src/lib/storage.cc @@ -37,6 +37,7 @@ storage::storage(string data_dir, int mutex_slot_size, int header_cache_size): } pthread_mutex_init(&_mutex_iter_lock, NULL); pthread_rwlock_init(&this->_mutex_header_cache_map, NULL); + pthread_rwlock_init(&this->_mutex_wholelock, NULL); this->_header_cache_map = tcmapnew(); } @@ -52,6 +53,7 @@ storage::~storage() { this->_mutex_slot = NULL; pthread_mutex_destroy(&_mutex_iter_lock); pthread_rwlock_destroy(&_mutex_header_cache_map); + pthread_rwlock_destroy(&_mutex_wholelock); if (this->_header_cache_map) { tcmapdel(this->_header_cache_map); diff --git a/src/lib/storage.h b/src/lib/storage.h index 45ba4e0e..d2e26656 100644 --- a/src/lib/storage.h +++ b/src/lib/storage.h @@ -188,7 +188,7 @@ class storage { TCMAP* _header_cache_map; pthread_rwlock_t _mutex_header_cache_map; storage_listener* _listener; - + pthread_rwlock_t _mutex_wholelock; public: storage(string data_dir, int mutex_slot_size, int header_cache_size); diff --git a/src/lib/storage_kch.cc b/src/lib/storage_kch.cc index 5d95249a..b2f85fc3 100644 --- a/src/lib/storage_kch.cc +++ b/src/lib/storage_kch.cc @@ -115,6 +115,7 @@ int storage_kch::set(entry &e, result &r, int b) { uint8_t *p = NULL; try { if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_rdlock(&this->_mutex_wholelock); pthread_rwlock_wrlock(&this->_mutex_slot[mutex_index]); } @@ -274,12 +275,14 @@ int storage_kch::set(entry &e, result &r, int b) { delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return error; } delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return 0; @@ -300,6 +303,7 @@ int storage_kch::incr(entry &e, uint64_t value, result &r, bool increment, int b bool expired = false; try { if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_rdlock(&this->_mutex_wholelock); pthread_rwlock_wrlock(&this->_mutex_slot[mutex_index]); } @@ -392,6 +396,7 @@ int storage_kch::incr(entry &e, uint64_t value, result &r, bool increment, int b delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } if (expired) { @@ -403,6 +408,7 @@ int storage_kch::incr(entry &e, uint64_t value, result &r, bool increment, int b delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return 0; @@ -486,6 +492,7 @@ int storage_kch::remove(entry &e, result &r, int b) { try { if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_rdlock(&this->_mutex_wholelock); pthread_rwlock_wrlock(&this->_mutex_slot[mutex_index]); } @@ -531,11 +538,13 @@ int storage_kch::remove(entry &e, result &r, int b) { } catch (int error) { if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return error; } if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return 0; @@ -545,6 +554,7 @@ int storage_kch::truncate(int b) { log_info("truncating all data", 0); if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_wrlock(&this->_mutex_wholelock); this->_mutex_slot_wrlock_all(); } @@ -559,6 +569,7 @@ int storage_kch::truncate(int b) { if ((b & behavior_skip_lock) == 0) { this->_mutex_slot_unlock_all(); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return r; @@ -590,7 +601,7 @@ storage::iteration storage_kch::iter_next(string &key) { bool fetched = false; - this->_mutex_slot_rdlock_all(); + pthread_rwlock_wrlock(&this->_mutex_wholelock); { if (this->_iter_first) { this->_cursor->jump(); @@ -600,7 +611,7 @@ storage::iteration storage_kch::iter_next(string &key) { } fetched = this->_cursor->get_key(&key); } - this->_mutex_slot_unlock_all(); + pthread_rwlock_unlock(&this->_mutex_wholelock); if (!fetched) { BasicDB::Error error = this->_db->error(); diff --git a/src/lib/storage_tcb.cc b/src/lib/storage_tcb.cc index 869a6376..d05cec05 100644 --- a/src/lib/storage_tcb.cc +++ b/src/lib/storage_tcb.cc @@ -114,6 +114,7 @@ int storage_tcb::set(entry& e, result& r, int b) { uint8_t* p = NULL; try { if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_rdlock(&this->_mutex_wholelock); pthread_rwlock_wrlock(&this->_mutex_slot[mutex_index]); } @@ -276,12 +277,14 @@ int storage_tcb::set(entry& e, result& r, int b) { delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return error; } delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return 0; @@ -302,6 +305,7 @@ int storage_tcb::incr(entry& e, uint64_t value, result& r, bool increment, int b bool expired = false; try { if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_rdlock(&this->_mutex_wholelock); pthread_rwlock_wrlock(&this->_mutex_slot[mutex_index]); } @@ -405,12 +409,14 @@ int storage_tcb::incr(entry& e, uint64_t value, result& r, bool increment, int b } if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return error; } delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return 0; @@ -495,6 +501,7 @@ int storage_tcb::remove(entry& e, result& r, int b) { try { if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_rdlock(&this->_mutex_wholelock); pthread_rwlock_wrlock(&this->_mutex_slot[mutex_index]); } @@ -540,11 +547,13 @@ int storage_tcb::remove(entry& e, result& r, int b) { } catch (int error) { if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return error; } if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return 0; @@ -554,6 +563,7 @@ int storage_tcb::truncate(int b) { log_info("truncating all data", 0); if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_wrlock(&this->_mutex_wholelock); this->_mutex_slot_wrlock_all(); } @@ -568,6 +578,7 @@ int storage_tcb::truncate(int b) { if ((b & behavior_skip_lock) == 0) { this->_mutex_slot_unlock_all(); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return r; @@ -600,7 +611,7 @@ storage::iteration storage_tcb::iter_next(string& key) { int len = 0; char* p = NULL; - this->_mutex_slot_rdlock_all(); + pthread_rwlock_wrlock(&this->_mutex_wholelock); { if (this->_iter_first) { tcbdbcurfirst(this->_cursor); @@ -610,7 +621,7 @@ storage::iteration storage_tcb::iter_next(string& key) { } p = static_cast(tcbdbcurkey(this->_cursor, &len)); } - this->_mutex_slot_unlock_all(); + pthread_rwlock_unlock(&this->_mutex_wholelock); if (p == NULL) { int ecode = tcbdbecode(this->_db); diff --git a/src/lib/storage_tch.cc b/src/lib/storage_tch.cc index 14db1f68..316c11f8 100644 --- a/src/lib/storage_tch.cc +++ b/src/lib/storage_tch.cc @@ -114,6 +114,7 @@ int storage_tch::set(entry& e, result& r, int b) { uint8_t* p = NULL; try { if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_rdlock(&this->_mutex_wholelock); pthread_rwlock_wrlock(&this->_mutex_slot[mutex_index]); } @@ -275,12 +276,14 @@ int storage_tch::set(entry& e, result& r, int b) { delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return error; } delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return 0; @@ -301,6 +304,7 @@ int storage_tch::incr(entry& e, uint64_t value, result& r, bool increment, int b bool expired = false; try { if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_rdlock(&this->_mutex_wholelock); pthread_rwlock_wrlock(&this->_mutex_slot[mutex_index]); } @@ -400,6 +404,7 @@ int storage_tch::incr(entry& e, uint64_t value, result& r, bool increment, int b delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } if (expired) { @@ -411,6 +416,7 @@ int storage_tch::incr(entry& e, uint64_t value, result& r, bool increment, int b delete[] p; if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return 0; @@ -495,6 +501,7 @@ int storage_tch::remove(entry& e, result& r, int b) { try { if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_rdlock(&this->_mutex_wholelock); pthread_rwlock_wrlock(&this->_mutex_slot[mutex_index]); } @@ -540,11 +547,13 @@ int storage_tch::remove(entry& e, result& r, int b) { } catch (int error) { if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return error; } if ((b & behavior_skip_lock) == 0) { pthread_rwlock_unlock(&this->_mutex_slot[mutex_index]); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return 0; @@ -554,6 +563,7 @@ int storage_tch::truncate(int b) { log_info("truncating all data", 0); if ((b & behavior_skip_lock) == 0) { + pthread_rwlock_wrlock(&this->_mutex_wholelock); this->_mutex_slot_wrlock_all(); } @@ -568,6 +578,7 @@ int storage_tch::truncate(int b) { if ((b & behavior_skip_lock) == 0) { this->_mutex_slot_unlock_all(); + pthread_rwlock_unlock(&this->_mutex_wholelock); } return r; @@ -603,11 +614,11 @@ storage::iteration storage_tch::iter_next(string& key) { int len = 0; char* p = NULL; - this->_mutex_slot_rdlock_all(); + pthread_rwlock_wrlock(&this->_mutex_wholelock); { p = static_cast(tchdbiternext(this->_db, &len)); } - this->_mutex_slot_unlock_all(); + pthread_rwlock_unlock(&this->_mutex_wholelock); if (p == NULL) { int ecode = tchdbecode(this->_db); From 281863ac4dbabdc7ef1fe399287bec0b42033d13 Mon Sep 17 00:00:00 2001 From: Yuji Kamiya Date: Sun, 7 Dec 2014 15:00:12 +0900 Subject: [PATCH 12/14] add copyright messages in each file --- COPYRIGHT | 18 +++++++++++ src/flared/flared.cc | 19 +++++++++++ src/flared/flared.h | 19 +++++++++++ src/flared/handler_alarm.cc | 19 +++++++++++ src/flared/handler_alarm.h | 19 +++++++++++ src/flared/handler_mysql_replication.cc | 19 +++++++++++ src/flared/handler_mysql_replication.h | 19 +++++++++++ src/flared/handler_request.cc | 19 +++++++++++ src/flared/handler_request.h | 19 +++++++++++ src/flared/ini_option.cc | 19 +++++++++++ src/flared/ini_option.h | 19 +++++++++++ src/flared/op_parser_binary_node.cc | 19 +++++++++++ src/flared/op_parser_binary_node.h | 19 +++++++++++ src/flared/op_parser_text_node.cc | 19 +++++++++++ src/flared/op_parser_text_node.h | 19 +++++++++++ src/flared/op_show_node.cc | 19 +++++++++++ src/flared/op_show_node.h | 19 +++++++++++ src/flared/op_stats_node.cc | 19 +++++++++++ src/flared/op_stats_node.h | 19 +++++++++++ src/flared/show_node.cc | 19 +++++++++++ src/flared/show_node.h | 19 +++++++++++ src/flared/stats_node.cc | 19 +++++++++++ src/flared/stats_node.h | 19 +++++++++++ src/flared/status_node.cc | 19 +++++++++++ src/flared/status_node.h | 19 +++++++++++ src/flarefs/flarefs.cc | 19 +++++++++++ src/flarefs/flarefs.h | 19 +++++++++++ src/flarefs/fuse_fs.cc | 19 +++++++++++ src/flarefs/fuse_fs.h | 19 +++++++++++ src/flarefs/fuse_fs_entry.cc | 19 +++++++++++ src/flarefs/fuse_fs_entry.h | 19 +++++++++++ src/flarefs/fuse_fs_entry_dir.cc | 19 +++++++++++ src/flarefs/fuse_fs_entry_dir.h | 19 +++++++++++ src/flarefs/fuse_fs_entry_file.cc | 19 +++++++++++ src/flarefs/fuse_fs_entry_file.h | 19 +++++++++++ src/flarefs/fuse_impl.cc | 19 +++++++++++ src/flarefs/fuse_impl.h | 19 +++++++++++ src/flarefs/ini_option.cc | 19 +++++++++++ src/flarefs/ini_option.h | 19 +++++++++++ src/flarei/flarei.cc | 19 +++++++++++ src/flarei/flarei.h | 19 +++++++++++ src/flarei/handler_alarm.cc | 19 +++++++++++ src/flarei/handler_alarm.h | 19 +++++++++++ src/flarei/handler_request.cc | 19 +++++++++++ src/flarei/handler_request.h | 19 +++++++++++ src/flarei/ini_option.cc | 19 +++++++++++ src/flarei/ini_option.h | 19 +++++++++++ src/flarei/op_parser_binary_index.cc | 19 +++++++++++ src/flarei/op_parser_binary_index.h | 19 +++++++++++ src/flarei/op_parser_text_index.cc | 19 +++++++++++ src/flarei/op_parser_text_index.h | 19 +++++++++++ src/flarei/op_show_index.cc | 19 +++++++++++ src/flarei/op_show_index.h | 19 +++++++++++ src/flarei/op_stats_index.cc | 19 +++++++++++ src/flarei/op_stats_index.h | 19 +++++++++++ src/flarei/stats_index.cc | 19 +++++++++++ src/flarei/stats_index.h | 19 +++++++++++ src/flarei/status_index.cc | 19 +++++++++++ src/flarei/status_index.h | 19 +++++++++++ src/lib/app.cc | 19 +++++++++++ src/lib/app.h | 19 +++++++++++ src/lib/binary_header.h | 19 +++++++++++ src/lib/binary_network_mapping.h | 19 +++++++++++ src/lib/binary_request_header.h | 19 +++++++++++ src/lib/binary_response_header.h | 19 +++++++++++ src/lib/bwlimitter.cc | 33 +++++++++++++++++--- src/lib/bwlimitter.h | 27 +++++++++++++--- src/lib/client.cc | 19 +++++++++++ src/lib/client.h | 19 +++++++++++ src/lib/cluster.cc | 19 +++++++++++ src/lib/cluster.h | 19 +++++++++++ src/lib/cluster_replication.cc | 19 +++++++++++ src/lib/cluster_replication.h | 19 +++++++++++ src/lib/connection.h | 19 +++++++++++ src/lib/connection_tcp.cc | 19 +++++++++++ src/lib/connection_tcp.h | 19 +++++++++++ src/lib/coordinator.cc | 19 +++++++++++ src/lib/coordinator.h | 19 +++++++++++ src/lib/coordinator_factory.cc | 19 +++++++++++ src/lib/coordinator_factory.h | 19 +++++++++++ src/lib/file_coordinator.cc | 19 +++++++++++ src/lib/file_coordinator.h | 19 +++++++++++ src/lib/handler_cluster_replication.cc | 19 +++++++++++ src/lib/handler_cluster_replication.h | 19 +++++++++++ src/lib/handler_controller.cc | 19 +++++++++++ src/lib/handler_controller.h | 19 +++++++++++ src/lib/handler_dump_replication.cc | 19 +++++++++++ src/lib/handler_dump_replication.h | 19 +++++++++++ src/lib/handler_monitor.cc | 19 +++++++++++ src/lib/handler_monitor.h | 19 +++++++++++ src/lib/handler_proxy.cc | 19 +++++++++++ src/lib/handler_proxy.h | 19 +++++++++++ src/lib/handler_reconstruction.cc | 19 +++++++++++ src/lib/handler_reconstruction.h | 19 +++++++++++ src/lib/htonll.h | 19 +++++++++++ src/lib/ini.cc | 19 +++++++++++ src/lib/ini.h | 19 +++++++++++ src/lib/key_resolver.cc | 19 +++++++++++ src/lib/key_resolver.h | 19 +++++++++++ src/lib/key_resolver_modular.cc | 19 +++++++++++ src/lib/key_resolver_modular.h | 19 +++++++++++ src/lib/logger.cc | 19 +++++++++++ src/lib/logger.h | 20 ++++++++++++ src/lib/mysql_replication.cc | 19 +++++++++++ src/lib/mysql_replication.h | 19 +++++++++++ src/lib/op.cc | 19 +++++++++++ src/lib/op.h | 19 +++++++++++ src/lib/op_add.cc | 19 +++++++++++ src/lib/op_add.h | 19 +++++++++++ src/lib/op_addq.h | 19 +++++++++++ src/lib/op_append.cc | 19 +++++++++++ src/lib/op_append.h | 19 +++++++++++ src/lib/op_appendq.h | 19 +++++++++++ src/lib/op_cas.cc | 19 +++++++++++ src/lib/op_cas.h | 19 +++++++++++ src/lib/op_decr.cc | 19 +++++++++++ src/lib/op_decr.h | 19 +++++++++++ src/lib/op_decrq.h | 19 +++++++++++ src/lib/op_delete.cc | 19 +++++++++++ src/lib/op_delete.h | 19 +++++++++++ src/lib/op_deleteq.h | 19 +++++++++++ src/lib/op_dump.cc | 19 +++++++++++ src/lib/op_dump.h | 19 +++++++++++ src/lib/op_dump_key.cc | 19 +++++++++++ src/lib/op_dump_key.h | 19 +++++++++++ src/lib/op_error.cc | 19 +++++++++++ src/lib/op_error.h | 19 +++++++++++ src/lib/op_flush_all.cc | 19 +++++++++++ src/lib/op_flush_all.h | 19 +++++++++++ src/lib/op_flush_allq.h | 19 +++++++++++ src/lib/op_gat.cc | 19 +++++++++++ src/lib/op_gat.h | 19 +++++++++++ src/lib/op_gatq.h | 19 +++++++++++ src/lib/op_get.cc | 19 +++++++++++ src/lib/op_get.h | 19 +++++++++++ src/lib/op_getk.cc | 19 +++++++++++ src/lib/op_getk.h | 19 +++++++++++ src/lib/op_getkq.h | 19 +++++++++++ src/lib/op_getq.h | 19 +++++++++++ src/lib/op_gets.cc | 19 +++++++++++ src/lib/op_gets.h | 19 +++++++++++ src/lib/op_incr.cc | 19 +++++++++++ src/lib/op_incr.h | 19 +++++++++++ src/lib/op_incrq.h | 19 +++++++++++ src/lib/op_keys.cc | 19 +++++++++++ src/lib/op_keys.h | 19 +++++++++++ src/lib/op_kill.cc | 19 +++++++++++ src/lib/op_kill.h | 19 +++++++++++ src/lib/op_meta.cc | 19 +++++++++++ src/lib/op_meta.h | 19 +++++++++++ src/lib/op_node_add.cc | 19 +++++++++++ src/lib/op_node_add.h | 19 +++++++++++ src/lib/op_node_remove.cc | 19 +++++++++++ src/lib/op_node_remove.h | 19 +++++++++++ src/lib/op_node_role.cc | 19 +++++++++++ src/lib/op_node_role.h | 19 +++++++++++ src/lib/op_node_state.cc | 19 +++++++++++ src/lib/op_node_state.h | 19 +++++++++++ src/lib/op_node_sync.cc | 19 +++++++++++ src/lib/op_node_sync.h | 19 +++++++++++ src/lib/op_parser.cc | 19 +++++++++++ src/lib/op_parser.h | 19 +++++++++++ src/lib/op_parser_binary.cc | 19 +++++++++++ src/lib/op_parser_binary.h | 19 +++++++++++ src/lib/op_parser_text.cc | 19 +++++++++++ src/lib/op_parser_text.h | 19 +++++++++++ src/lib/op_ping.cc | 19 +++++++++++ src/lib/op_ping.h | 19 +++++++++++ src/lib/op_prepend.cc | 19 +++++++++++ src/lib/op_prepend.h | 19 +++++++++++ src/lib/op_prependq.h | 19 +++++++++++ src/lib/op_proxy_read.cc | 19 +++++++++++ src/lib/op_proxy_read.h | 19 +++++++++++ src/lib/op_proxy_write.cc | 19 +++++++++++ src/lib/op_proxy_write.h | 19 +++++++++++ src/lib/op_quit.cc | 19 +++++++++++ src/lib/op_quit.h | 19 +++++++++++ src/lib/op_quitq.h | 19 +++++++++++ src/lib/op_replace.cc | 19 +++++++++++ src/lib/op_replace.h | 19 +++++++++++ src/lib/op_replaceq.h | 19 +++++++++++ src/lib/op_set.cc | 19 +++++++++++ src/lib/op_set.h | 19 +++++++++++ src/lib/op_setq.h | 19 +++++++++++ src/lib/op_show.cc | 19 +++++++++++ src/lib/op_show.h | 19 +++++++++++ src/lib/op_shutdown.cc | 19 +++++++++++ src/lib/op_shutdown.h | 19 +++++++++++ src/lib/op_stats.cc | 19 +++++++++++ src/lib/op_stats.h | 19 +++++++++++ src/lib/op_touch.cc | 19 +++++++++++ src/lib/op_touch.h | 19 +++++++++++ src/lib/op_verbosity.cc | 19 +++++++++++ src/lib/op_verbosity.h | 19 +++++++++++ src/lib/op_version.cc | 19 +++++++++++ src/lib/op_version.h | 19 +++++++++++ src/lib/proxy_event_listener.h | 19 +++++++++++ src/lib/queue_forward_query.cc | 19 +++++++++++ src/lib/queue_forward_query.h | 19 +++++++++++ src/lib/queue_node_state.cc | 19 +++++++++++ src/lib/queue_node_state.h | 19 +++++++++++ src/lib/queue_node_sync.cc | 19 +++++++++++ src/lib/queue_node_sync.h | 19 +++++++++++ src/lib/queue_proxy_read.cc | 19 +++++++++++ src/lib/queue_proxy_read.h | 19 +++++++++++ src/lib/queue_proxy_write.cc | 19 +++++++++++ src/lib/queue_proxy_write.h | 19 +++++++++++ src/lib/queue_update_monitor_option.cc | 19 +++++++++++ src/lib/queue_update_monitor_option.h | 19 +++++++++++ src/lib/server.cc | 19 +++++++++++ src/lib/server.h | 19 +++++++++++ src/lib/singleton.h | 19 +++++++++++ src/lib/stats.cc | 19 +++++++++++ src/lib/stats.h | 19 +++++++++++ src/lib/status.h | 19 +++++++++++ src/lib/storage.cc | 19 +++++++++++ src/lib/storage.h | 19 +++++++++++ src/lib/storage_access_info.h | 19 +++++++++++ src/lib/storage_kch.cc | 19 +++++++++++ src/lib/storage_kch.h | 19 +++++++++++ src/lib/storage_listener.h | 19 +++++++++++ src/lib/storage_tcb.cc | 19 +++++++++++ src/lib/storage_tcb.h | 19 +++++++++++ src/lib/storage_tch.cc | 19 +++++++++++ src/lib/storage_tch.h | 20 ++++++++++++ src/lib/thread.cc | 19 +++++++++++ src/lib/thread.h | 19 +++++++++++ src/lib/thread_handler.h | 19 +++++++++++ src/lib/thread_pool.cc | 19 +++++++++++ src/lib/thread_pool.h | 19 +++++++++++ src/lib/thread_queue.cc | 19 +++++++++++ src/lib/thread_queue.h | 19 +++++++++++ src/lib/time_util.cc | 19 +++++++++++ src/lib/time_util.h | 19 +++++++++++ src/lib/time_watcher.cc | 19 +++++++++++ src/lib/time_watcher.h | 19 +++++++++++ src/lib/time_watcher_observer.cc | 19 +++++++++++ src/lib/time_watcher_observer.h | 19 +++++++++++ src/lib/time_watcher_processor.cc | 19 +++++++++++ src/lib/time_watcher_processor.h | 19 +++++++++++ src/lib/time_watcher_scoped_observer.cc | 33 +++++++++++++++----- src/lib/time_watcher_scoped_observer.h | 33 +++++++++++++++----- src/lib/time_watcher_target_info.h | 19 +++++++++++ src/lib/util.cc | 19 +++++++++++ src/lib/util.h | 21 +++++++++++++ src/lib/zookeeper_coordinator.cc | 19 +++++++++++ src/lib/zookeeper_coordinator.h | 19 +++++++++++ src/lib/zookeeper_lock.cc | 19 +++++++++++ src/lib/zookeeper_lock.h | 19 +++++++++++ test/lib/common_connection_tests.cc | 19 +++++++++++ test/lib/common_connection_tests.h | 19 +++++++++++ test/lib/common_storage_tests.cc | 19 +++++++++++ test/lib/common_storage_tests.h | 19 +++++++++++ test/lib/connection_iostream.cc | 19 +++++++++++ test/lib/connection_iostream.h | 19 +++++++++++ test/lib/mock_cluster.cc | 19 +++++++++++ test/lib/mock_cluster.h | 19 +++++++++++ test/lib/mock_op_proxy_write.h | 19 +++++++++++ test/lib/mock_storage.cc | 19 +++++++++++ test/lib/mock_storage.h | 19 +++++++++++ test/lib/test_binary_header.cc | 19 +++++++++++ test/lib/test_cluster.cc | 19 +++++++++++ test/lib/test_cluster_replication.cc | 19 +++++++++++ test/lib/test_connection_iostream.cc | 19 +++++++++++ test/lib/test_connection_tcp.cc | 19 +++++++++++ test/lib/test_connection_tcp.h | 19 +++++++++++ test/lib/test_file_coordinator.cc | 19 +++++++++++ test/lib/test_handler_cluster_replication.cc | 19 +++++++++++ test/lib/test_handler_dump_replication.cc | 19 +++++++++++ test/lib/test_handler_proxy.cc | 19 +++++++++++ test/lib/test_key_resolver_modular.cc | 19 +++++++++++ test/lib/test_op.cc | 19 +++++++++++ test/lib/test_op.h | 19 +++++++++++ test/lib/test_op_add.cc | 19 +++++++++++ test/lib/test_op_append.cc | 19 +++++++++++ test/lib/test_op_cas.cc | 19 +++++++++++ test/lib/test_op_decr.cc | 19 +++++++++++ test/lib/test_op_delete.cc | 19 +++++++++++ test/lib/test_op_dump.cc | 19 +++++++++++ test/lib/test_op_dump_key.cc | 19 +++++++++++ test/lib/test_op_error.cc | 19 +++++++++++ test/lib/test_op_flush_all.cc | 19 +++++++++++ test/lib/test_op_gat.cc | 19 +++++++++++ test/lib/test_op_get.cc | 19 +++++++++++ test/lib/test_op_gets.cc | 19 +++++++++++ test/lib/test_op_incr.cc | 19 +++++++++++ test/lib/test_op_keys.cc | 19 +++++++++++ test/lib/test_op_kill.cc | 19 +++++++++++ test/lib/test_op_meta.cc | 19 +++++++++++ test/lib/test_op_node_add.cc | 19 +++++++++++ test/lib/test_op_node_remove.cc | 19 +++++++++++ test/lib/test_op_node_role.cc | 19 +++++++++++ test/lib/test_op_node_state.cc | 19 +++++++++++ test/lib/test_op_node_sync.cc | 19 +++++++++++ test/lib/test_op_parser.cc | 19 +++++++++++ test/lib/test_op_parser.h | 19 +++++++++++ test/lib/test_op_ping.cc | 19 +++++++++++ test/lib/test_op_prepend.cc | 19 +++++++++++ test/lib/test_op_quit.cc | 19 +++++++++++ test/lib/test_op_replace.cc | 19 +++++++++++ test/lib/test_op_set.cc | 19 +++++++++++ test/lib/test_op_show.cc | 19 +++++++++++ test/lib/test_op_shutdown.cc | 19 +++++++++++ test/lib/test_op_stats.cc | 19 +++++++++++ test/lib/test_op_touch.cc | 19 +++++++++++ test/lib/test_op_verbosity.cc | 19 +++++++++++ test/lib/test_op_version.cc | 19 +++++++++++ test/lib/test_queue_forward_query.cc | 19 +++++++++++ test/lib/test_storage.cc | 19 +++++++++++ test/lib/test_storage_entry.cc | 19 +++++++++++ test/lib/test_storage_kch.cc | 19 +++++++++++ test/lib/test_storage_tcb.cc | 19 +++++++++++ test/lib/test_storage_tch.cc | 20 ++++++++++++ test/lib/test_thread_pool.cc | 19 +++++++++++ test/lib/test_time_util.cc | 19 +++++++++++ test/lib/test_time_watcher.cc | 29 ++++++++++++++--- test/lib/test_util.cc | 19 +++++++++++ test/lib/test_zookeeper_coordinator.cc | 19 +++++++++++ test/lib/test_zookeeper_lock.cc | 19 +++++++++++ 319 files changed, 6097 insertions(+), 28 deletions(-) create mode 100644 COPYRIGHT diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100644 index 00000000..ce818867 --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,18 @@ +Flare +-------------- +Copyright (C) 2008-2014 GREE, Inc. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + diff --git a/src/flared/flared.cc b/src/flared/flared.cc index 3db6d701..c21a8bfa 100644 --- a/src/flared/flared.cc +++ b/src/flared/flared.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * flared.cc * diff --git a/src/flared/flared.h b/src/flared/flared.h index 12ea00c1..46d5e2e9 100644 --- a/src/flared/flared.h +++ b/src/flared/flared.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * flared.h * diff --git a/src/flared/handler_alarm.cc b/src/flared/handler_alarm.cc index f678fab4..3b9445fa 100644 --- a/src/flared/handler_alarm.cc +++ b/src/flared/handler_alarm.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_alarm.cc * diff --git a/src/flared/handler_alarm.h b/src/flared/handler_alarm.h index 0b21fb16..ff0af000 100644 --- a/src/flared/handler_alarm.h +++ b/src/flared/handler_alarm.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_alarm.h * diff --git a/src/flared/handler_mysql_replication.cc b/src/flared/handler_mysql_replication.cc index d72c9395..7d77218b 100644 --- a/src/flared/handler_mysql_replication.cc +++ b/src/flared/handler_mysql_replication.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_mysql_replication.cc * diff --git a/src/flared/handler_mysql_replication.h b/src/flared/handler_mysql_replication.h index da671738..b487f749 100644 --- a/src/flared/handler_mysql_replication.h +++ b/src/flared/handler_mysql_replication.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_mysql_replication.h * diff --git a/src/flared/handler_request.cc b/src/flared/handler_request.cc index 41902a8c..49b2bc73 100644 --- a/src/flared/handler_request.cc +++ b/src/flared/handler_request.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_request.cc * diff --git a/src/flared/handler_request.h b/src/flared/handler_request.h index 3a03f863..60382711 100644 --- a/src/flared/handler_request.h +++ b/src/flared/handler_request.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_request.h * diff --git a/src/flared/ini_option.cc b/src/flared/ini_option.cc index 00cf8173..4e3ca05b 100644 --- a/src/flared/ini_option.cc +++ b/src/flared/ini_option.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * ini_option.cc * diff --git a/src/flared/ini_option.h b/src/flared/ini_option.h index 8d98d1fc..c5344c31 100644 --- a/src/flared/ini_option.h +++ b/src/flared/ini_option.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * ini_option.h * diff --git a/src/flared/op_parser_binary_node.cc b/src/flared/op_parser_binary_node.cc index 3987e72e..e34d0ad7 100644 --- a/src/flared/op_parser_binary_node.cc +++ b/src/flared/op_parser_binary_node.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_binary_node.cc * diff --git a/src/flared/op_parser_binary_node.h b/src/flared/op_parser_binary_node.h index 48f9aad1..4f62d6f8 100644 --- a/src/flared/op_parser_binary_node.h +++ b/src/flared/op_parser_binary_node.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_binary_node.h * diff --git a/src/flared/op_parser_text_node.cc b/src/flared/op_parser_text_node.cc index c8c17ee9..3ea00575 100644 --- a/src/flared/op_parser_text_node.cc +++ b/src/flared/op_parser_text_node.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_text_node.cc * diff --git a/src/flared/op_parser_text_node.h b/src/flared/op_parser_text_node.h index 06251d62..2eac9728 100644 --- a/src/flared/op_parser_text_node.h +++ b/src/flared/op_parser_text_node.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_text_node.h * diff --git a/src/flared/op_show_node.cc b/src/flared/op_show_node.cc index a031d1a2..9d1aab22 100644 --- a/src/flared/op_show_node.cc +++ b/src/flared/op_show_node.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_show_node.cc * diff --git a/src/flared/op_show_node.h b/src/flared/op_show_node.h index 52c890e2..c75e03cd 100644 --- a/src/flared/op_show_node.h +++ b/src/flared/op_show_node.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_show_node.h * diff --git a/src/flared/op_stats_node.cc b/src/flared/op_stats_node.cc index 5de15a68..8e2a0450 100644 --- a/src/flared/op_stats_node.cc +++ b/src/flared/op_stats_node.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_stats_node.cc * diff --git a/src/flared/op_stats_node.h b/src/flared/op_stats_node.h index 82ee40f5..e89cbb05 100644 --- a/src/flared/op_stats_node.h +++ b/src/flared/op_stats_node.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_stats_node.h * diff --git a/src/flared/show_node.cc b/src/flared/show_node.cc index 12f0c82b..446d9945 100644 --- a/src/flared/show_node.cc +++ b/src/flared/show_node.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * show_node.cc * diff --git a/src/flared/show_node.h b/src/flared/show_node.h index 27c52fc9..0e2aecd4 100644 --- a/src/flared/show_node.h +++ b/src/flared/show_node.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * show_node.h * diff --git a/src/flared/stats_node.cc b/src/flared/stats_node.cc index 1b8c3991..11967fff 100644 --- a/src/flared/stats_node.cc +++ b/src/flared/stats_node.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * stats_node.cc * diff --git a/src/flared/stats_node.h b/src/flared/stats_node.h index 758d53a3..6bae2cd9 100644 --- a/src/flared/stats_node.h +++ b/src/flared/stats_node.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * stats_node.h * diff --git a/src/flared/status_node.cc b/src/flared/status_node.cc index 356d9898..fa92265d 100644 --- a/src/flared/status_node.cc +++ b/src/flared/status_node.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * status_node.cc * diff --git a/src/flared/status_node.h b/src/flared/status_node.h index b9f478f2..301fa110 100644 --- a/src/flared/status_node.h +++ b/src/flared/status_node.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * status_node.h * diff --git a/src/flarefs/flarefs.cc b/src/flarefs/flarefs.cc index ba8de7b5..ac2293b4 100644 --- a/src/flarefs/flarefs.cc +++ b/src/flarefs/flarefs.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * flarefs.cc * diff --git a/src/flarefs/flarefs.h b/src/flarefs/flarefs.h index cba54e03..50a59898 100644 --- a/src/flarefs/flarefs.h +++ b/src/flarefs/flarefs.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * flarefs.h * diff --git a/src/flarefs/fuse_fs.cc b/src/flarefs/fuse_fs.cc index 74e3a4ba..2af83035 100644 --- a/src/flarefs/fuse_fs.cc +++ b/src/flarefs/fuse_fs.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * fuse_fs.cc * diff --git a/src/flarefs/fuse_fs.h b/src/flarefs/fuse_fs.h index 8b2b51b1..c117cf73 100644 --- a/src/flarefs/fuse_fs.h +++ b/src/flarefs/fuse_fs.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * fuse_fs.h * diff --git a/src/flarefs/fuse_fs_entry.cc b/src/flarefs/fuse_fs_entry.cc index 70ad2fb1..3dabb65e 100644 --- a/src/flarefs/fuse_fs_entry.cc +++ b/src/flarefs/fuse_fs_entry.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * fuse_fs_entry.cc * diff --git a/src/flarefs/fuse_fs_entry.h b/src/flarefs/fuse_fs_entry.h index a67d13d3..b5880959 100644 --- a/src/flarefs/fuse_fs_entry.h +++ b/src/flarefs/fuse_fs_entry.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * fuse_fs_entry.h * diff --git a/src/flarefs/fuse_fs_entry_dir.cc b/src/flarefs/fuse_fs_entry_dir.cc index b25d6518..8167ebf2 100644 --- a/src/flarefs/fuse_fs_entry_dir.cc +++ b/src/flarefs/fuse_fs_entry_dir.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * fuse_fs_entry_dir.cc * diff --git a/src/flarefs/fuse_fs_entry_dir.h b/src/flarefs/fuse_fs_entry_dir.h index 3909b21b..a8fb4a63 100644 --- a/src/flarefs/fuse_fs_entry_dir.h +++ b/src/flarefs/fuse_fs_entry_dir.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * fuse_fs_entry_dir.h * diff --git a/src/flarefs/fuse_fs_entry_file.cc b/src/flarefs/fuse_fs_entry_file.cc index 434d3349..47cb2c94 100644 --- a/src/flarefs/fuse_fs_entry_file.cc +++ b/src/flarefs/fuse_fs_entry_file.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * fuse_fs_entry_file.cc * diff --git a/src/flarefs/fuse_fs_entry_file.h b/src/flarefs/fuse_fs_entry_file.h index 30c0fd3b..5c7c1e47 100644 --- a/src/flarefs/fuse_fs_entry_file.h +++ b/src/flarefs/fuse_fs_entry_file.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * fuse_fs_entry_file.h * diff --git a/src/flarefs/fuse_impl.cc b/src/flarefs/fuse_impl.cc index 4870a386..da18e6f3 100644 --- a/src/flarefs/fuse_impl.cc +++ b/src/flarefs/fuse_impl.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * fuse_impl.cc * diff --git a/src/flarefs/fuse_impl.h b/src/flarefs/fuse_impl.h index 0629d11b..4767f70b 100644 --- a/src/flarefs/fuse_impl.h +++ b/src/flarefs/fuse_impl.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * fuse_impl.h * diff --git a/src/flarefs/ini_option.cc b/src/flarefs/ini_option.cc index e65474ea..47011418 100644 --- a/src/flarefs/ini_option.cc +++ b/src/flarefs/ini_option.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * ini_option.cc * diff --git a/src/flarefs/ini_option.h b/src/flarefs/ini_option.h index a831886d..a5086bbb 100644 --- a/src/flarefs/ini_option.h +++ b/src/flarefs/ini_option.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * ini_option.h * diff --git a/src/flarei/flarei.cc b/src/flarei/flarei.cc index 0ba8021f..5078608e 100644 --- a/src/flarei/flarei.cc +++ b/src/flarei/flarei.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * flarei.cc * diff --git a/src/flarei/flarei.h b/src/flarei/flarei.h index 289c467f..d590e593 100644 --- a/src/flarei/flarei.h +++ b/src/flarei/flarei.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * flarei.h * diff --git a/src/flarei/handler_alarm.cc b/src/flarei/handler_alarm.cc index c100c066..02d941be 100644 --- a/src/flarei/handler_alarm.cc +++ b/src/flarei/handler_alarm.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_alarm.cc * diff --git a/src/flarei/handler_alarm.h b/src/flarei/handler_alarm.h index 087e1e9f..8bb93c86 100644 --- a/src/flarei/handler_alarm.h +++ b/src/flarei/handler_alarm.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_alarm.h * diff --git a/src/flarei/handler_request.cc b/src/flarei/handler_request.cc index cb4abac4..3a857c01 100644 --- a/src/flarei/handler_request.cc +++ b/src/flarei/handler_request.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_request.cc * diff --git a/src/flarei/handler_request.h b/src/flarei/handler_request.h index 3a03f863..60382711 100644 --- a/src/flarei/handler_request.h +++ b/src/flarei/handler_request.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_request.h * diff --git a/src/flarei/ini_option.cc b/src/flarei/ini_option.cc index a421dac3..9642bb2a 100644 --- a/src/flarei/ini_option.cc +++ b/src/flarei/ini_option.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * ini_option.cc * diff --git a/src/flarei/ini_option.h b/src/flarei/ini_option.h index 64abd577..0ccb4391 100644 --- a/src/flarei/ini_option.h +++ b/src/flarei/ini_option.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * ini_option.h * diff --git a/src/flarei/op_parser_binary_index.cc b/src/flarei/op_parser_binary_index.cc index dde5deb8..29852038 100644 --- a/src/flarei/op_parser_binary_index.cc +++ b/src/flarei/op_parser_binary_index.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_binary_index.cc * diff --git a/src/flarei/op_parser_binary_index.h b/src/flarei/op_parser_binary_index.h index 08492ebe..0c3a1277 100644 --- a/src/flarei/op_parser_binary_index.h +++ b/src/flarei/op_parser_binary_index.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_binary_index.h * diff --git a/src/flarei/op_parser_text_index.cc b/src/flarei/op_parser_text_index.cc index 34b0af39..f99163d3 100644 --- a/src/flarei/op_parser_text_index.cc +++ b/src/flarei/op_parser_text_index.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_text_index.cc * diff --git a/src/flarei/op_parser_text_index.h b/src/flarei/op_parser_text_index.h index ddef83ff..5605803a 100644 --- a/src/flarei/op_parser_text_index.h +++ b/src/flarei/op_parser_text_index.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_text_index.h * diff --git a/src/flarei/op_show_index.cc b/src/flarei/op_show_index.cc index ff843e62..46831cc5 100644 --- a/src/flarei/op_show_index.cc +++ b/src/flarei/op_show_index.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_show_index.cc * diff --git a/src/flarei/op_show_index.h b/src/flarei/op_show_index.h index 9e5289b6..a7319e52 100644 --- a/src/flarei/op_show_index.h +++ b/src/flarei/op_show_index.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_show_index.h * diff --git a/src/flarei/op_stats_index.cc b/src/flarei/op_stats_index.cc index ecacfe51..39270583 100644 --- a/src/flarei/op_stats_index.cc +++ b/src/flarei/op_stats_index.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_stats_index.cc * diff --git a/src/flarei/op_stats_index.h b/src/flarei/op_stats_index.h index d46978e0..27149bdd 100644 --- a/src/flarei/op_stats_index.h +++ b/src/flarei/op_stats_index.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_stats_index.h * diff --git a/src/flarei/stats_index.cc b/src/flarei/stats_index.cc index 7eaccf8d..533f9afb 100644 --- a/src/flarei/stats_index.cc +++ b/src/flarei/stats_index.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * stats_index.cc * diff --git a/src/flarei/stats_index.h b/src/flarei/stats_index.h index a18b36a4..e4fc6d42 100644 --- a/src/flarei/stats_index.h +++ b/src/flarei/stats_index.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * stats_index.h * diff --git a/src/flarei/status_index.cc b/src/flarei/status_index.cc index 56fe9841..424b869d 100644 --- a/src/flarei/status_index.cc +++ b/src/flarei/status_index.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * status_index.cc * diff --git a/src/flarei/status_index.h b/src/flarei/status_index.h index 0537c589..673fcb01 100644 --- a/src/flarei/status_index.h +++ b/src/flarei/status_index.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * status_index.h * diff --git a/src/lib/app.cc b/src/lib/app.cc index 55f94979..569d904f 100644 --- a/src/lib/app.cc +++ b/src/lib/app.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * app.cc * diff --git a/src/lib/app.h b/src/lib/app.h index f36522fb..7e0467f5 100644 --- a/src/lib/app.h +++ b/src/lib/app.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * app.h * diff --git a/src/lib/binary_header.h b/src/lib/binary_header.h index 312881ee..009dacad 100644 --- a/src/lib/binary_header.h +++ b/src/lib/binary_header.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * binary_header.h * diff --git a/src/lib/binary_network_mapping.h b/src/lib/binary_network_mapping.h index 93a071ab..7a399613 100644 --- a/src/lib/binary_network_mapping.h +++ b/src/lib/binary_network_mapping.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * binary_network_mapping.h * diff --git a/src/lib/binary_request_header.h b/src/lib/binary_request_header.h index 7d6ff8e8..ad4943fe 100644 --- a/src/lib/binary_request_header.h +++ b/src/lib/binary_request_header.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * binary_request_header.h * diff --git a/src/lib/binary_response_header.h b/src/lib/binary_response_header.h index b7363d6d..2d6f0adf 100644 --- a/src/lib/binary_response_header.h +++ b/src/lib/binary_response_header.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * binary_response_header.h * diff --git a/src/lib/bwlimitter.cc b/src/lib/bwlimitter.cc index ae373123..46bb72bc 100644 --- a/src/lib/bwlimitter.cc +++ b/src/lib/bwlimitter.cc @@ -1,8 +1,31 @@ +/* + * Flare + * -------------- + * Copyright (C) 1996-2001 Andrew Tridgell + * Copyright (C) 1996 Paul Mackerras + * Copyright (C) 2001, 2002 Martin Pool + * Copyright (C) 2003, 2004, 2005, 2006 Wayne Davison + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** -* @author Yuya YAGUCHI -* -* $Id$ -*/ + * @author Yuya YAGUCHI + * + * $Id$ + */ #include "bwlimitter.h" #include @@ -59,4 +82,4 @@ long bwlimitter::sleep_for_bwlimit(uint64_t bytes_written) { } } // namespace flare -} // namespace gree \ No newline at end of file +} // namespace gree diff --git a/src/lib/bwlimitter.h b/src/lib/bwlimitter.h index 8fb88f93..425138c6 100644 --- a/src/lib/bwlimitter.h +++ b/src/lib/bwlimitter.h @@ -1,8 +1,27 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** -* @author Yuya YAGUCHI -* -* $Id$ -*/ + * @author Yuya YAGUCHI + * + * $Id$ + */ #ifndef BWLIMITTER_H #define BWLIMITTER_H diff --git a/src/lib/client.cc b/src/lib/client.cc index 4768233c..a805637d 100644 --- a/src/lib/client.cc +++ b/src/lib/client.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * client.cc * diff --git a/src/lib/client.h b/src/lib/client.h index cbb4048e..e5639638 100644 --- a/src/lib/client.h +++ b/src/lib/client.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * client.h * diff --git a/src/lib/cluster.cc b/src/lib/cluster.cc index 28af1359..66b3c75d 100644 --- a/src/lib/cluster.cc +++ b/src/lib/cluster.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * cluster.cc * diff --git a/src/lib/cluster.h b/src/lib/cluster.h index ce58768a..909a1751 100644 --- a/src/lib/cluster.h +++ b/src/lib/cluster.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * cluster.h * diff --git a/src/lib/cluster_replication.cc b/src/lib/cluster_replication.cc index cae30032..4c944c50 100644 --- a/src/lib/cluster_replication.cc +++ b/src/lib/cluster_replication.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * cluster_replication.cc * diff --git a/src/lib/cluster_replication.h b/src/lib/cluster_replication.h index a118bf0d..f9206ec9 100644 --- a/src/lib/cluster_replication.h +++ b/src/lib/cluster_replication.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * cluster_replication.h * diff --git a/src/lib/connection.h b/src/lib/connection.h index 446f4c62..b85f25d5 100644 --- a/src/lib/connection.h +++ b/src/lib/connection.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * connection.h * diff --git a/src/lib/connection_tcp.cc b/src/lib/connection_tcp.cc index 3f38577c..1874887f 100644 --- a/src/lib/connection_tcp.cc +++ b/src/lib/connection_tcp.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * connection_tcp.cc * diff --git a/src/lib/connection_tcp.h b/src/lib/connection_tcp.h index fee6a802..962af631 100644 --- a/src/lib/connection_tcp.h +++ b/src/lib/connection_tcp.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * connection_tcp.h * diff --git a/src/lib/coordinator.cc b/src/lib/coordinator.cc index 5cd6704e..d6bd89cb 100644 --- a/src/lib/coordinator.cc +++ b/src/lib/coordinator.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * coordinator.cc * diff --git a/src/lib/coordinator.h b/src/lib/coordinator.h index f059d158..2f8625c8 100644 --- a/src/lib/coordinator.h +++ b/src/lib/coordinator.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * coordinator.h * diff --git a/src/lib/coordinator_factory.cc b/src/lib/coordinator_factory.cc index 642b3ff2..2e119c7a 100644 --- a/src/lib/coordinator_factory.cc +++ b/src/lib/coordinator_factory.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * coordinator_factory.cc * diff --git a/src/lib/coordinator_factory.h b/src/lib/coordinator_factory.h index 35474bf4..090cb698 100644 --- a/src/lib/coordinator_factory.h +++ b/src/lib/coordinator_factory.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * coordinator_factory.h * diff --git a/src/lib/file_coordinator.cc b/src/lib/file_coordinator.cc index 7b9fb389..da84901c 100644 --- a/src/lib/file_coordinator.cc +++ b/src/lib/file_coordinator.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * file_coordinator.cc * diff --git a/src/lib/file_coordinator.h b/src/lib/file_coordinator.h index 497f47f1..394209f3 100644 --- a/src/lib/file_coordinator.h +++ b/src/lib/file_coordinator.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * file_coordinator.h * diff --git a/src/lib/handler_cluster_replication.cc b/src/lib/handler_cluster_replication.cc index 27024a09..c13ffb01 100644 --- a/src/lib/handler_cluster_replication.cc +++ b/src/lib/handler_cluster_replication.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_cluster_replication.cc * diff --git a/src/lib/handler_cluster_replication.h b/src/lib/handler_cluster_replication.h index 0c6f88e5..4395df6e 100644 --- a/src/lib/handler_cluster_replication.h +++ b/src/lib/handler_cluster_replication.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_cluster_replication.h * diff --git a/src/lib/handler_controller.cc b/src/lib/handler_controller.cc index f0cc4d04..7a1e58fa 100644 --- a/src/lib/handler_controller.cc +++ b/src/lib/handler_controller.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_controller.cc * diff --git a/src/lib/handler_controller.h b/src/lib/handler_controller.h index d9c0a875..b96b48e4 100644 --- a/src/lib/handler_controller.h +++ b/src/lib/handler_controller.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_controller.h * diff --git a/src/lib/handler_dump_replication.cc b/src/lib/handler_dump_replication.cc index c9d22434..52f1a4a4 100644 --- a/src/lib/handler_dump_replication.cc +++ b/src/lib/handler_dump_replication.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_dump_replication.cc * diff --git a/src/lib/handler_dump_replication.h b/src/lib/handler_dump_replication.h index e0c966f6..e8656e56 100644 --- a/src/lib/handler_dump_replication.h +++ b/src/lib/handler_dump_replication.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_dump_replication.h * diff --git a/src/lib/handler_monitor.cc b/src/lib/handler_monitor.cc index b1440936..51a7fbb5 100644 --- a/src/lib/handler_monitor.cc +++ b/src/lib/handler_monitor.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_monitor.cc * diff --git a/src/lib/handler_monitor.h b/src/lib/handler_monitor.h index c5e6cbcf..81fa75e5 100644 --- a/src/lib/handler_monitor.h +++ b/src/lib/handler_monitor.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_monitor.h * diff --git a/src/lib/handler_proxy.cc b/src/lib/handler_proxy.cc index 134a56e6..a335781b 100644 --- a/src/lib/handler_proxy.cc +++ b/src/lib/handler_proxy.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_proxy.cc * diff --git a/src/lib/handler_proxy.h b/src/lib/handler_proxy.h index 1057b639..5dbd21a1 100644 --- a/src/lib/handler_proxy.h +++ b/src/lib/handler_proxy.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_proxy.h * diff --git a/src/lib/handler_reconstruction.cc b/src/lib/handler_reconstruction.cc index 5f3d5dea..937aeade 100644 --- a/src/lib/handler_reconstruction.cc +++ b/src/lib/handler_reconstruction.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_reconstruction.cc * diff --git a/src/lib/handler_reconstruction.h b/src/lib/handler_reconstruction.h index 50950198..d8fbbe78 100644 --- a/src/lib/handler_reconstruction.h +++ b/src/lib/handler_reconstruction.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * handler_reconstruction.h * diff --git a/src/lib/htonll.h b/src/lib/htonll.h index 2bb4f3b3..fbe430cb 100644 --- a/src/lib/htonll.h +++ b/src/lib/htonll.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * htonll.h * diff --git a/src/lib/ini.cc b/src/lib/ini.cc index 8a3a1d19..2782096a 100644 --- a/src/lib/ini.cc +++ b/src/lib/ini.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * ini.cc * diff --git a/src/lib/ini.h b/src/lib/ini.h index 041a195f..190674f0 100644 --- a/src/lib/ini.h +++ b/src/lib/ini.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * ini.h * diff --git a/src/lib/key_resolver.cc b/src/lib/key_resolver.cc index 7e6047f8..ec9fcfdc 100644 --- a/src/lib/key_resolver.cc +++ b/src/lib/key_resolver.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * key_resolver.cc * diff --git a/src/lib/key_resolver.h b/src/lib/key_resolver.h index 99292221..2d020d0d 100644 --- a/src/lib/key_resolver.h +++ b/src/lib/key_resolver.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * key_resolver.h * diff --git a/src/lib/key_resolver_modular.cc b/src/lib/key_resolver_modular.cc index 28b082af..7f8c3e95 100644 --- a/src/lib/key_resolver_modular.cc +++ b/src/lib/key_resolver_modular.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * key_resolver_modular.cc * diff --git a/src/lib/key_resolver_modular.h b/src/lib/key_resolver_modular.h index 6cb79dab..377c5039 100644 --- a/src/lib/key_resolver_modular.h +++ b/src/lib/key_resolver_modular.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * key_resolver_modular.h * diff --git a/src/lib/logger.cc b/src/lib/logger.cc index b44a0232..2f14da62 100644 --- a/src/lib/logger.cc +++ b/src/lib/logger.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * logger.cc * diff --git a/src/lib/logger.h b/src/lib/logger.h index 9ae25eb5..f41ee705 100644 --- a/src/lib/logger.h +++ b/src/lib/logger.h @@ -1,3 +1,23 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * Copyright (C) zakar + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * logger.h * diff --git a/src/lib/mysql_replication.cc b/src/lib/mysql_replication.cc index 00209c02..76aa68b2 100644 --- a/src/lib/mysql_replication.cc +++ b/src/lib/mysql_replication.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * mysql_replication.cc * diff --git a/src/lib/mysql_replication.h b/src/lib/mysql_replication.h index a28b51c0..71b564d9 100644 --- a/src/lib/mysql_replication.h +++ b/src/lib/mysql_replication.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * mysql_replication.h * diff --git a/src/lib/op.cc b/src/lib/op.cc index c548bfc3..d31d28f6 100644 --- a/src/lib/op.cc +++ b/src/lib/op.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op.cc * diff --git a/src/lib/op.h b/src/lib/op.h index 7c75277a..3e7e24d6 100644 --- a/src/lib/op.h +++ b/src/lib/op.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op.h * diff --git a/src/lib/op_add.cc b/src/lib/op_add.cc index b78213fe..378eb9dd 100644 --- a/src/lib/op_add.cc +++ b/src/lib/op_add.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_add.cc * diff --git a/src/lib/op_add.h b/src/lib/op_add.h index 6b317435..ed19e164 100644 --- a/src/lib/op_add.h +++ b/src/lib/op_add.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_add.h * diff --git a/src/lib/op_addq.h b/src/lib/op_addq.h index 7e31e3ce..75adea07 100644 --- a/src/lib/op_addq.h +++ b/src/lib/op_addq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_addq.h * diff --git a/src/lib/op_append.cc b/src/lib/op_append.cc index 8a9b4be2..5c0f128a 100644 --- a/src/lib/op_append.cc +++ b/src/lib/op_append.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_append.cc * diff --git a/src/lib/op_append.h b/src/lib/op_append.h index 8c717aa9..750bf65d 100644 --- a/src/lib/op_append.h +++ b/src/lib/op_append.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_append.h * diff --git a/src/lib/op_appendq.h b/src/lib/op_appendq.h index 658674bd..176e68da 100644 --- a/src/lib/op_appendq.h +++ b/src/lib/op_appendq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_appendq.h * diff --git a/src/lib/op_cas.cc b/src/lib/op_cas.cc index 1a98c6d1..4d1eff11 100644 --- a/src/lib/op_cas.cc +++ b/src/lib/op_cas.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_cas.cc * diff --git a/src/lib/op_cas.h b/src/lib/op_cas.h index 8c61d903..74b72f1c 100644 --- a/src/lib/op_cas.h +++ b/src/lib/op_cas.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_cas.h * diff --git a/src/lib/op_decr.cc b/src/lib/op_decr.cc index b0b6a2d7..6c469208 100644 --- a/src/lib/op_decr.cc +++ b/src/lib/op_decr.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_decr.cc * diff --git a/src/lib/op_decr.h b/src/lib/op_decr.h index 9ca2bbb9..59522618 100644 --- a/src/lib/op_decr.h +++ b/src/lib/op_decr.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_decr.h * diff --git a/src/lib/op_decrq.h b/src/lib/op_decrq.h index 08cc5797..b192494a 100644 --- a/src/lib/op_decrq.h +++ b/src/lib/op_decrq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_decrq.h * diff --git a/src/lib/op_delete.cc b/src/lib/op_delete.cc index 1545b793..5bd1048e 100644 --- a/src/lib/op_delete.cc +++ b/src/lib/op_delete.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_delete.cc * diff --git a/src/lib/op_delete.h b/src/lib/op_delete.h index de0d4431..dedede67 100644 --- a/src/lib/op_delete.h +++ b/src/lib/op_delete.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_delete.h * diff --git a/src/lib/op_deleteq.h b/src/lib/op_deleteq.h index 3bb389e7..3f386fe9 100644 --- a/src/lib/op_deleteq.h +++ b/src/lib/op_deleteq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_deleteq.h * diff --git a/src/lib/op_dump.cc b/src/lib/op_dump.cc index 57e00f73..1e45738a 100644 --- a/src/lib/op_dump.cc +++ b/src/lib/op_dump.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_dump.cc * diff --git a/src/lib/op_dump.h b/src/lib/op_dump.h index a55fc63a..81e56dc4 100644 --- a/src/lib/op_dump.h +++ b/src/lib/op_dump.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_dump.h * diff --git a/src/lib/op_dump_key.cc b/src/lib/op_dump_key.cc index bd0e5fe3..482a1f4d 100644 --- a/src/lib/op_dump_key.cc +++ b/src/lib/op_dump_key.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_dump_key.cc * diff --git a/src/lib/op_dump_key.h b/src/lib/op_dump_key.h index 478e19b2..9277917f 100644 --- a/src/lib/op_dump_key.h +++ b/src/lib/op_dump_key.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_dump_key.h * diff --git a/src/lib/op_error.cc b/src/lib/op_error.cc index a1aa3170..ad8d2526 100644 --- a/src/lib/op_error.cc +++ b/src/lib/op_error.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_error.cc * diff --git a/src/lib/op_error.h b/src/lib/op_error.h index 75f94f92..b6a22fbe 100644 --- a/src/lib/op_error.h +++ b/src/lib/op_error.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_error.h * diff --git a/src/lib/op_flush_all.cc b/src/lib/op_flush_all.cc index 3420db0d..d9d6fad9 100644 --- a/src/lib/op_flush_all.cc +++ b/src/lib/op_flush_all.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_flush_all.cc * diff --git a/src/lib/op_flush_all.h b/src/lib/op_flush_all.h index 7c1ce4bf..a8828412 100644 --- a/src/lib/op_flush_all.h +++ b/src/lib/op_flush_all.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_flush_all.h * diff --git a/src/lib/op_flush_allq.h b/src/lib/op_flush_allq.h index af7c13b8..cff0105d 100644 --- a/src/lib/op_flush_allq.h +++ b/src/lib/op_flush_allq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_flush_allq.h * diff --git a/src/lib/op_gat.cc b/src/lib/op_gat.cc index 5fc61e6b..28b2b5d4 100644 --- a/src/lib/op_gat.cc +++ b/src/lib/op_gat.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_gat.cc * diff --git a/src/lib/op_gat.h b/src/lib/op_gat.h index c1a34953..68e383ab 100644 --- a/src/lib/op_gat.h +++ b/src/lib/op_gat.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_gat.h * diff --git a/src/lib/op_gatq.h b/src/lib/op_gatq.h index 6bb87918..d3bd4a2b 100644 --- a/src/lib/op_gatq.h +++ b/src/lib/op_gatq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_gatq.h * diff --git a/src/lib/op_get.cc b/src/lib/op_get.cc index 5f7ba416..9fb2db46 100644 --- a/src/lib/op_get.cc +++ b/src/lib/op_get.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_get.cc * diff --git a/src/lib/op_get.h b/src/lib/op_get.h index c2a25a7e..99f015a1 100644 --- a/src/lib/op_get.h +++ b/src/lib/op_get.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_get.h * diff --git a/src/lib/op_getk.cc b/src/lib/op_getk.cc index 9f736741..fb13ee8f 100644 --- a/src/lib/op_getk.cc +++ b/src/lib/op_getk.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_getk.cc * diff --git a/src/lib/op_getk.h b/src/lib/op_getk.h index f517ccc6..1c413120 100644 --- a/src/lib/op_getk.h +++ b/src/lib/op_getk.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_getk.h * diff --git a/src/lib/op_getkq.h b/src/lib/op_getkq.h index 6d1c62a1..c24a501d 100644 --- a/src/lib/op_getkq.h +++ b/src/lib/op_getkq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_getkq.h * diff --git a/src/lib/op_getq.h b/src/lib/op_getq.h index a479c90a..80ce9c88 100644 --- a/src/lib/op_getq.h +++ b/src/lib/op_getq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_getq.h * diff --git a/src/lib/op_gets.cc b/src/lib/op_gets.cc index 77678a58..1d455410 100644 --- a/src/lib/op_gets.cc +++ b/src/lib/op_gets.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_gets.cc * diff --git a/src/lib/op_gets.h b/src/lib/op_gets.h index d1f7b83e..ab73c650 100644 --- a/src/lib/op_gets.h +++ b/src/lib/op_gets.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_gets.h * diff --git a/src/lib/op_incr.cc b/src/lib/op_incr.cc index 283100ef..8e55b9b5 100644 --- a/src/lib/op_incr.cc +++ b/src/lib/op_incr.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_incr.cc * diff --git a/src/lib/op_incr.h b/src/lib/op_incr.h index e157bb5b..b3391add 100644 --- a/src/lib/op_incr.h +++ b/src/lib/op_incr.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_incr.h * diff --git a/src/lib/op_incrq.h b/src/lib/op_incrq.h index e8bff6c8..35dbceaf 100644 --- a/src/lib/op_incrq.h +++ b/src/lib/op_incrq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_incrq.h * diff --git a/src/lib/op_keys.cc b/src/lib/op_keys.cc index 2d61416d..e5b504fc 100644 --- a/src/lib/op_keys.cc +++ b/src/lib/op_keys.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_keys.cc * diff --git a/src/lib/op_keys.h b/src/lib/op_keys.h index ec766223..6d6fe9f8 100644 --- a/src/lib/op_keys.h +++ b/src/lib/op_keys.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_keys.h * diff --git a/src/lib/op_kill.cc b/src/lib/op_kill.cc index 160f8127..2075fb4c 100644 --- a/src/lib/op_kill.cc +++ b/src/lib/op_kill.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_kill.cc * diff --git a/src/lib/op_kill.h b/src/lib/op_kill.h index 1377b248..d21e5202 100644 --- a/src/lib/op_kill.h +++ b/src/lib/op_kill.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_kill.h * diff --git a/src/lib/op_meta.cc b/src/lib/op_meta.cc index 99809d73..0f46b6f7 100644 --- a/src/lib/op_meta.cc +++ b/src/lib/op_meta.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_meta.cc * diff --git a/src/lib/op_meta.h b/src/lib/op_meta.h index 8cdd7219..6843cb21 100644 --- a/src/lib/op_meta.h +++ b/src/lib/op_meta.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_meta.h * diff --git a/src/lib/op_node_add.cc b/src/lib/op_node_add.cc index da0a4970..311e3564 100644 --- a/src/lib/op_node_add.cc +++ b/src/lib/op_node_add.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_node_add.cc * diff --git a/src/lib/op_node_add.h b/src/lib/op_node_add.h index acf96e66..9fc6ec0c 100644 --- a/src/lib/op_node_add.h +++ b/src/lib/op_node_add.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_node_add.h * diff --git a/src/lib/op_node_remove.cc b/src/lib/op_node_remove.cc index 52884280..27d9f2db 100644 --- a/src/lib/op_node_remove.cc +++ b/src/lib/op_node_remove.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_node_remove.cc * diff --git a/src/lib/op_node_remove.h b/src/lib/op_node_remove.h index c8f1bd6a..a3b753a7 100644 --- a/src/lib/op_node_remove.h +++ b/src/lib/op_node_remove.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_node_remove.h * diff --git a/src/lib/op_node_role.cc b/src/lib/op_node_role.cc index 49254280..61eb808a 100644 --- a/src/lib/op_node_role.cc +++ b/src/lib/op_node_role.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_node_role.cc * diff --git a/src/lib/op_node_role.h b/src/lib/op_node_role.h index cfe34800..78158f0f 100644 --- a/src/lib/op_node_role.h +++ b/src/lib/op_node_role.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_node_role.h * diff --git a/src/lib/op_node_state.cc b/src/lib/op_node_state.cc index 8db7e661..62f55c95 100644 --- a/src/lib/op_node_state.cc +++ b/src/lib/op_node_state.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_node_state.cc * diff --git a/src/lib/op_node_state.h b/src/lib/op_node_state.h index e252eb43..dfd93921 100644 --- a/src/lib/op_node_state.h +++ b/src/lib/op_node_state.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_node_state.h * diff --git a/src/lib/op_node_sync.cc b/src/lib/op_node_sync.cc index 2ce3827d..8ef56b80 100644 --- a/src/lib/op_node_sync.cc +++ b/src/lib/op_node_sync.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_node_sync.cc * diff --git a/src/lib/op_node_sync.h b/src/lib/op_node_sync.h index e5fbbb2b..88c11c0f 100644 --- a/src/lib/op_node_sync.h +++ b/src/lib/op_node_sync.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_node_sync.h * diff --git a/src/lib/op_parser.cc b/src/lib/op_parser.cc index 2a0fc0a0..d0b8b1bc 100644 --- a/src/lib/op_parser.cc +++ b/src/lib/op_parser.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser.cc * diff --git a/src/lib/op_parser.h b/src/lib/op_parser.h index 53644e0c..b0edac37 100644 --- a/src/lib/op_parser.h +++ b/src/lib/op_parser.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser.h * diff --git a/src/lib/op_parser_binary.cc b/src/lib/op_parser_binary.cc index ca4f655e..8eae410c 100644 --- a/src/lib/op_parser_binary.cc +++ b/src/lib/op_parser_binary.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_binary.cc * diff --git a/src/lib/op_parser_binary.h b/src/lib/op_parser_binary.h index 703b8626..7cecdd90 100644 --- a/src/lib/op_parser_binary.h +++ b/src/lib/op_parser_binary.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_binary.h * diff --git a/src/lib/op_parser_text.cc b/src/lib/op_parser_text.cc index fa94a10f..f89e4de5 100644 --- a/src/lib/op_parser_text.cc +++ b/src/lib/op_parser_text.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_text.cc * diff --git a/src/lib/op_parser_text.h b/src/lib/op_parser_text.h index a048f751..e19debce 100644 --- a/src/lib/op_parser_text.h +++ b/src/lib/op_parser_text.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_parser_text.h * diff --git a/src/lib/op_ping.cc b/src/lib/op_ping.cc index 51f3e1a9..5f352ca9 100644 --- a/src/lib/op_ping.cc +++ b/src/lib/op_ping.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_ping.cc * diff --git a/src/lib/op_ping.h b/src/lib/op_ping.h index f7af90eb..c7295a3a 100644 --- a/src/lib/op_ping.h +++ b/src/lib/op_ping.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_ping.h * diff --git a/src/lib/op_prepend.cc b/src/lib/op_prepend.cc index 27cbb22a..06c81a81 100644 --- a/src/lib/op_prepend.cc +++ b/src/lib/op_prepend.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_prepend.cc * diff --git a/src/lib/op_prepend.h b/src/lib/op_prepend.h index 8e132077..58915607 100644 --- a/src/lib/op_prepend.h +++ b/src/lib/op_prepend.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_prepend.h * diff --git a/src/lib/op_prependq.h b/src/lib/op_prependq.h index 776a436c..97452f6c 100644 --- a/src/lib/op_prependq.h +++ b/src/lib/op_prependq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_prependq.h * diff --git a/src/lib/op_proxy_read.cc b/src/lib/op_proxy_read.cc index 44298322..b0d15ae7 100644 --- a/src/lib/op_proxy_read.cc +++ b/src/lib/op_proxy_read.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_proxy_read.cc * diff --git a/src/lib/op_proxy_read.h b/src/lib/op_proxy_read.h index 8dd62a3b..f97a26b2 100644 --- a/src/lib/op_proxy_read.h +++ b/src/lib/op_proxy_read.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_proxy_read.h * diff --git a/src/lib/op_proxy_write.cc b/src/lib/op_proxy_write.cc index 74ee27bf..e8a02e5b 100644 --- a/src/lib/op_proxy_write.cc +++ b/src/lib/op_proxy_write.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_proxy_write.cc * diff --git a/src/lib/op_proxy_write.h b/src/lib/op_proxy_write.h index ec0970b5..8376569f 100644 --- a/src/lib/op_proxy_write.h +++ b/src/lib/op_proxy_write.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_proxy_write.h * diff --git a/src/lib/op_quit.cc b/src/lib/op_quit.cc index 54874332..a8eedec1 100644 --- a/src/lib/op_quit.cc +++ b/src/lib/op_quit.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_quit.cc * diff --git a/src/lib/op_quit.h b/src/lib/op_quit.h index d756fefb..8b8e811a 100644 --- a/src/lib/op_quit.h +++ b/src/lib/op_quit.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_quit.h * diff --git a/src/lib/op_quitq.h b/src/lib/op_quitq.h index 9d50f004..3ae978e6 100644 --- a/src/lib/op_quitq.h +++ b/src/lib/op_quitq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_quitq.h * diff --git a/src/lib/op_replace.cc b/src/lib/op_replace.cc index d691b1e0..9c12ba70 100644 --- a/src/lib/op_replace.cc +++ b/src/lib/op_replace.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_replace.cc * diff --git a/src/lib/op_replace.h b/src/lib/op_replace.h index aa7b22ae..0f22f9eb 100644 --- a/src/lib/op_replace.h +++ b/src/lib/op_replace.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_replace.h * diff --git a/src/lib/op_replaceq.h b/src/lib/op_replaceq.h index 47240da1..ab3a24bc 100644 --- a/src/lib/op_replaceq.h +++ b/src/lib/op_replaceq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_replaceq.h * diff --git a/src/lib/op_set.cc b/src/lib/op_set.cc index 28e5b749..6db8c23a 100644 --- a/src/lib/op_set.cc +++ b/src/lib/op_set.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_set.cc * diff --git a/src/lib/op_set.h b/src/lib/op_set.h index e4056c32..7f6c6698 100644 --- a/src/lib/op_set.h +++ b/src/lib/op_set.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_set.h * diff --git a/src/lib/op_setq.h b/src/lib/op_setq.h index 02e5b54f..f2d3e3b6 100644 --- a/src/lib/op_setq.h +++ b/src/lib/op_setq.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_setq.h * diff --git a/src/lib/op_show.cc b/src/lib/op_show.cc index e8867df4..f515d443 100644 --- a/src/lib/op_show.cc +++ b/src/lib/op_show.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_show.cc * diff --git a/src/lib/op_show.h b/src/lib/op_show.h index 2af4988d..b3cb7bcd 100644 --- a/src/lib/op_show.h +++ b/src/lib/op_show.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_show.h * diff --git a/src/lib/op_shutdown.cc b/src/lib/op_shutdown.cc index f2703400..350f98e7 100644 --- a/src/lib/op_shutdown.cc +++ b/src/lib/op_shutdown.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_shutdown.cc * diff --git a/src/lib/op_shutdown.h b/src/lib/op_shutdown.h index f7ab32f4..42d2fb77 100644 --- a/src/lib/op_shutdown.h +++ b/src/lib/op_shutdown.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_shutdown.h * diff --git a/src/lib/op_stats.cc b/src/lib/op_stats.cc index 2d1bb717..7c690b13 100644 --- a/src/lib/op_stats.cc +++ b/src/lib/op_stats.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_stats.cc * diff --git a/src/lib/op_stats.h b/src/lib/op_stats.h index 349b5ff8..838991d3 100644 --- a/src/lib/op_stats.h +++ b/src/lib/op_stats.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_stats.h * diff --git a/src/lib/op_touch.cc b/src/lib/op_touch.cc index 9a12401b..58f1a380 100644 --- a/src/lib/op_touch.cc +++ b/src/lib/op_touch.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_touch.cc * diff --git a/src/lib/op_touch.h b/src/lib/op_touch.h index 9343e736..f16859bb 100644 --- a/src/lib/op_touch.h +++ b/src/lib/op_touch.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_touch.h * diff --git a/src/lib/op_verbosity.cc b/src/lib/op_verbosity.cc index 40ce398c..907b6a34 100644 --- a/src/lib/op_verbosity.cc +++ b/src/lib/op_verbosity.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_verbosity.cc * diff --git a/src/lib/op_verbosity.h b/src/lib/op_verbosity.h index 88438393..70ce69bc 100644 --- a/src/lib/op_verbosity.h +++ b/src/lib/op_verbosity.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_verbosity.h * diff --git a/src/lib/op_version.cc b/src/lib/op_version.cc index d9de3f1e..a90c27d8 100644 --- a/src/lib/op_version.cc +++ b/src/lib/op_version.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_version.cc * diff --git a/src/lib/op_version.h b/src/lib/op_version.h index 0e68c1d2..f0e2973b 100644 --- a/src/lib/op_version.h +++ b/src/lib/op_version.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * op_version.h * diff --git a/src/lib/proxy_event_listener.h b/src/lib/proxy_event_listener.h index 34014041..2b884f5f 100644 --- a/src/lib/proxy_event_listener.h +++ b/src/lib/proxy_event_listener.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * proxy_event_listener.h * diff --git a/src/lib/queue_forward_query.cc b/src/lib/queue_forward_query.cc index 5ab697a9..d3618186 100644 --- a/src/lib/queue_forward_query.cc +++ b/src/lib/queue_forward_query.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_forward_query.cc * diff --git a/src/lib/queue_forward_query.h b/src/lib/queue_forward_query.h index a9946417..9e5d365d 100644 --- a/src/lib/queue_forward_query.h +++ b/src/lib/queue_forward_query.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_forward_query.h * diff --git a/src/lib/queue_node_state.cc b/src/lib/queue_node_state.cc index 8678efd2..87910d4b 100644 --- a/src/lib/queue_node_state.cc +++ b/src/lib/queue_node_state.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_node_state.cc * diff --git a/src/lib/queue_node_state.h b/src/lib/queue_node_state.h index a8d07061..d82796b9 100644 --- a/src/lib/queue_node_state.h +++ b/src/lib/queue_node_state.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_node_state.h * diff --git a/src/lib/queue_node_sync.cc b/src/lib/queue_node_sync.cc index 6dc8c8b1..ff566ce2 100644 --- a/src/lib/queue_node_sync.cc +++ b/src/lib/queue_node_sync.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_node_sync.cc * diff --git a/src/lib/queue_node_sync.h b/src/lib/queue_node_sync.h index 18f6e6b7..3ec79e41 100644 --- a/src/lib/queue_node_sync.h +++ b/src/lib/queue_node_sync.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_node_sync.h * diff --git a/src/lib/queue_proxy_read.cc b/src/lib/queue_proxy_read.cc index fa6b30d7..cbf3f14e 100644 --- a/src/lib/queue_proxy_read.cc +++ b/src/lib/queue_proxy_read.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_proxy_read.cc * diff --git a/src/lib/queue_proxy_read.h b/src/lib/queue_proxy_read.h index 1e67fe38..69d64ebd 100644 --- a/src/lib/queue_proxy_read.h +++ b/src/lib/queue_proxy_read.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_proxy_read.h * diff --git a/src/lib/queue_proxy_write.cc b/src/lib/queue_proxy_write.cc index 2ad2e701..11c3f49b 100644 --- a/src/lib/queue_proxy_write.cc +++ b/src/lib/queue_proxy_write.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_proxy_write.cc * diff --git a/src/lib/queue_proxy_write.h b/src/lib/queue_proxy_write.h index e49e3b90..2c204324 100644 --- a/src/lib/queue_proxy_write.h +++ b/src/lib/queue_proxy_write.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_proxy_write.h * diff --git a/src/lib/queue_update_monitor_option.cc b/src/lib/queue_update_monitor_option.cc index 2840f9c9..9867779d 100644 --- a/src/lib/queue_update_monitor_option.cc +++ b/src/lib/queue_update_monitor_option.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_update_monitor_option.cc * diff --git a/src/lib/queue_update_monitor_option.h b/src/lib/queue_update_monitor_option.h index c0345f65..153a202e 100644 --- a/src/lib/queue_update_monitor_option.h +++ b/src/lib/queue_update_monitor_option.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * queue_update_monitor_option.h * diff --git a/src/lib/server.cc b/src/lib/server.cc index a78c579d..6d8b1967 100644 --- a/src/lib/server.cc +++ b/src/lib/server.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * server.cc * diff --git a/src/lib/server.h b/src/lib/server.h index 3ed5cb7a..8c17e007 100644 --- a/src/lib/server.h +++ b/src/lib/server.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * server.h * diff --git a/src/lib/singleton.h b/src/lib/singleton.h index e8a834a7..e22a7cf0 100644 --- a/src/lib/singleton.h +++ b/src/lib/singleton.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * singleton.h * diff --git a/src/lib/stats.cc b/src/lib/stats.cc index 8698fabe..48e40233 100644 --- a/src/lib/stats.cc +++ b/src/lib/stats.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * stats.cc * diff --git a/src/lib/stats.h b/src/lib/stats.h index b8dee536..b3e5fb2e 100644 --- a/src/lib/stats.h +++ b/src/lib/stats.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * stats.h * diff --git a/src/lib/status.h b/src/lib/status.h index 7888b101..c07a4af5 100644 --- a/src/lib/status.h +++ b/src/lib/status.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * status.h * diff --git a/src/lib/storage.cc b/src/lib/storage.cc index 09eda3de..68fa7472 100644 --- a/src/lib/storage.cc +++ b/src/lib/storage.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * storage.cc * diff --git a/src/lib/storage.h b/src/lib/storage.h index 45ba4e0e..0e869959 100644 --- a/src/lib/storage.h +++ b/src/lib/storage.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * storage.h * diff --git a/src/lib/storage_access_info.h b/src/lib/storage_access_info.h index 7a02787d..1987e685 100644 --- a/src/lib/storage_access_info.h +++ b/src/lib/storage_access_info.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ #ifndef STORAGE_ACCESS_INFO #define STORAGE_ACCESS_INFO diff --git a/src/lib/storage_kch.cc b/src/lib/storage_kch.cc index 5d95249a..9b1a6721 100644 --- a/src/lib/storage_kch.cc +++ b/src/lib/storage_kch.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * storage_kch.cc * diff --git a/src/lib/storage_kch.h b/src/lib/storage_kch.h index 4295a2aa..3044151f 100644 --- a/src/lib/storage_kch.h +++ b/src/lib/storage_kch.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * storage_kch.h * diff --git a/src/lib/storage_listener.h b/src/lib/storage_listener.h index d1ec6e76..5be17a02 100644 --- a/src/lib/storage_listener.h +++ b/src/lib/storage_listener.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * storage_listener.h * diff --git a/src/lib/storage_tcb.cc b/src/lib/storage_tcb.cc index 869a6376..cebb4e27 100644 --- a/src/lib/storage_tcb.cc +++ b/src/lib/storage_tcb.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * storage_tcb.cc * diff --git a/src/lib/storage_tcb.h b/src/lib/storage_tcb.h index dbac0657..47f2d463 100644 --- a/src/lib/storage_tcb.h +++ b/src/lib/storage_tcb.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * storage_tcb.h * diff --git a/src/lib/storage_tch.cc b/src/lib/storage_tch.cc index 14db1f68..e60465d5 100644 --- a/src/lib/storage_tch.cc +++ b/src/lib/storage_tch.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * storage_tch.cc * diff --git a/src/lib/storage_tch.h b/src/lib/storage_tch.h index 89684faf..01fa2de0 100644 --- a/src/lib/storage_tch.h +++ b/src/lib/storage_tch.h @@ -1,3 +1,23 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * Copyright (C) Kouhei Sutou + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * storage_tch.h * diff --git a/src/lib/thread.cc b/src/lib/thread.cc index ebb34b80..963fac86 100644 --- a/src/lib/thread.cc +++ b/src/lib/thread.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * thread.cc * diff --git a/src/lib/thread.h b/src/lib/thread.h index bd584ad6..bc6459a4 100644 --- a/src/lib/thread.h +++ b/src/lib/thread.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * thread.h * diff --git a/src/lib/thread_handler.h b/src/lib/thread_handler.h index b67f4b98..fb103dcf 100644 --- a/src/lib/thread_handler.h +++ b/src/lib/thread_handler.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * thread_handler.h * diff --git a/src/lib/thread_pool.cc b/src/lib/thread_pool.cc index 27e508d7..00ce2a4b 100644 --- a/src/lib/thread_pool.cc +++ b/src/lib/thread_pool.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * thread_pool.cc * diff --git a/src/lib/thread_pool.h b/src/lib/thread_pool.h index a0ad9150..af05ee05 100644 --- a/src/lib/thread_pool.h +++ b/src/lib/thread_pool.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * thread_pool.h * diff --git a/src/lib/thread_queue.cc b/src/lib/thread_queue.cc index 3b341f75..b4766e2d 100644 --- a/src/lib/thread_queue.cc +++ b/src/lib/thread_queue.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * thread_queue.cc * diff --git a/src/lib/thread_queue.h b/src/lib/thread_queue.h index 91e6fa43..2aa9c3d4 100644 --- a/src/lib/thread_queue.h +++ b/src/lib/thread_queue.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * thread_queue.h * diff --git a/src/lib/time_util.cc b/src/lib/time_util.cc index c7b3cce0..51d632fe 100644 --- a/src/lib/time_util.cc +++ b/src/lib/time_util.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * time_util.cc * diff --git a/src/lib/time_util.h b/src/lib/time_util.h index 7736f757..c2c5d94e 100644 --- a/src/lib/time_util.h +++ b/src/lib/time_util.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * time_util.h * diff --git a/src/lib/time_watcher.cc b/src/lib/time_watcher.cc index 43d5c2a3..6d69c7e6 100644 --- a/src/lib/time_watcher.cc +++ b/src/lib/time_watcher.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * time_watcher.h * diff --git a/src/lib/time_watcher.h b/src/lib/time_watcher.h index 8ab6ccd8..858ec5ea 100644 --- a/src/lib/time_watcher.h +++ b/src/lib/time_watcher.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * time_watcher.h * diff --git a/src/lib/time_watcher_observer.cc b/src/lib/time_watcher_observer.cc index bb83d7e6..f5092240 100644 --- a/src/lib/time_watcher_observer.cc +++ b/src/lib/time_watcher_observer.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * time_watcher_observer.cc * diff --git a/src/lib/time_watcher_observer.h b/src/lib/time_watcher_observer.h index c00f8e5c..9915e63e 100644 --- a/src/lib/time_watcher_observer.h +++ b/src/lib/time_watcher_observer.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * time_watcher_observer.h * diff --git a/src/lib/time_watcher_processor.cc b/src/lib/time_watcher_processor.cc index 1ef8b617..d1dc62e7 100644 --- a/src/lib/time_watcher_processor.cc +++ b/src/lib/time_watcher_processor.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * time_watcher_processor.cc * diff --git a/src/lib/time_watcher_processor.h b/src/lib/time_watcher_processor.h index 047a3711..1530789d 100644 --- a/src/lib/time_watcher_processor.h +++ b/src/lib/time_watcher_processor.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * time_watcher_processor.h * diff --git a/src/lib/time_watcher_scoped_observer.cc b/src/lib/time_watcher_scoped_observer.cc index e95ad8d1..bfafd6cb 100644 --- a/src/lib/time_watcher_scoped_observer.cc +++ b/src/lib/time_watcher_scoped_observer.cc @@ -1,10 +1,29 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** -* time_watcher_scoped_observer.cc -* -* @author Yuya YAGUCHI -* -* $Id$ -*/ + * time_watcher_scoped_observer.cc + * + * @author Yuya YAGUCHI + * + * $Id$ + */ #include "time_watcher_scoped_observer.h" #include "time_watcher_observer.h" @@ -21,4 +40,4 @@ time_watcher_scoped_observer::~time_watcher_scoped_observer() { } } // namespace flare -} // namespace gree \ No newline at end of file +} // namespace gree diff --git a/src/lib/time_watcher_scoped_observer.h b/src/lib/time_watcher_scoped_observer.h index 18af2cd5..200b1a4a 100644 --- a/src/lib/time_watcher_scoped_observer.h +++ b/src/lib/time_watcher_scoped_observer.h @@ -1,10 +1,29 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** -* time_watcher_scoped_observer.h -* -* @author Yuya YAGUCHI -* -* $Id$ -*/ + * time_watcher_scoped_observer.h + * + * @author Yuya YAGUCHI + * + * $Id$ + */ #ifndef TIME_WATCHER_SCOPED_OBSERVER_H #define TIME_WATCHER_SCOPED_OBSERVER_H @@ -27,4 +46,4 @@ class time_watcher_scoped_observer { } // namespace flare } // namespace gree -#endif \ No newline at end of file +#endif diff --git a/src/lib/time_watcher_target_info.h b/src/lib/time_watcher_target_info.h index 7b82bdeb..294cbc6c 100644 --- a/src/lib/time_watcher_target_info.h +++ b/src/lib/time_watcher_target_info.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ #ifndef TIME_WATHCER_TARGET_INFO_H #define TIME_WATHCER_TARGET_INFO_H diff --git a/src/lib/util.cc b/src/lib/util.cc index c2fbc754..92d9a376 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * util.cc * diff --git a/src/lib/util.h b/src/lib/util.h index d2e53c02..78ddf527 100644 --- a/src/lib/util.h +++ b/src/lib/util.h @@ -1,3 +1,23 @@ +/* + * Flare + * -------------- + * Copyright (C) 2004 Brazil + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * util.h * @@ -41,6 +61,7 @@ namespace flare { #define BUFSIZ 4096 #endif // BUFSIZ +// code from senna (http://qwik.jp/senna/) #define ATOMIC_ADD_X86_32(p,i,r) __asm__ __volatile__ ("lock; xaddl %0,%1" : "=r"(r), "=m"(*p) : "0"(i), "m" (*p)) #define ATOMIC_ADD_X86_64(p,i,r) __asm__ __volatile__ ("lock; xaddq %0,%1" : "=r"(r), "=m"(*p) : "0"(i), "m" (*p)) #define ATOMIC_ADD_PPC_32(p,i,r) __asm__ __volatile__ ("\n1:\n\tlwarx %0, 0, %1\n\tadd %0, %0, %2\n\tstwcx. %0, 0, %1\n\tbne- 1b\n\tsub %0, %0, %2" : "=&r" (r) : "r" (p), "r" (i) : "cc", "memory") diff --git a/src/lib/zookeeper_coordinator.cc b/src/lib/zookeeper_coordinator.cc index c6c21268..a93e1404 100644 --- a/src/lib/zookeeper_coordinator.cc +++ b/src/lib/zookeeper_coordinator.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * file_coordinator.cc * diff --git a/src/lib/zookeeper_coordinator.h b/src/lib/zookeeper_coordinator.h index bfba19ca..85f8c7bb 100644 --- a/src/lib/zookeeper_coordinator.h +++ b/src/lib/zookeeper_coordinator.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * zookeeper_coordinator.h * diff --git a/src/lib/zookeeper_lock.cc b/src/lib/zookeeper_lock.cc index 87923d13..0b29af18 100644 --- a/src/lib/zookeeper_lock.cc +++ b/src/lib/zookeeper_lock.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * zookeeper_lock.cc * diff --git a/src/lib/zookeeper_lock.h b/src/lib/zookeeper_lock.h index 543e401e..6b2425fb 100644 --- a/src/lib/zookeeper_lock.h +++ b/src/lib/zookeeper_lock.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * zookeeper_lock.h * diff --git a/test/lib/common_connection_tests.cc b/test/lib/common_connection_tests.cc index fb6ff2d5..d3afeb20 100644 --- a/test/lib/common_connection_tests.cc +++ b/test/lib/common_connection_tests.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * common_connection_tests.cc * diff --git a/test/lib/common_connection_tests.h b/test/lib/common_connection_tests.h index 5015375c..95d9a29f 100644 --- a/test/lib/common_connection_tests.h +++ b/test/lib/common_connection_tests.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * common_connection_tests.h * diff --git a/test/lib/common_storage_tests.cc b/test/lib/common_storage_tests.cc index e2217fa8..f8e3965c 100644 --- a/test/lib/common_storage_tests.cc +++ b/test/lib/common_storage_tests.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * common_storage_tests.cc * diff --git a/test/lib/common_storage_tests.h b/test/lib/common_storage_tests.h index 8db2c95e..8bec128a 100644 --- a/test/lib/common_storage_tests.h +++ b/test/lib/common_storage_tests.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * common_storage_tests.h * diff --git a/test/lib/connection_iostream.cc b/test/lib/connection_iostream.cc index b2958285..902c3481 100644 --- a/test/lib/connection_iostream.cc +++ b/test/lib/connection_iostream.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * connection_iostream.cc * diff --git a/test/lib/connection_iostream.h b/test/lib/connection_iostream.h index 4dbc39b4..edd460af 100644 --- a/test/lib/connection_iostream.h +++ b/test/lib/connection_iostream.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * connection_iostream.h * diff --git a/test/lib/mock_cluster.cc b/test/lib/mock_cluster.cc index ab86d596..d2ac475d 100644 --- a/test/lib/mock_cluster.cc +++ b/test/lib/mock_cluster.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * mock_cluster.cc * diff --git a/test/lib/mock_cluster.h b/test/lib/mock_cluster.h index 86772581..26ed8484 100644 --- a/test/lib/mock_cluster.h +++ b/test/lib/mock_cluster.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * mock_cluster.h * diff --git a/test/lib/mock_op_proxy_write.h b/test/lib/mock_op_proxy_write.h index 004a21e3..77890c3b 100644 --- a/test/lib/mock_op_proxy_write.h +++ b/test/lib/mock_op_proxy_write.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * mock_op_proxy_write.h * diff --git a/test/lib/mock_storage.cc b/test/lib/mock_storage.cc index dd81d99b..09ff1224 100644 --- a/test/lib/mock_storage.cc +++ b/test/lib/mock_storage.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * mock_storage.cc * diff --git a/test/lib/mock_storage.h b/test/lib/mock_storage.h index 83daf559..203992ac 100644 --- a/test/lib/mock_storage.h +++ b/test/lib/mock_storage.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * mock_storage.h * diff --git a/test/lib/test_binary_header.cc b/test/lib/test_binary_header.cc index b709cf8c..82aaf783 100644 --- a/test/lib/test_binary_header.cc +++ b/test/lib/test_binary_header.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_binary_header.cc * diff --git a/test/lib/test_cluster.cc b/test/lib/test_cluster.cc index 033ce50c..3659bd34 100644 --- a/test/lib/test_cluster.cc +++ b/test/lib/test_cluster.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_cluster.cc * diff --git a/test/lib/test_cluster_replication.cc b/test/lib/test_cluster_replication.cc index 55b99a26..98a1ceb6 100644 --- a/test/lib/test_cluster_replication.cc +++ b/test/lib/test_cluster_replication.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_cluster_replication.cc * diff --git a/test/lib/test_connection_iostream.cc b/test/lib/test_connection_iostream.cc index e3ddddd3..27b3585d 100644 --- a/test/lib/test_connection_iostream.cc +++ b/test/lib/test_connection_iostream.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_connection_iostream.cc * diff --git a/test/lib/test_connection_tcp.cc b/test/lib/test_connection_tcp.cc index 0bf9161f..93fe3aae 100644 --- a/test/lib/test_connection_tcp.cc +++ b/test/lib/test_connection_tcp.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_connection_tcp.cc * diff --git a/test/lib/test_connection_tcp.h b/test/lib/test_connection_tcp.h index 1ab06959..d9cdfd04 100644 --- a/test/lib/test_connection_tcp.h +++ b/test/lib/test_connection_tcp.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_connection_tcp.h * diff --git a/test/lib/test_file_coordinator.cc b/test/lib/test_file_coordinator.cc index b5b662f1..08fcfc64 100644 --- a/test/lib/test_file_coordinator.cc +++ b/test/lib/test_file_coordinator.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test-file-coordinator.cc * diff --git a/test/lib/test_handler_cluster_replication.cc b/test/lib/test_handler_cluster_replication.cc index 22eb88e1..f18333e6 100644 --- a/test/lib/test_handler_cluster_replication.cc +++ b/test/lib/test_handler_cluster_replication.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_handler_cluster_replication.cc * diff --git a/test/lib/test_handler_dump_replication.cc b/test/lib/test_handler_dump_replication.cc index a3c1968c..b4336ddb 100644 --- a/test/lib/test_handler_dump_replication.cc +++ b/test/lib/test_handler_dump_replication.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_handler_dump_replication.cc * diff --git a/test/lib/test_handler_proxy.cc b/test/lib/test_handler_proxy.cc index 994d2627..6a73512f 100644 --- a/test/lib/test_handler_proxy.cc +++ b/test/lib/test_handler_proxy.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_handler_proxy.cc * diff --git a/test/lib/test_key_resolver_modular.cc b/test/lib/test_key_resolver_modular.cc index cf618f8f..72adc89d 100644 --- a/test/lib/test_key_resolver_modular.cc +++ b/test/lib/test_key_resolver_modular.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_key_resolver_modular.cc * diff --git a/test/lib/test_op.cc b/test/lib/test_op.cc index 6fa141fa..c4663e02 100644 --- a/test/lib/test_op.cc +++ b/test/lib/test_op.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op.cc * diff --git a/test/lib/test_op.h b/test/lib/test_op.h index 49b1a0de..e7307643 100644 --- a/test/lib/test_op.h +++ b/test/lib/test_op.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op.h * diff --git a/test/lib/test_op_add.cc b/test/lib/test_op_add.cc index b995583b..a57e9d7e 100644 --- a/test/lib/test_op_add.cc +++ b/test/lib/test_op_add.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_add.cc * diff --git a/test/lib/test_op_append.cc b/test/lib/test_op_append.cc index 00fdbe3f..f5dfe574 100644 --- a/test/lib/test_op_append.cc +++ b/test/lib/test_op_append.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_append.cc * diff --git a/test/lib/test_op_cas.cc b/test/lib/test_op_cas.cc index 375875e1..1ac801dd 100644 --- a/test/lib/test_op_cas.cc +++ b/test/lib/test_op_cas.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_cas.cc * diff --git a/test/lib/test_op_decr.cc b/test/lib/test_op_decr.cc index c7470de6..4540e19c 100644 --- a/test/lib/test_op_decr.cc +++ b/test/lib/test_op_decr.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_decr.cc * diff --git a/test/lib/test_op_delete.cc b/test/lib/test_op_delete.cc index c2a751ca..e2927739 100644 --- a/test/lib/test_op_delete.cc +++ b/test/lib/test_op_delete.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_delete.cc * diff --git a/test/lib/test_op_dump.cc b/test/lib/test_op_dump.cc index 013d7404..59687673 100644 --- a/test/lib/test_op_dump.cc +++ b/test/lib/test_op_dump.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_dump.cc * diff --git a/test/lib/test_op_dump_key.cc b/test/lib/test_op_dump_key.cc index e17b00f1..95384659 100644 --- a/test/lib/test_op_dump_key.cc +++ b/test/lib/test_op_dump_key.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_dump_key.cc * diff --git a/test/lib/test_op_error.cc b/test/lib/test_op_error.cc index 52f98f55..42a46d10 100644 --- a/test/lib/test_op_error.cc +++ b/test/lib/test_op_error.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_error.cc * diff --git a/test/lib/test_op_flush_all.cc b/test/lib/test_op_flush_all.cc index b5f5746e..721a0716 100644 --- a/test/lib/test_op_flush_all.cc +++ b/test/lib/test_op_flush_all.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_flush_all.cc * diff --git a/test/lib/test_op_gat.cc b/test/lib/test_op_gat.cc index 7f86f7a8..221872a8 100644 --- a/test/lib/test_op_gat.cc +++ b/test/lib/test_op_gat.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_gat.cc * diff --git a/test/lib/test_op_get.cc b/test/lib/test_op_get.cc index c5bab6fb..a8d8e16b 100644 --- a/test/lib/test_op_get.cc +++ b/test/lib/test_op_get.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_get.cc * diff --git a/test/lib/test_op_gets.cc b/test/lib/test_op_gets.cc index 3d9a157c..e49f8e65 100644 --- a/test/lib/test_op_gets.cc +++ b/test/lib/test_op_gets.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_gets.cc * diff --git a/test/lib/test_op_incr.cc b/test/lib/test_op_incr.cc index d0fd71ab..d6e42cc5 100644 --- a/test/lib/test_op_incr.cc +++ b/test/lib/test_op_incr.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_incr.cc * diff --git a/test/lib/test_op_keys.cc b/test/lib/test_op_keys.cc index befe84ab..cdab54ec 100644 --- a/test/lib/test_op_keys.cc +++ b/test/lib/test_op_keys.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_keys.cc * diff --git a/test/lib/test_op_kill.cc b/test/lib/test_op_kill.cc index 287fd24e..1123f2e5 100644 --- a/test/lib/test_op_kill.cc +++ b/test/lib/test_op_kill.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_kill.cc * diff --git a/test/lib/test_op_meta.cc b/test/lib/test_op_meta.cc index c9c54591..4136024e 100644 --- a/test/lib/test_op_meta.cc +++ b/test/lib/test_op_meta.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_meta.cc * diff --git a/test/lib/test_op_node_add.cc b/test/lib/test_op_node_add.cc index 95d357eb..4c32b882 100644 --- a/test/lib/test_op_node_add.cc +++ b/test/lib/test_op_node_add.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_node_add.cc * diff --git a/test/lib/test_op_node_remove.cc b/test/lib/test_op_node_remove.cc index c5c532f4..ed00df0c 100644 --- a/test/lib/test_op_node_remove.cc +++ b/test/lib/test_op_node_remove.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_node_remove.cc * diff --git a/test/lib/test_op_node_role.cc b/test/lib/test_op_node_role.cc index 405c567e..c39840d5 100644 --- a/test/lib/test_op_node_role.cc +++ b/test/lib/test_op_node_role.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_node_role.cc * diff --git a/test/lib/test_op_node_state.cc b/test/lib/test_op_node_state.cc index 7163c274..979c58c3 100644 --- a/test/lib/test_op_node_state.cc +++ b/test/lib/test_op_node_state.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_node_state.cc * diff --git a/test/lib/test_op_node_sync.cc b/test/lib/test_op_node_sync.cc index 9152527f..80d11e1e 100644 --- a/test/lib/test_op_node_sync.cc +++ b/test/lib/test_op_node_sync.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_node_sync.cc * diff --git a/test/lib/test_op_parser.cc b/test/lib/test_op_parser.cc index 27cbfc7b..c01979db 100644 --- a/test/lib/test_op_parser.cc +++ b/test/lib/test_op_parser.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_parser.cc * diff --git a/test/lib/test_op_parser.h b/test/lib/test_op_parser.h index 357e1b3b..a8bd81ee 100644 --- a/test/lib/test_op_parser.h +++ b/test/lib/test_op_parser.h @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_parser.h * diff --git a/test/lib/test_op_ping.cc b/test/lib/test_op_ping.cc index ea4d9357..36f5a587 100644 --- a/test/lib/test_op_ping.cc +++ b/test/lib/test_op_ping.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_ping.cc * diff --git a/test/lib/test_op_prepend.cc b/test/lib/test_op_prepend.cc index 9e3564b1..fea227dd 100644 --- a/test/lib/test_op_prepend.cc +++ b/test/lib/test_op_prepend.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_prepend.cc * diff --git a/test/lib/test_op_quit.cc b/test/lib/test_op_quit.cc index a1b7542c..540eb43a 100644 --- a/test/lib/test_op_quit.cc +++ b/test/lib/test_op_quit.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_quit.cc * diff --git a/test/lib/test_op_replace.cc b/test/lib/test_op_replace.cc index a3507628..6c2c614a 100644 --- a/test/lib/test_op_replace.cc +++ b/test/lib/test_op_replace.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_replace.cc * diff --git a/test/lib/test_op_set.cc b/test/lib/test_op_set.cc index ec44b5ce..11bd3ef4 100644 --- a/test/lib/test_op_set.cc +++ b/test/lib/test_op_set.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_set.cc * diff --git a/test/lib/test_op_show.cc b/test/lib/test_op_show.cc index f70caa0f..1ce57216 100644 --- a/test/lib/test_op_show.cc +++ b/test/lib/test_op_show.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_show.cc * diff --git a/test/lib/test_op_shutdown.cc b/test/lib/test_op_shutdown.cc index 6960db26..1be7ffe2 100644 --- a/test/lib/test_op_shutdown.cc +++ b/test/lib/test_op_shutdown.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_shutdown.cc * diff --git a/test/lib/test_op_stats.cc b/test/lib/test_op_stats.cc index e659c32f..0592412d 100644 --- a/test/lib/test_op_stats.cc +++ b/test/lib/test_op_stats.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_stats.cc * diff --git a/test/lib/test_op_touch.cc b/test/lib/test_op_touch.cc index 3875f0b1..cf704b09 100644 --- a/test/lib/test_op_touch.cc +++ b/test/lib/test_op_touch.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_touch.cc * diff --git a/test/lib/test_op_verbosity.cc b/test/lib/test_op_verbosity.cc index 15c36f7e..a3d2a2e2 100644 --- a/test/lib/test_op_verbosity.cc +++ b/test/lib/test_op_verbosity.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_verbosity.cc * diff --git a/test/lib/test_op_version.cc b/test/lib/test_op_version.cc index eb75bf00..df9dbad2 100644 --- a/test/lib/test_op_version.cc +++ b/test/lib/test_op_version.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_op_version.cc * diff --git a/test/lib/test_queue_forward_query.cc b/test/lib/test_queue_forward_query.cc index 582715d2..fde0cdff 100644 --- a/test/lib/test_queue_forward_query.cc +++ b/test/lib/test_queue_forward_query.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_queue_forward_query.cc * diff --git a/test/lib/test_storage.cc b/test/lib/test_storage.cc index 91a59a53..bddcf9ab 100644 --- a/test/lib/test_storage.cc +++ b/test/lib/test_storage.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_storage.cc * diff --git a/test/lib/test_storage_entry.cc b/test/lib/test_storage_entry.cc index 8ec4722b..d47f63b6 100644 --- a/test/lib/test_storage_entry.cc +++ b/test/lib/test_storage_entry.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_storage_entry.cc * diff --git a/test/lib/test_storage_kch.cc b/test/lib/test_storage_kch.cc index cdf63fb7..37885fad 100644 --- a/test/lib/test_storage_kch.cc +++ b/test/lib/test_storage_kch.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_storage_tch.cc * diff --git a/test/lib/test_storage_tcb.cc b/test/lib/test_storage_tcb.cc index 889645d8..c5c5e6b2 100644 --- a/test/lib/test_storage_tcb.cc +++ b/test/lib/test_storage_tcb.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_storage_tcb.cc * diff --git a/test/lib/test_storage_tch.cc b/test/lib/test_storage_tch.cc index 10f31a0e..ffcb3ae7 100644 --- a/test/lib/test_storage_tch.cc +++ b/test/lib/test_storage_tch.cc @@ -1,3 +1,23 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * Copyright (C) Kouhei Sutou + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_storage_tch.cc * diff --git a/test/lib/test_thread_pool.cc b/test/lib/test_thread_pool.cc index 27f29c20..fc78b689 100644 --- a/test/lib/test_thread_pool.cc +++ b/test/lib/test_thread_pool.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_thread_pool.cc * diff --git a/test/lib/test_time_util.cc b/test/lib/test_time_util.cc index c9de4ee8..f4cf6d50 100644 --- a/test/lib/test_time_util.cc +++ b/test/lib/test_time_util.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ #include #include "time_util.h" diff --git a/test/lib/test_time_watcher.cc b/test/lib/test_time_watcher.cc index 496f74d4..4e28bab6 100644 --- a/test/lib/test_time_watcher.cc +++ b/test/lib/test_time_watcher.cc @@ -1,8 +1,27 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** -* test_time_watcher.cc -* -* @author Yuya YAGUCHI -*/ + * test_time_watcher.cc + * + * @author Yuya YAGUCHI + */ #include @@ -98,4 +117,4 @@ void cut_teardown() { delete tw; } -} \ No newline at end of file +} diff --git a/test/lib/test_util.cc b/test/lib/test_util.cc index 72983839..d6ae7203 100644 --- a/test/lib/test_util.cc +++ b/test/lib/test_util.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test_util.cc * diff --git a/test/lib/test_zookeeper_coordinator.cc b/test/lib/test_zookeeper_coordinator.cc index fd199949..113edc61 100644 --- a/test/lib/test_zookeeper_coordinator.cc +++ b/test/lib/test_zookeeper_coordinator.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test-zookeeper-coordinator.cc * diff --git a/test/lib/test_zookeeper_lock.cc b/test/lib/test_zookeeper_lock.cc index f1949b58..42d6effd 100644 --- a/test/lib/test_zookeeper_lock.cc +++ b/test/lib/test_zookeeper_lock.cc @@ -1,3 +1,22 @@ +/* + * Flare + * -------------- + * Copyright (C) 2008-2014 GREE, Inc. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ /** * test-zookeeper-coordinator.cc * From b151af8e314fc175758d89c5541c3ca985b2b939 Mon Sep 17 00:00:00 2001 From: Kiyoshi Ikehara Date: Mon, 10 Nov 2014 10:51:05 +0900 Subject: [PATCH 13/14] Add circle.yml and Dockerfile to test flare on circle-ci --- Dockerfile | 31 +++++++++++++++++++++++++++++++ circle.yml | 13 +++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 Dockerfile create mode 100644 circle.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..86c2dca5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,31 @@ +FROM ubuntu:14.04 +RUN apt-get -y update +RUN apt-get -y --force-yes install cutter-testing-framework +RUN apt-get -y --force-yes install \ + autoconf \ + automake \ + libtool \ + make \ + gcc \ + g++ \ + libboost-all-dev \ + zlib1g-dev \ + libncursesw5 \ + git \ + libhashkit-dev \ + libtokyocabinet-dev \ + libkyotocabinet-dev \ + uuid-dev \ + libsqlite3-dev \ + libncurses5-dev \ + libcurl4-openssl-dev \ + devscripts \ + git-buildpackage && \ + apt-get clean + +ADD . /tmp/flare +RUN cd /tmp/flare && ./autogen.sh && ./configure && make && make install +RUN cd /tmp/flare/test && bash ./run-tests.sh + +CMD ["/usr/local/bin/flared", "-f", "/etc/flared.conf"] + diff --git a/circle.yml b/circle.yml new file mode 100644 index 00000000..aa2409d4 --- /dev/null +++ b/circle.yml @@ -0,0 +1,13 @@ +machine: + timezone: Asia/Tokyo + services: + - docker + +dependencies: + override: + - docker info + - docker build -t gree/flare . + +test: + override: + - docker run -d -p 12121:12121 gree/flare From 08d4ab9a4aa51a0ba86257709538af40ba150594 Mon Sep 17 00:00:00 2001 From: Kiyoshi Ikehara Date: Tue, 16 Dec 2014 12:03:27 +0900 Subject: [PATCH 14/14] Only build master and coverity_scan branches on travis-ci --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 796552c7..008044ac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,3 +46,7 @@ script: - make check && sudo make install - flare-tests +branches: + only: + - master + - coverity_scan