examples/iq.lua
author Myhailo Danylenko <isbear@ukrpost.net>
Fri, 27 Mar 2009 01:46:53 +0200
changeset 64 bf7521ed96eb
parent 49 95f3bf77c598
child 66 542f61e113cb
permissions -rw-r--r--
Rewrite of ibb in object style
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
43
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
-- CORE, IQ
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
-- library
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
require 'lm'
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
-- public
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
64
bf7521ed96eb Rewrite of ibb in object style
Myhailo Danylenko <isbear@ukrpost.net>
parents: 49
diff changeset
    10
local F = { }
43
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
64
bf7521ed96eb Rewrite of ibb in object style
Myhailo Danylenko <isbear@ukrpost.net>
parents: 49
diff changeset
    12
function F.send ( conn, to, smtype, data, success, fail )
43
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
	data.mtype = 'iq-' .. smtype
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
	data.to    = to
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
	conn:send ( lm.message.create ( data ),
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
		function ( conn, mess )
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
			local mtype, smtype = mess:type ()
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
			if smtype == 'result' then
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
				success ( mess )
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
			elseif smtype == 'error' then
49
95f3bf77c598 Forms in modular way
Myhailo Danylenko <isbear@ukrpost.net>
parents: 43
diff changeset
    21
				fail ( mess:child( 'error' ):children():name (), mess ) -- FIXME
43
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
			else
49
95f3bf77c598 Forms in modular way
Myhailo Danylenko <isbear@ukrpost.net>
parents: 43
diff changeset
    23
				fail ( mess:xml (), mess )
43
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
				return false
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
			end
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
			return true
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
		end )
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
end
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
64
bf7521ed96eb Rewrite of ibb in object style
Myhailo Danylenko <isbear@ukrpost.net>
parents: 49
diff changeset
    30
return F
bf7521ed96eb Rewrite of ibb in object style
Myhailo Danylenko <isbear@ukrpost.net>
parents: 49
diff changeset
    31
43
7c22b1f2c6e5 Iq separation
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
-- vim: se ts=4: --