examples/lm/iq.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Mon, 21 Mar 2016 02:04:02 +0200
changeset 152 0cf6c938ac03
parent 68 742878c74b8e
permissions -rw-r--r--
api: Minor fix
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
68
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
-- CORE, IQ
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
-- library
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
local lm = require 'lm'
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
--
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
local F = { }
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
function F.send ( conn, to, smtype, data, success, fail )
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
	data.mtype = 'iq-' .. smtype
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
	data.to    = to
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
	conn:send ( lm.message.create ( data ),
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
		function ( conn, mess )
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
			local mtype, smtype = mess:type ()
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
			if smtype == 'result' then
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
				success ( mess )
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
			elseif smtype == 'error' then
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
				fail ( mess:child( 'error' ):child():name (), mess ) -- FIXME
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
			else
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
				fail ( mess:xml (), mess )
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
				return false
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
			end
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
			return true
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
		end )
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
end
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
return F
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
742878c74b8e Lm separation, privacy
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
-- vim: se ts=4: --