Blob Blame History Raw
From bbc2a73e09667b5eafd4c1f9fdb0da6edf27b6e8 Mon Sep 17 00:00:00 2001
From: Peter Lemenkov <lemenkov@gmail.com>
Date: Mon, 11 Mar 2013 17:17:37 +0400
Subject: [PATCH 1/1] Proper file layout

Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
---
 ebin/riak_sysmon.app                    |  21 -----
 example/riak_sysmon_example_handler.erl | 140 ++++++++++++++++++++++++++++
 src/riak_sysmon.app.src                 |  15 +++
 src/riak_sysmon_example_handler.erl     | 140 ----------------------------
 src/riak_sysmon_testhandler.erl         | 158 --------------------------------
 test/riak_sysmon_testhandler.erl        | 158 ++++++++++++++++++++++++++++++++
 6 files changed, 313 insertions(+), 319 deletions(-)
 delete mode 100644 ebin/riak_sysmon.app
 create mode 100644 example/riak_sysmon_example_handler.erl
 create mode 100644 src/riak_sysmon.app.src
 delete mode 100644 src/riak_sysmon_example_handler.erl
 delete mode 100644 src/riak_sysmon_testhandler.erl
 create mode 100644 test/riak_sysmon_testhandler.erl

diff --git a/ebin/riak_sysmon.app b/ebin/riak_sysmon.app
deleted file mode 100644
index 57d2ba5..0000000
--- a/ebin/riak_sysmon.app
+++ /dev/null
@@ -1,21 +0,0 @@
-{application, riak_sysmon,
- [
-  {description, "Rate-limiting system_monitor event handler"},
-  {vsn, "1.1.3"},
-  {modules, [
-             riak_sysmon_app,
-             riak_sysmon_example_handler,
-             riak_sysmon_filter,
-             riak_sysmon_sup,
-             riak_sysmon_testhandler
-            ]},
-  {applications, [
-                  kernel,
-                  stdlib,
-                  sasl
-                 ]},
-  {registered, []},
-  {mod, {riak_sysmon_app, []}},
-  {env, [
-        ]}
- ]}.
diff --git a/example/riak_sysmon_example_handler.erl b/example/riak_sysmon_example_handler.erl
new file mode 100644
index 0000000..a5d7b6f
--- /dev/null
+++ b/example/riak_sysmon_example_handler.erl
@@ -0,0 +1,140 @@
+%% Copyright (c) 2011 Basho Technologies, Inc.  All Rights Reserved.
+%%
+%% This file is provided to you under the Apache License,
+%% Version 2.0 (the "License"); you may not use this file
+%% except in compliance with the License.  You may obtain
+%% a copy of the License at
+%%
+%%   http://www.apache.org/licenses/LICENSE-2.0
+%%
+%% Unless required by applicable law or agreed to in writing,
+%% software distributed under the License is distributed on an
+%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+%% KIND, either express or implied.  See the License for the
+%% specific language governing permissions and limitations
+%% under the License.
+
+%% @doc A simple example for adding a custom event handler (this module)
+%% to the `riak_sysmon' application's `system_monitor' event manager.
+
+-module(riak_sysmon_example_handler).
+
+-behaviour(gen_event).
+
+%% API
+-export([add_handler/0, get_call_count/0]).
+
+%% gen_event callbacks
+-export([init/1, handle_event/2, handle_call/2, 
+         handle_info/2, terminate/2, code_change/3]).
+
+-record(state, {
+          count = 0 :: integer()
+         }).
+
+%%%===================================================================
+%%% gen_event callbacks
+%%%===================================================================
+
+add_handler() ->
+    riak_sysmon_filter:add_custom_handler(?MODULE, []).
+
+get_call_count() ->
+    riak_sysmon_filter:call_custom_handler(?MODULE, get_call_count, infinity).
+
+%%%===================================================================
+%%% gen_event callbacks
+%%%===================================================================
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% Whenever a new event handler is added to an event manager,
+%% this function is called to initialize the event handler.
+%%
+%% @spec init(Args) -> {ok, State}
+%% @end
+%%--------------------------------------------------------------------
+init([]) ->
+    {ok, #state{}}.
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% Whenever an event manager receives an event sent using
+%% gen_event:notify/2 or gen_event:sync_notify/2, this function is
+%% called for each installed event handler to handle the event.
+%%
+%% @spec handle_event(Event, State) ->
+%%                          {ok, State} |
+%%                          {swap_handler, Args1, State1, Mod2, Args2} |
+%%                          remove_handler
+%% @end
+%%--------------------------------------------------------------------
+handle_event(Event, #state{count = Count} = State) ->
+    error_logger:info_msg("Example: event ~P\n", [Event, 20]),
+    {ok, State#state{count = Count + 1}}.
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% Whenever an event manager receives a request sent using
+%% gen_event:call/3,4, this function is called for the specified
+%% event handler to handle the request.
+%%
+%% @spec handle_call(Request, State) ->
+%%                   {ok, Reply, State} |
+%%                   {swap_handler, Reply, Args1, State1, Mod2, Args2} |
+%%                   {remove_handler, Reply}
+%% @end
+%%--------------------------------------------------------------------
+handle_call(get_call_count, State) ->
+    Reply = State#state.count,
+    {ok, Reply, State}.
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% This function is called for each installed event handler when
+%% an event manager receives any other message than an event or a
+%% synchronous request (or a system message).
+%%
+%% @spec handle_info(Info, State) ->
+%%                         {ok, State} |
+%%                         {swap_handler, Args1, State1, Mod2, Args2} |
+%%                         remove_handler
+%% @end
+%%--------------------------------------------------------------------
+handle_info(Info, State) ->
+    error_logger:info_msg("Example: FYI, handle_info got ~p\n", [Info]),
+    {ok, State}.
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% Whenever an event handler is deleted from an event manager, this
+%% function is called. It should be the opposite of Module:init/1 and
+%% do any necessary cleaning up.
+%%
+%% @spec terminate(Reason, State) -> void()
+%% @end
+%%--------------------------------------------------------------------
+terminate(Reason, State) ->
+    error_logger:info_msg("Example: stopping because ~p, my count ~p\n",
+                          [Reason, State#state.count]),
+    ok.
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% Convert process state when code is changed
+%%
+%% @spec code_change(OldVsn, State, Extra) -> {ok, NewState}
+%% @end
+%%--------------------------------------------------------------------
+code_change(_OldVsn, State, _Extra) ->
+    {ok, State}.
+
+%%%===================================================================
+%%% Internal functions
+%%%===================================================================
diff --git a/src/riak_sysmon.app.src b/src/riak_sysmon.app.src
new file mode 100644
index 0000000..3b31fba
--- /dev/null
+++ b/src/riak_sysmon.app.src
@@ -0,0 +1,15 @@
+{application, riak_sysmon,
+ [
+  {description, "Rate-limiting system_monitor event handler"},
+  {vsn, "1.1.3"},
+  {modules, []},
+  {applications, [
+                  kernel,
+                  stdlib,
+                  sasl
+                 ]},
+  {registered, []},
+  {mod, {riak_sysmon_app, []}},
+  {env, [
+        ]}
+ ]}.
diff --git a/src/riak_sysmon_example_handler.erl b/src/riak_sysmon_example_handler.erl
deleted file mode 100644
index a5d7b6f..0000000
--- a/src/riak_sysmon_example_handler.erl
+++ /dev/null
@@ -1,140 +0,0 @@
-%% Copyright (c) 2011 Basho Technologies, Inc.  All Rights Reserved.
-%%
-%% This file is provided to you under the Apache License,
-%% Version 2.0 (the "License"); you may not use this file
-%% except in compliance with the License.  You may obtain
-%% a copy of the License at
-%%
-%%   http://www.apache.org/licenses/LICENSE-2.0
-%%
-%% Unless required by applicable law or agreed to in writing,
-%% software distributed under the License is distributed on an
-%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-%% KIND, either express or implied.  See the License for the
-%% specific language governing permissions and limitations
-%% under the License.
-
-%% @doc A simple example for adding a custom event handler (this module)
-%% to the `riak_sysmon' application's `system_monitor' event manager.
-
--module(riak_sysmon_example_handler).
-
--behaviour(gen_event).
-
-%% API
--export([add_handler/0, get_call_count/0]).
-
-%% gen_event callbacks
--export([init/1, handle_event/2, handle_call/2, 
-         handle_info/2, terminate/2, code_change/3]).
-
--record(state, {
-          count = 0 :: integer()
-         }).
-
-%%%===================================================================
-%%% gen_event callbacks
-%%%===================================================================
-
-add_handler() ->
-    riak_sysmon_filter:add_custom_handler(?MODULE, []).
-
-get_call_count() ->
-    riak_sysmon_filter:call_custom_handler(?MODULE, get_call_count, infinity).
-
-%%%===================================================================
-%%% gen_event callbacks
-%%%===================================================================
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% Whenever a new event handler is added to an event manager,
-%% this function is called to initialize the event handler.
-%%
-%% @spec init(Args) -> {ok, State}
-%% @end
-%%--------------------------------------------------------------------
-init([]) ->
-    {ok, #state{}}.
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% Whenever an event manager receives an event sent using
-%% gen_event:notify/2 or gen_event:sync_notify/2, this function is
-%% called for each installed event handler to handle the event.
-%%
-%% @spec handle_event(Event, State) ->
-%%                          {ok, State} |
-%%                          {swap_handler, Args1, State1, Mod2, Args2} |
-%%                          remove_handler
-%% @end
-%%--------------------------------------------------------------------
-handle_event(Event, #state{count = Count} = State) ->
-    error_logger:info_msg("Example: event ~P\n", [Event, 20]),
-    {ok, State#state{count = Count + 1}}.
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% Whenever an event manager receives a request sent using
-%% gen_event:call/3,4, this function is called for the specified
-%% event handler to handle the request.
-%%
-%% @spec handle_call(Request, State) ->
-%%                   {ok, Reply, State} |
-%%                   {swap_handler, Reply, Args1, State1, Mod2, Args2} |
-%%                   {remove_handler, Reply}
-%% @end
-%%--------------------------------------------------------------------
-handle_call(get_call_count, State) ->
-    Reply = State#state.count,
-    {ok, Reply, State}.
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% This function is called for each installed event handler when
-%% an event manager receives any other message than an event or a
-%% synchronous request (or a system message).
-%%
-%% @spec handle_info(Info, State) ->
-%%                         {ok, State} |
-%%                         {swap_handler, Args1, State1, Mod2, Args2} |
-%%                         remove_handler
-%% @end
-%%--------------------------------------------------------------------
-handle_info(Info, State) ->
-    error_logger:info_msg("Example: FYI, handle_info got ~p\n", [Info]),
-    {ok, State}.
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% Whenever an event handler is deleted from an event manager, this
-%% function is called. It should be the opposite of Module:init/1 and
-%% do any necessary cleaning up.
-%%
-%% @spec terminate(Reason, State) -> void()
-%% @end
-%%--------------------------------------------------------------------
-terminate(Reason, State) ->
-    error_logger:info_msg("Example: stopping because ~p, my count ~p\n",
-                          [Reason, State#state.count]),
-    ok.
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% Convert process state when code is changed
-%%
-%% @spec code_change(OldVsn, State, Extra) -> {ok, NewState}
-%% @end
-%%--------------------------------------------------------------------
-code_change(_OldVsn, State, _Extra) ->
-    {ok, State}.
-
-%%%===================================================================
-%%% Internal functions
-%%%===================================================================
diff --git a/src/riak_sysmon_testhandler.erl b/src/riak_sysmon_testhandler.erl
deleted file mode 100644
index 74f77ba..0000000
--- a/src/riak_sysmon_testhandler.erl
+++ /dev/null
@@ -1,158 +0,0 @@
-%% Copyright (c) 2011 Basho Technologies, Inc.  All Rights Reserved.
-%%
-%% This file is provided to you under the Apache License,
-%% Version 2.0 (the "License"); you may not use this file
-%% except in compliance with the License.  You may obtain
-%% a copy of the License at
-%%
-%%   http://www.apache.org/licenses/LICENSE-2.0
-%%
-%% Unless required by applicable law or agreed to in writing,
-%% software distributed under the License is distributed on an
-%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-%% KIND, either express or implied.  See the License for the
-%% specific language governing permissions and limitations
-%% under the License.
-
-%% @doc Support for EUnit testing: simple event-collecting event handler.
-
--module(riak_sysmon_testhandler).
-
--ifdef(TEST).
-
--behaviour(gen_event).
-
-%% API
--export([start_link/0, add_handler/1, get_events/1]).
-
-%% gen_event callbacks
--export([init/1, handle_event/2, handle_call/2, 
-         handle_info/2, terminate/2, code_change/3]).
-
--record(state, {
-          list = [] :: list()
-         }).
-
-%%%===================================================================
-%%% gen_event callbacks
-%%%===================================================================
-
-%%--------------------------------------------------------------------
-%% @doc
-%% Creates an event manager
-%%
-%% @spec start_link() -> {ok, Pid} | {error, Error}
-%% @end
-%%--------------------------------------------------------------------
-start_link() ->
-    gen_event:start_link({local, ?MODULE}).
-
-%%--------------------------------------------------------------------
-%% @doc
-%% Adds an event handler
-%%
-%% @spec add_handler(gen_event:emgr_name()) -> ok | {'EXIT', Reason} | term()
-%% @end
-%%--------------------------------------------------------------------
-add_handler(EventServer) ->
-    gen_event:add_sup_handler(EventServer, ?MODULE, []).
-
-get_events(EventServer) ->
-    gen_event:call(EventServer, ?MODULE, get_events).
-
-%%%===================================================================
-%%% gen_event callbacks
-%%%===================================================================
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% Whenever a new event handler is added to an event manager,
-%% this function is called to initialize the event handler.
-%%
-%% @spec init(Args) -> {ok, State}
-%% @end
-%%--------------------------------------------------------------------
-init([]) ->
-    {ok, #state{}}.
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% Whenever an event manager receives an event sent using
-%% gen_event:notify/2 or gen_event:sync_notify/2, this function is
-%% called for each installed event handler to handle the event.
-%%
-%% @spec handle_event(Event, State) ->
-%%                          {ok, State} |
-%%                          {swap_handler, Args1, State1, Mod2, Args2} |
-%%                          remove_handler
-%% @end
-%%--------------------------------------------------------------------
-handle_event(Event, #state{list = List} = State) ->
-    {ok, State#state{list = [Event|List]}}.
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% Whenever an event manager receives a request sent using
-%% gen_event:call/3,4, this function is called for the specified
-%% event handler to handle the request.
-%%
-%% @spec handle_call(Request, State) ->
-%%                   {ok, Reply, State} |
-%%                   {swap_handler, Reply, Args1, State1, Mod2, Args2} |
-%%                   {remove_handler, Reply}
-%% @end
-%%--------------------------------------------------------------------
-handle_call(get_events, State) ->
-    {ok, lists:reverse(State#state.list), State#state{list = []}};
-handle_call(_Request, State) ->
-    Reply = not_supported,
-    {ok, Reply, State}.
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% This function is called for each installed event handler when
-%% an event manager receives any other message than an event or a
-%% synchronous request (or a system message).
-%%
-%% @spec handle_info(Info, State) ->
-%%                         {ok, State} |
-%%                         {swap_handler, Args1, State1, Mod2, Args2} |
-%%                         remove_handler
-%% @end
-%%--------------------------------------------------------------------
-handle_info(_Info, State) ->
-    {ok, State}.
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% Whenever an event handler is deleted from an event manager, this
-%% function is called. It should be the opposite of Module:init/1 and
-%% do any necessary cleaning up.
-%%
-%% @spec terminate(Reason, State) -> void()
-%% @end
-%%--------------------------------------------------------------------
-terminate(_Reason, _State) ->
-    ok.
-
-%%--------------------------------------------------------------------
-%% @private
-%% @doc
-%% Convert process state when code is changed
-%%
-%% @spec code_change(OldVsn, State, Extra) -> {ok, NewState}
-%% @end
-%%--------------------------------------------------------------------
-code_change(_OldVsn, State, _Extra) ->
-    {ok, State}.
-
-%%%===================================================================
-%%% Internal functions
-%%%===================================================================
-
--endif. % TEST
diff --git a/test/riak_sysmon_testhandler.erl b/test/riak_sysmon_testhandler.erl
new file mode 100644
index 0000000..74f77ba
--- /dev/null
+++ b/test/riak_sysmon_testhandler.erl
@@ -0,0 +1,158 @@
+%% Copyright (c) 2011 Basho Technologies, Inc.  All Rights Reserved.
+%%
+%% This file is provided to you under the Apache License,
+%% Version 2.0 (the "License"); you may not use this file
+%% except in compliance with the License.  You may obtain
+%% a copy of the License at
+%%
+%%   http://www.apache.org/licenses/LICENSE-2.0
+%%
+%% Unless required by applicable law or agreed to in writing,
+%% software distributed under the License is distributed on an
+%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+%% KIND, either express or implied.  See the License for the
+%% specific language governing permissions and limitations
+%% under the License.
+
+%% @doc Support for EUnit testing: simple event-collecting event handler.
+
+-module(riak_sysmon_testhandler).
+
+-ifdef(TEST).
+
+-behaviour(gen_event).
+
+%% API
+-export([start_link/0, add_handler/1, get_events/1]).
+
+%% gen_event callbacks
+-export([init/1, handle_event/2, handle_call/2, 
+         handle_info/2, terminate/2, code_change/3]).
+
+-record(state, {
+          list = [] :: list()
+         }).
+
+%%%===================================================================
+%%% gen_event callbacks
+%%%===================================================================
+
+%%--------------------------------------------------------------------
+%% @doc
+%% Creates an event manager
+%%
+%% @spec start_link() -> {ok, Pid} | {error, Error}
+%% @end
+%%--------------------------------------------------------------------
+start_link() ->
+    gen_event:start_link({local, ?MODULE}).
+
+%%--------------------------------------------------------------------
+%% @doc
+%% Adds an event handler
+%%
+%% @spec add_handler(gen_event:emgr_name()) -> ok | {'EXIT', Reason} | term()
+%% @end
+%%--------------------------------------------------------------------
+add_handler(EventServer) ->
+    gen_event:add_sup_handler(EventServer, ?MODULE, []).
+
+get_events(EventServer) ->
+    gen_event:call(EventServer, ?MODULE, get_events).
+
+%%%===================================================================
+%%% gen_event callbacks
+%%%===================================================================
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% Whenever a new event handler is added to an event manager,
+%% this function is called to initialize the event handler.
+%%
+%% @spec init(Args) -> {ok, State}
+%% @end
+%%--------------------------------------------------------------------
+init([]) ->
+    {ok, #state{}}.
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% Whenever an event manager receives an event sent using
+%% gen_event:notify/2 or gen_event:sync_notify/2, this function is
+%% called for each installed event handler to handle the event.
+%%
+%% @spec handle_event(Event, State) ->
+%%                          {ok, State} |
+%%                          {swap_handler, Args1, State1, Mod2, Args2} |
+%%                          remove_handler
+%% @end
+%%--------------------------------------------------------------------
+handle_event(Event, #state{list = List} = State) ->
+    {ok, State#state{list = [Event|List]}}.
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% Whenever an event manager receives a request sent using
+%% gen_event:call/3,4, this function is called for the specified
+%% event handler to handle the request.
+%%
+%% @spec handle_call(Request, State) ->
+%%                   {ok, Reply, State} |
+%%                   {swap_handler, Reply, Args1, State1, Mod2, Args2} |
+%%                   {remove_handler, Reply}
+%% @end
+%%--------------------------------------------------------------------
+handle_call(get_events, State) ->
+    {ok, lists:reverse(State#state.list), State#state{list = []}};
+handle_call(_Request, State) ->
+    Reply = not_supported,
+    {ok, Reply, State}.
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% This function is called for each installed event handler when
+%% an event manager receives any other message than an event or a
+%% synchronous request (or a system message).
+%%
+%% @spec handle_info(Info, State) ->
+%%                         {ok, State} |
+%%                         {swap_handler, Args1, State1, Mod2, Args2} |
+%%                         remove_handler
+%% @end
+%%--------------------------------------------------------------------
+handle_info(_Info, State) ->
+    {ok, State}.
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% Whenever an event handler is deleted from an event manager, this
+%% function is called. It should be the opposite of Module:init/1 and
+%% do any necessary cleaning up.
+%%
+%% @spec terminate(Reason, State) -> void()
+%% @end
+%%--------------------------------------------------------------------
+terminate(_Reason, _State) ->
+    ok.
+
+%%--------------------------------------------------------------------
+%% @private
+%% @doc
+%% Convert process state when code is changed
+%%
+%% @spec code_change(OldVsn, State, Extra) -> {ok, NewState}
+%% @end
+%%--------------------------------------------------------------------
+code_change(_OldVsn, State, _Extra) ->
+    {ok, State}.
+
+%%%===================================================================
+%%% Internal functions
+%%%===================================================================
+
+-endif. % TEST
-- 
1.8.1.4