diff options
author | Araq <rumpf_a@web.de> | 2011-08-15 19:40:00 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2011-08-15 19:40:00 +0200 |
commit | 2183bf77a658444c2fcd036059249981499c844c (patch) | |
tree | dd1ed092f24f0448f75883c21d145166435d0728 /tests/reject | |
parent | c6038dda04b9c28d20bb9a1baaa226f2ecdd1f5c (diff) | |
download | Nim-2183bf77a658444c2fcd036059249981499c844c.tar.gz |
added xmltree.innerText; fixes #49
Diffstat (limited to 'tests/reject')
-rw-r--r-- | tests/reject/tillegaltyperecursion.nim | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/reject/tillegaltyperecursion.nim b/tests/reject/tillegaltyperecursion.nim new file mode 100644 index 000000000..711f458bf --- /dev/null +++ b/tests/reject/tillegaltyperecursion.nim @@ -0,0 +1,66 @@ +discard """ + cmd: "nimrod c --threads:on $# $#" + errormsg: "illegal recursion in type 'TIRC'" + line: 16 +""" + +import events +import sockets +import strutils +import os + +type + TMessageReceivedEventArgs = object of TEventArgs + Nick*: string + Message*: string + TIRC = object + EventEmitter: TEventEmitter + MessageReceivedHandler*: TEventHandler + Socket: TSocket + Thread: TThread[TIRC] + +proc initIRC*(): TIRC = + result.Socket = socket() + result.EventEmitter = initEventEmitter() + result.MessageReceivedHandler = initEventHandler("MessageReceived") + +proc IsConnected*(irc: var TIRC): bool = + return running(irc.Thread) + + +proc sendRaw*(irc: var TIRC, message: string) = + irc.Socket.send(message & "\r\L") +proc handleData(irc: TIRC) {.thread.} = + var connected = False + while connected: + var tup = @[irc.Socket] + var o = select(tup, 200) + echo($o) + echo($len(tup)) + if len(tup) == 1: + #Connected + connected = True + + #Parse data here + + else: + #Disconnected + connected = False + return + +proc Connect*(irc: var TIRC, nick: string, host: string, port: int = 6667) = + connect(irc.Socket ,host ,TPort(port),TDomain.AF_INET) + send(irc.Socket,"USER " & nick & " " & nick & " " & nick & " " & nick &"\r\L") + send(irc.Socket,"NICK " & nick & "\r\L") + var thread: TThread[TIRC] + createThread(thread, handleData, irc) + irc.Thread = thread + + + + +when isMainModule: + var irc = initIRC() + irc.Connect("AmryBot[Nim]","irc.freenode.net",6667) + irc.sendRaw("JOIN #nimrod") + os.Sleep(4000) |