Source code: com/memoire/xmas/test/XmasTestMultiplication.java
1
2 package com.memoire.xmas.test;
3
4 import com.memoire.xmas.*;
5 import com.memoire.xmas.basic.*;
6
7 public class XmasTestMultiplication
8 extends XmasBasicThreadedAgent
9 {
10 protected void handle
11 (XmasBasicAddress _from, String _act, String _skill, Object _content, Object _ref)
12 {
13 if("announce".equals(_act)&&"multiplication".equals(_skill))
14 {
15 int price=inbox_.size()+outbox_.size();
16 sendBasicMessage(_from,"bid","multiplication",""+price,_ref);
17 }
18 else
19 if("contract".equals(_act)&&"multiplication".equals(_skill))
20 {
21 sendBasicMessage(_from,"accept","multiplication","",_ref);
22 }
23 else
24 if("cancel".equals(_act)&&"task".equals(_skill))
25 {
26 inbox_ .cancel(_from,_ref);
27 outbox_.cancel(XmasBasicAddress.ALL,_ref);
28 }
29 else
30 if("request".equals(_act)&&"multiplication".equals(_skill))
31 {
32 int[] p=null;
33
34 if(_content instanceof int[])
35 {
36 p=(int[])_content;
37 }
38 else
39 if(_content instanceof String)
40 {
41 String[] s=XmasBasicLib.split((String)_content);
42 int l=s.length;
43 try
44 {
45 p=new int[l];
46 for(int i=0;i<l;i++) p[i]=Integer.parseInt(s[i]);
47 }
48 catch(Exception ex) { p=null; }
49 }
50
51 if(p!=null)
52 {
53 int r=1;
54 for(int i=0;i<p.length;i++) r*=p[i];
55 System.err.println("==> "+r+" {"+_ref+"}");
56 sendBasicMessage(_from,"answer","multiplication",""+r,_ref);
57 //new Object[] { new Integer(r), _content });
58 XmasBasicLib.sleep();
59 }
60 }
61 }
62
63 public String toString() { return "TestMultiplication"; }
64 }