X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e7a674ab548877a615a048135694d7169da51212..5a4a3fbc945c6768112243b34877bb7549ed8bba:/examples/lua/SimSplay/sim_splay.lua?ds=sidebyside diff --git a/examples/lua/SimSplay/sim_splay.lua b/examples/lua/SimSplay/sim_splay.lua index 401c17dd90..79c8c9d0f5 100644 --- a/examples/lua/SimSplay/sim_splay.lua +++ b/examples/lua/SimSplay/sim_splay.lua @@ -3,14 +3,14 @@ require "simgrid" rpc = {} log = {} job = {} -event = {} +events = {} os = {} start = {} +misc = {} -- Splay global variables job.me ={} job.nodes = {} job.list_type = "random" - --Init nodes tables function init_nodes() for i= 1,simgrid.Host.number() do @@ -22,15 +22,18 @@ function init_jobs() init_nodes() end + -- Job methods function job.me.ip() return simgrid.Host.getPropValue(simgrid.Host.self(),"ip"); end + function job.me.port() return simgrid.Host.getPropValue(simgrid.Host.self(),"port"); end + function job.position() return simgrid.Host.getPropValue(simgrid.Host.self(),"position"); end @@ -47,6 +50,10 @@ function rpc.call(node,call) arg = "empty" mailbox = node + if type(node) == "table" then + mailbox = node.ip..":"..node.port + end + if type(call) == "table" then func = call[1] arg = call[2] @@ -54,19 +61,30 @@ function rpc.call(node,call) task_call = simgrid.Task.new("splay_task",10000,10000); task_call['func_call_name'] = func; task_call['func_call_arg'] = arg; - --log:print("Sending Task to mailbox "..mailbox.." to call "..func.." with arg "..arg); + log:print("Sending Task to mailbox "..mailbox.." to call '"..func.."' with arg '"..arg.."'"); simgrid.Task.iSend(task_call,mailbox); - call_function(func,arg) + end +function rpc.server(port) + -- nothing really to do : no need to open Socket since it's a Simulation +end + + -- event Methods -function event.sleep(time) +function events.sleep(time) my_mailbox = job.me.ip()..":"..job.me.port() - task = simgrid.Task.splay_recv(my_mailbox, time) + tk = simgrid.Task.splay_recv(my_mailbox, time) + + if type(tk) == "table" then + call_function(task['func_call_name'],task['func_call_arg']) + else log:print("task type is :"..type(tk).." it must be table?!"); + end end + -- main func for each process, this is equivalent to the Deploiment file -function event.thread(main_func) +function events.thread(main_func) dofile("platform_script.lua"); init_jobs() end @@ -79,13 +97,19 @@ end -- Start Methods function start.loop() simgrid.run() - simgrid.clean() + --simgrid.clean() end + +-- Misc Methods +function misc.between(a,b) + return a +end + -- useful functions function call_function(fct,arg) _G[fct](arg) end -function SPLAYschool() - simgrid.info("Calling me...") +function SPLAYschool(arg) + simgrid.info("Calling me..."..arg) end