Stackdb
Stackdb is a stackable, multi-target and -level source debugger and memory forensics library.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SimpleAnalysisListener.java
Go to the documentation of this file.
1 
2 package vmi1;
3 
4 import vmi1.*;
5 
6 import java.util.Map;
7 import java.util.HashMap;
8 import org.apache.axis2.engine.MessageReceiver;
9 import javax.jws.WebService;
10 import javax.jws.WebMethod;
11 import javax.jws.soap.SOAPBinding;
12 import javax.xml.namespace.QName;
13 
14 import org.apache.axis2.description.WSDL2Constants;
15 
16 /*
17  * NB: make sure getAnalysisNamespace and getServiceName return the same
18  * values as the annotation!!!
19  */
20 @WebService(name = "analysisListener",
21  serviceName="analysisListener",
22  targetNamespace = "http://anathema.flux.utah.edu/schema/vmi/1")
23 
24 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT,
25  use = SOAPBinding.Use.LITERAL,
26  parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
27 
28 public class SimpleAnalysisListener extends AnalysisListenerSkeleton
29  implements SimpleService {
30 
31  protected static final String tns =
32  "http://anathema.flux.utah.edu/schema/vmi/1";
33  protected static final String sns =
34  "http://anathema.flux.utah.edu/schema/vmi/1";
35  protected static final String snsPrefix = "vmi1";
36  protected static Map<String,MessageReceiver> messageReceiverClassMap = null;
37  protected static final String schemaResourcePath =
38  "analysisListener.wsdl";
39  protected static Map<String,QName> typeMapping = null;
40  protected static Map<String,String> methodClassNameMapping = null;
41  protected static Map<String,QName> dynamicTypeMapping = null;
42 
43  @WebMethod(exclude = true)
44  public Map<String,MessageReceiver> getMessageReceiverClassMap() {
45  if (SimpleAnalysisListener.messageReceiverClassMap == null) {
46  SimpleAnalysisListener.messageReceiverClassMap =
47  new HashMap<String,MessageReceiver>();
48 
49  SimpleAnalysisListener.messageReceiverClassMap.
50  put(WSDL2Constants.MEP_URI_IN_OUT, //"vmi1.SimpleAnalysisListener",
51  new vmi1.AnalysisListenerMessageReceiverInOut());
52  }
53  return SimpleAnalysisListener.messageReceiverClassMap;
54  }
55 
56  @WebMethod(exclude = true)
57  public String getTargetNamespace() {
58  return SimpleAnalysisListener.tns;
59  }
60 
61  @WebMethod(exclude = true)
62  public String getSchemaNamespace() {
63  return SimpleAnalysisListener.sns;
64  }
65 
66  @WebMethod(exclude = true)
67  public String getSchemaNamespacePrefix() {
68  return SimpleAnalysisListener.snsPrefix;
69  }
70 
71  @WebMethod(exclude = true)
72  public String getSchemaResourcePath() {
73  return SimpleAnalysisListener.schemaResourcePath;
74  }
75 
76  @WebMethod(exclude = true)
77  public Map<String,QName> getStaticTypeMapping() {
78  if (SimpleAnalysisListener.typeMapping == null) {
79  SimpleAnalysisListener.typeMapping = new HashMap<String,QName>();
80 
81  //String jType = snsPrefix + "." + "probeEvent";
82  /*
83  String jType = "probeEventNotification";
84  QName qn = new QName(sns,"ProbeEventNotification");
85  SimpleAnalysisListener.typeMapping.put(jType,qn);
86 
87  jType = snsPrefix + "." + "actionEventNotification";
88  qn = new QName(sns,"ActionEventNotification");
89  SimpleAnalysisListener.typeMapping.put(jType,qn);
90  */
91  }
92  return typeMapping;
93  }
94 
95  @WebMethod(exclude = true)
96  public Map<String,String> getMethodClassNameMapping() {
97  if (SimpleAnalysisListener.methodClassNameMapping == null) {
98  SimpleAnalysisListener.methodClassNameMapping =
99  new HashMap<String,String>();
100 
101  SimpleAnalysisListener.methodClassNameMapping
102  .put("analysisEventNotification","vmi.AnalysisEventNotification");
103  SimpleAnalysisListener.methodClassNameMapping
104  .put("analysisResultNotification","vmi.AnalysisResultNotification");
105  }
106  return methodClassNameMapping;
107  }
108 
109  @WebMethod(exclude = true)
110  public Map<String,QName> getDynamicTypeMapping() {
111  if (SimpleAnalysisListener.dynamicTypeMapping == null) {
112  SimpleAnalysisListener.dynamicTypeMapping =
113  new HashMap<String,QName>();
114 
115  SimpleAnalysisListener.dynamicTypeMapping
116  .put("analysisEventNotification",
117  new QName(SimpleAnalysisListener.sns,"AnalysisEventNotification"));
118  SimpleAnalysisListener.dynamicTypeMapping
119  .put("analysisResultNotification",
120  new QName(SimpleAnalysisListener.sns,"AnalysisResultNotification"));
121  }
122  return dynamicTypeMapping;
123  }
124 
125  @WebMethod(exclude = true)
126  public boolean isRootService() {
127  return true;
128  }
129 
130  @WebMethod(exclude = true)
131  public String getServiceName() {
132  return "analysisListener";
133  }
134 
135  @WebMethod(exclude = true)
136  public String getServicePath() {
137  return "/vmi1/analysisListener";
138  }
139 
140  public vmi1.AnalysisResultNotificationResponse analysisResultNotification
141  (vmi1.AnalysisResultNotification analysisResultNotification) {
142 
143  AnalysisResultT e = analysisResultNotification.getResult();
144  AnalysisResultTChoice_type0 rc = e.getAnalysisResultTChoice_type0();
145 
146  if (rc.isSimpleResultSpecified()) {
147  vmi1.SimpleResultT r = rc.getSimpleResult();
148 
149  System.out.printf("SimpleResult(aid=%d,id=%d,name=%s,type=%d,time=%d,tsc=%d,counter=%d)\n",
150  e.getAnalysisId().getAnalysisIdT(),r.getId(),r.getName(),r.getType(),
151  r.getTime().longValue(),r.getTsc().longValue(),
152  r.getCounter().longValue());
153  System.out.printf(" value=%s msg=%s\n",r.getResultValue(),
154  r.getMsg());
155  if (r.getOutputValues() != null) {
156  vmi1.OutputValues_type0 ov = r.getOutputValues();
157  if (ov != null) {
158  vmi1.NameValueT[] ova = ov.getNameValue();
159  if (ova != null) {
160  if (ova.length > 0)
161  System.out.printf(" ");
162  for (int i = 0; i < ova.length; ++i) {
163  System.out.printf("%s=%s ",ova[i].getNvName(),
164  ova[i].getNvValue());
165  }
166  if (ova.length > 0)
167  System.out.println();
168  }
169  }
170  }
171  }
172  else if (rc.isCustomResultSpecified()) {
173  vmi1.CustomResultT r = rc.getCustomResult();
174 
175 
176  }
177  else {
178  System.out.printf("Unknown AnalysisResultT!\n");
179  }
180 
181  vmi1.AnalysisResultNotificationResponse retval =
182  new vmi1.AnalysisResultNotificationResponse();
183  retval.setResult(vmi1.ResultT.success);
184  return retval;
185  }
186 
187  public vmi1.AnalysisEventNotificationResponse analysisEventNotification
188  (vmi1.AnalysisEventNotification analysisEventNotification) {
189 
190  AnalysisEventT e = analysisEventNotification.getAnalysisEvent();
191 
192  System.out.printf("AnalysisEvent(aid=%d,type=%s)\n",
193  e.getAnalysisId().getAnalysisIdT(),e.getAnalysisEventType().toString());
194 
195  vmi1.AnalysisEventNotificationResponse retval =
196  new vmi1.AnalysisEventNotificationResponse();
197  retval.setResult(vmi1.ResultT.success);
198  return retval;
199  }
200 }
static uint64_t unsigned int i