Publisher subscribe pattern - PPCA2014/ppca_soa GitHub Wiki

PPCA_SOA disponibiliza um módulo chamado ppca_event_mq.erl para implementar o publisher/subscribe pattern. Este módulo disponibiliza as seguintes funções:

  1. start/0

  2. adiciona_evento/1

  3. registra_interesse/2

  4. notifica_evento/2

  5. lista_evento/0

  6. lista_interesse/0

O exemplo abaixo demonstra o funcionamento do módulo:

erl
1> ppca_event_mq:start().
true

2> ppca_event_mq:adiciona_evento(novo_aluno).
ok

3> ppca_event_mq:adiciona_evento(pre_matricula).   
ok

4> ppca_event_mq:adiciona_evento(matricula_aberta).
ok

5> ppca_event_mq:adiciona_evento(matricula_encerrada).
ok

6> ppca_event_mq:adiciona_evento(semana_academica).   
ok

7> ppca_event_mq:registra_interesse(novo_aluno, fun(Evento, Motivo) -> io:format("Evento: ~p, Motivo: ~p.~n", [Evento, Motivo]) end).
ok

8> ppca_event_mq:lista_evento().
[semana_academica,matricula_encerrada,matricula_aberta,
 pre_matricula,novo_aluno]

9> ppca_event_mq:lista_interesse().
[{novo_aluno,#Fun<erl_eval.12.90072148>}]

10> ppca_event_mq:notifica_evento(novo_aluno, "Everton Agilar foi matriculado").
Evento: novo_aluno, Motivo: "Everton Agilar foi matriculado".
ok