summaryrefslogtreecommitdiff
path: root/nanochat_send/pylon.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nanochat_send/pylon.lua')
-rw-r--r--nanochat_send/pylon.lua74
1 files changed, 0 insertions, 74 deletions
diff --git a/nanochat_send/pylon.lua b/nanochat_send/pylon.lua
deleted file mode 100644
index f7cd60f..0000000
--- a/nanochat_send/pylon.lua
+++ /dev/null
@@ -1,74 +0,0 @@
-local cqueues = require 'cqueues'
-local socket = require 'cqueues.socket'
-local pprint = require 'pprint'
-local class = require 'r.class'
-
-local BasePylon = require 'pylon'
-local Channel = require 'channel'
-
-local NanochatSend = class.extend(BasePylon)
-
-function NanochatSend:init()
- self:_check_fields "server port poll"
-end
-
-function NanochatSend:_connect()
- self.sock = socket.connect(self.server, tonumber(self.port))
- self.sock:write("LAST 0\n")
- self.sock:read("*l") -- discard count
- self.lastid = tonumber(assert(self.sock:read("*l")))
- self.usids = {}
-end
-
-function NanochatSend:add_channel(channel)
- -- don't need to do anything
-end
-
-function NanochatSend:recving()
- while true do
- self.sock:write("SKIP "..self.lastid.."\n")
- local deliverables = {}
- local n = tonumber(assert(self.sock:read("*l")))
- for i=1,n do
- local msg = assert(self.sock:read("*l"))
- local chan, msgi = msg:match("^([^ ]+) ()")
- if chan then
- if not deliverables[chan] then deliverables[chan] = {} end
- local sender, body = msg:match("^([^:]+): (.+)$", msgi)
- if sender then
- deliverables[chan][#deliverables[chan]+1] = { i=i, sender=sender, body=body }
- else
- deliverables[chan][#deliverables[chan]+1] = { i=i, sender=nil, body=msg:sub(msgi,-1) }
- end
- end
- end
- local s = self.sock:read("*l")
- self.lastid = tonumber(assert(s))
-
- for chan,blorp in pairs(deliverables) do
- for _,d in ipairs(blorp) do
- local id = d.i - n + self.lastid
- d.i = nil
- if self.usids[id] then
- self.usids[id] = nil
- else
- self.wilson:deliver(Channel(self, chan), d)
- end
- end
- end
-
- cqueues.sleep(tonumber(self.poll))
- end
-end
-
-function NanochatSend:sending()
- for dest_channel, message in self.inbox:iter() do
- print('NNN',dest_channel,message.sender,message.body)
- assert(self.sock:write("SEND "..dest_channel.descriptor.." "..message.sender..": "..message.body.."\n"))
- local id = tonumber(assert(self.sock:read("*l")))
- self.usids[id] = true
- end
-end
-
-
-return NanochatSend