diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2010-06-17 13:07:17 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2010-06-17 13:07:17 +0200 |
commit | bdaae5b6704e29919ec7f284b9e3abe54f96f2f8 (patch) | |
tree | 75b3860a2cea86ec7e55d978730b13e41c8015da /src/core/ephraim_conn.erl | |
parent | ca7a0bfa5dd63fc45df0a46800a76d7048e70f2b (diff) | |
download | ephraim-bdaae5b6704e29919ec7f284b9e3abe54f96f2f8.tar ephraim-bdaae5b6704e29919ec7f284b9e3abe54f96f2f8.zip |
Added CMake build system
Diffstat (limited to 'src/core/ephraim_conn.erl')
-rw-r--r-- | src/core/ephraim_conn.erl | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/core/ephraim_conn.erl b/src/core/ephraim_conn.erl new file mode 100644 index 0000000..18edd6a --- /dev/null +++ b/src/core/ephraim_conn.erl @@ -0,0 +1,45 @@ +-module(ephraim_conn). +-include_lib("exmpp/include/exmpp_client.hrl"). +-compile([debug_info, export_all]). + +-record(conn_state, { + session :: any(), + roster :: any() + }). + +-spec init() -> ok. +init() -> + application:start(exmpp), + Session = exmpp_session:start(), + JID = exmpp_jid:make("ephraim-test", "jabber.ccc.de", "Bar"), + exmpp_session:auth_basic_digest(Session, JID, "foobarbla"), + exmpp_session:connect_TCP(Session, "jabber.ccc.de", 5222), + session(#conn_state{session=Session}). + +-spec session(#conn_state{}) -> ok. +session(State) -> + exmpp_session:login(State#conn_state.session), + exmpp_session:send_packet(State#conn_state.session, exmpp_presence:set_status(exmpp_presence:available(), "Foo/Test\\Bar")), + loop(State). + +-spec loop(#conn_state{}) -> ok. +loop(State) -> + receive + stop -> + exmpp_session:stop(State#conn_state.session); + + #received_packet{packet_type=presence, raw_packet=Packet} -> + From = exmpp_xml:get_attribute(Packet, from, <<"unknown">>), + Type = atom_to_list(exmpp_presence:get_type(Packet)), + Status = exmpp_presence:get_status(Packet), + io:format("~ts is now ~ts: ~ts~n", [From, Type, Status]), + loop(State); + + #received_packet{packet_type=message, raw_packet=Packet} -> + From = exmpp_xml:get_attribute(Packet, from, <<"unknown">>), + ephraim ! {receive_message, From, Packet}, + loop(State); + Msg -> + io:format("ephraim_conn: ~p~n", [Msg]), + loop(State) + end. |