1   /*
2    * Jour - java profiler and monitoring library
3    *
4    * Copyright (C) 2004 Jour team
5    *
6    * This library is free software; you can redistribute it and/or
7    * modify it under the terms of the GNU Library General Public
8    * License as published by the Free Software Foundation; either
9    * version 2 of the License, or (at your option) any later version.
10   *
11   * This library is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14   * Library General Public License for more details.
15   *
16   * You should have received a copy of the GNU Library General Public
17   * License along with this library; if not, write to the
18   * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19   * Boston, MA  02111-1307, USA.
20   */
21  package net.sf.jour.log4j;
22  
23  import java.io.Externalizable;
24  import java.io.IOException;
25  import java.io.ObjectOutput;
26  import java.io.ObjectInput;
27  
28  
29  import org.apache.log4j.spi.LoggingEvent;
30  
31  /*
32   * Created on 20.11.2004
33   *
34   * Contributing Author(s):
35   *
36   *   Misha Lifschitz <mishalifschitz at users.sourceforge.net> (Inital implementation)
37   *   Vlad Skarzhevskyy <vlads at users.sourceforge.net> (Inital implementation)
38   */
39  /***
40   *
41   * Minimized information to be send over wire.
42   *
43   * @author vlads
44   * @version $Revision: 1.1 $ ($Author: vlads $)
45   */
46  public class ProfilerEventExt implements Externalizable {
47  
48      public long eventID;
49      public double timeStamp;
50      public int eventType;
51      public long methodID;
52      public Object message;
53  
54      // Serialization
55      static final long serialVersionUID = -868428216207166147L;
56      
57      public static ProfilerEventExt extract(LoggingEvent event) {
58          ProfilerEventExt pEvent = new ProfilerEventExt();
59  
60          pEvent.timeStamp = event.timeStamp;
61          pEvent.message = event.getMessage();
62  
63          return pEvent;
64      }
65  
66      public String toString() {
67          return "The ProfilerEventExt:" + this.message;
68      }
69  
70  	public void writeExternal(ObjectOutput out) throws IOException {
71  		out.writeLong(this.eventID);
72  		out.writeDouble(this.timeStamp);
73  		out.writeInt(this.eventType);
74  	    out.writeLong(this.methodID);
75  	    out.writeObject(message);
76  	}
77  
78  	public void readExternal(ObjectInput in)
79  		   throws IOException, ClassNotFoundException {
80  	    this.eventID = in.readLong();
81  	    this.timeStamp = in.readDouble();
82  	    this.eventType = in.readInt();
83  	    this.methodID = in.readLong();
84  	    this.message = in.readObject();
85  	}
86  
87  }