Package spade :: Module spade_backend
[hide private]
[frames] | no frames]

Source Code for Module spade.spade_backend

 1  #! python 
 2  # -*- coding: cp1252 -*- 
 3  import sys 
 4   
 5   
 6  from spade import ACLMessage 
 7  from spade import Agent 
 8  from spade import AMS 
 9  from spade import Behaviour 
10  from spade import Envelope 
11  from spade import Platform 
12  from spade import ReceivedObject 
13  from spade import ACLParser 
14  from spade import AID 
15  from spade import BasicFipaDateTime 
16  from spade import DF 
17  from spade import FIPAMessage 
18  from spade import MessageReceiver 
19  from spade import pyparsing 
20  from spade import SL0Parser 
21  from spade import XMLCodec 
22  from spade import SpadeConfigParser  
23   
24       
25 -class SpadeBackend:
26 """ 27 Runs the platform. 28 Inits the platform components (AMS, DF, ...) 29 """ 30
31 - def runAgent(self, config, section, agentClass):
32 """ 33 starts an agent 34 """ 35 #jid = configfile.get(section,'JID') 36 passwd = config[section]['password'] 37 server = config["platform"]['hostname'] 38 port = int( config[section]['port'] ) 39 jid = section + "." + server 40 if not "adminpasswd" in config.keys(): config["adminpasswd"]=None 41 if section == "acc": 42 agent = agentClass(jid, passwd, server, port, config=config) 43 else: 44 agent = agentClass(jid, passwd, server, port) 45 agent.setAdminPasswd(config["adminpasswd"]) 46 agent.start() 47 return agent
48
49 - def __init__(self, configfilename="/etc/spade/spade.xml"):
50 parser = SpadeConfigParser.ConfigParser() 51 self.config = parser.parse(configfilename) 52 self.ams=None 53 self.df =None 54 self.acc=None 55 self.alive = True # Alive flag
56
57 - def start(self):
58 #TODO: this should be configurable 59 self.acc = self.runAgent(self.config, "acc", Platform.SpadePlatform) 60 #self.acc._debug=True 61 self.ams = self.runAgent(self.config, "ams", AMS.AMS) 62 #self.ams.DEBUG = self.acc.DEBUG 63 self.df = self.runAgent(self.config, "df", DF.DF)
64 #self.df.DEBUG = self.acc.DEBUG 65 #self.simba = self.runAgent(self.configfile, "simba", SIMBA.SIMBA) 66
67 - def shutdown(self):
68 if self.df: 69 self.df.stop() 70 #del self.df 71 if self.ams: 72 self.ams.stop() 73 #del self.ams 74 if self.acc: 75 self.acc.stop()
76 #del self.acc 77
78 - def DEBUG(self,component="",msg="",typ=""):
79 self.acc.DEBUG(msg,typ,component)
80 81 if __name__ == "__main__": 82 p = SpadeBackend() 83 p.start() 84