root/lu/SocketTask.lua

Revision 814 (checked in by rsz, 3 years ago)

cleanup

Line 
1 --------------------------------------------------------------------------------
2 -- Title:               SocketTask.lua
3 -- Description:         Like a square peg in a round hole
4 -- Author:              Raphaël Szwarc http://alt.textdrive.com/lua/
5 -- Creation Date:       February 1, 2005
6 -- Legal:               Copyright (C) 2005 Raphaël Szwarc
7 --------------------------------------------------------------------------------
8
9 -- import dependencies
10 local LUObject = require( "LUObject" )
11 local LUTask = require( "LUTask" )
12 local SocketReader = require( "SocketReader" )
13 local SocketWriter = require( "SocketWriter" )
14
15 -- define the class
16 local super = LUObject
17 local self = super()
18
19 -- initialization method
20 function self:init( aServer, aSocket )
21         self = super.init( self )
22
23         self._server = aServer
24         self._socket = aSocket
25        
26         return self
27 end
28        
29 -- method to access this task server
30 function self:server()
31         return self._server
32 end
33
34 -- method to access this task socket
35 function self:socket()
36         return self._socket
37 end
38
39 -- method to start this task
40 function self:start()
41         if self._task == nil then
42                 self:task():run()
43         end
44        
45         return self
46 end
47
48 -- method to access this task
49 function self:task()
50         if self._task == nil then
51                 self._task = LUTask( self, self:server():task():runloop() )
52         end
53        
54         return self._task
55 end
56
57 -- method to run this task
58 function self:run()
59         local aServer = self:server()
60         local aSocket = self:socket()
61         local aReader = SocketReader( aSocket )
62         local aWriter = SocketWriter( aSocket )
63         local aDelegate = aServer:delegate()
64        
65         aDelegate:run( aServer, aReader, aWriter )
66
67         return self
68 end
69
70 return self
Note: See TracBrowser for help on using the browser.