You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by fd...@apache.org on 2010/08/03 19:17:05 UTC

svn commit: r981974 - /couchdb/branches/new_replicator/src/couchdb/couch_replication_notifier.erl

Author: fdmanana
Date: Tue Aug  3 17:17:05 2010
New Revision: 981974

URL: http://svn.apache.org/viewvc?rev=981974&view=rev
Log:
Add missing file in revision 981973.

Added:
    couchdb/branches/new_replicator/src/couchdb/couch_replication_notifier.erl

Added: couchdb/branches/new_replicator/src/couchdb/couch_replication_notifier.erl
URL: http://svn.apache.org/viewvc/couchdb/branches/new_replicator/src/couchdb/couch_replication_notifier.erl?rev=981974&view=auto
==============================================================================
--- couchdb/branches/new_replicator/src/couchdb/couch_replication_notifier.erl (added)
+++ couchdb/branches/new_replicator/src/couchdb/couch_replication_notifier.erl Tue Aug  3 17:17:05 2010
@@ -0,0 +1,57 @@
+% Licensed 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.
+
+-module(couch_replication_notifier).
+
+-behaviour(gen_event).
+
+% public API
+-export([start_link/1, stop/1, notify/1]).
+
+% gen_event callbacks
+-export([init/1, terminate/2, code_change/3]).
+-export([handle_event/2, handle_call/2, handle_info/2]).
+
+-include("couch_db.hrl").
+
+start_link(FunAcc) ->
+    couch_event_sup:start_link(couch_replication,
+        {couch_replication_notifier, make_ref()}, FunAcc).
+
+notify(Event) ->
+    gen_event:notify(couch_replication, Event).
+
+stop(Pid) ->
+    couch_event_sup:stop(Pid).
+
+
+init(FunAcc) ->
+    {ok, FunAcc}.
+
+terminate(_Reason, _State) ->
+    ok.
+
+handle_event(Event, Fun) when is_function(Fun, 1) ->
+    Fun(Event),
+    {ok, Fun};
+handle_event(Event, {Fun, Acc}) when is_function(Fun, 2) ->
+    Acc2 = Fun(Event, Acc),
+    {ok, {Fun, Acc2}}.
+
+handle_call(_Msg, State) ->
+    {reply, ok, State}.
+
+handle_info(_Msg, State) ->
+    {ok, State}.
+
+code_change(_OldVsn, State, _Extra) ->
+    {ok, State}.