10.07.2015 Views

pdf - 395 K - Ecole des mines de Nantes

pdf - 395 K - Ecole des mines de Nantes

pdf - 395 K - Ecole des mines de Nantes

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}private Message RequestUACreation(UserId userId){Message m = new Message(agent.GetId(),((UAProxyAg)agent).uaMaker,Message.Natures.Request, Subjects.UACreation,userId);Conversation conv = new Conversation();Message reply = conv.SendWaitForReply(m, agent);return reply;}private void UpdateMessageQueue(UAData data){Debug.Assert(data.messages != null);data.messages.Enqueue(message);data.lastMessageTimestamp = DateTime.Now;Monitor.Exit(data); //LOCK OFF on UAData}}class TerminationExaminationActivity : Activity{// Security time gap for confirming agent terminationprivate static TimeSpan SecurityGap =Middleware.MAX_LATENCY.Add(Middleware.MAX_LATENCY.Add(Middleware.MAX_LATENCY));// The Message sent by the UserAgent as a termination requestprivate Message message;private Hashtable uaTable;private Conversation conversation;_uaTable,base(agent)public TerminationExaminationActivity(Agent agent, Hashtable{}Message _message, Conversation _conversation) :message = _message;uaTable = _uaTable;conversation = _conversation;public overri<strong>de</strong> void Execute(){UserId userId = (UserId)message.Content;UAData data = (UAData) uaTable[userId]; // uaTable issynchronizedDebug.Assert(data != null);UADataMonitor.Enter(data);if (CheckIdleTime(data.lastMessageTimestamp)){}else{// LOCK ON on UADatadata.state = UAData.States.TERMINATED;Monitor.Exit(data); // LOCK OFF onSendConfirmation();MSc EMOOSE Thesis – http://www.emn.fr/EMOOSE 101

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!