Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/arranger/jarl/agent/JarlAgent.java


1   package com.arranger.jarl.agent;
2   
3   import com.arranger.agent.IWorkUnit;
4   import com.arranger.agent.IAgent;
5   import com.arranger.agent.impl.Agent;
6   import com.arranger.jarl.Jarl;
7   import com.arranger.jarl.util.IOUtil;
8   
9   import java.awt.*;
10  import java.io.File;
11  import java.io.Serializable;
12  import java.io.ByteArrayOutputStream;
13  import java.io.ByteArrayInputStream;
14  import java.rmi.RemoteException;
15  import java.util.Map;
16  import java.util.HashMap;
17  
18  /**
19   * JarlAgent created on Mar 6, 2003
20   */
21  public class JarlAgent extends Agent implements IAgent {
22  
23      protected Map m_jarlMap = new HashMap();
24  
25      public JarlAgent(String serverHost, String registryName, int port, int listenPort) throws RemoteException {
26          super(serverHost, registryName, port, listenPort);
27      }
28  
29      public Serializable execute(IWorkUnit workUnit) throws RemoteException {
30          try {
31              System.out.println("Executing workunit: " + workUnit.getID().toString());
32              int frameID = Integer.parseInt((String)workUnit.getID());
33              byte [] configTextBytes = (byte [])workUnit.getPayload();
34              ByteArrayOutputStream baos = new ByteArrayOutputStream();
35              IOUtil.decompress(new ByteArrayInputStream(configTextBytes), baos);
36              String configText = new String(baos.toByteArray());
37  
38              String id = String.valueOf(configText.hashCode());
39              Jarl jarl = (Jarl)m_jarlMap.get(id);
40              if (jarl == null) {
41                  jarl = new Jarl();
42                  jarl.initRemote(configText);
43                  m_jarlMap.put(id, jarl);
44              }
45  
46              Image image = jarl.getRenderManager().renderOneFrame(jarl.getContext(), frameID);
47              File file = File.createTempFile("image" + (String)workUnit.getID(), ".bmp");
48              IOUtil.save(image, file);
49  
50              byte [] bytes = IOUtil.toCompressedByteArray(file.getAbsolutePath());
51              file.delete();
52              return bytes;
53  
54          } catch (Exception e) {
55              e.printStackTrace();
56              throw new RemoteException(e.getMessage(), e);
57          }
58      }
59  }