1 /******************************************************************************
2 * The MIT License
3 * Copyright (c) 2003 Novell Inc.  www.novell.com
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining  a copy
6 * of this software and associated documentation files (the Software), to deal
7 * in the Software without restriction, including  without limitation the rights
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 * copies of the Software, and to  permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 * SOFTWARE.
22 *******************************************************************************/
23 //
24 // Novell.Directory.Ldap.Events.Edir.EventData.DebugEventData.cs
25 //
26 // Author:
27 //   Anil Bhatia (banil@novell.com)
28 //
29 // (C) 2003 Novell, Inc (http://www.novell.com)
30 //
31 
32 using System.Collections;
33 using System.Text;
34 
35 using Novell.Directory.Ldap.Asn1;
36 
37 namespace Novell.Directory.Ldap.Events.Edir.EventData
38 {
39   /// <summary>
40   /// This class represents the data for Debug Events.
41   /// </summary>
42   public class DebugEventData : BaseEdirEventData
43   {
44     protected int ds_time;
45     public int DSTime
46     {
47       get
48       {
49 	return ds_time;
50       }
51     }
52 
53     protected int milli_seconds;
54     public int MilliSeconds
55     {
56       get
57       {
58 	return milli_seconds;
59       }
60     }
61 
62     protected string strPerpetratorDN;
63     public string PerpetratorDN
64     {
65       get
66       {
67 	return strPerpetratorDN;
68       }
69     }
70 
71     protected string strFormatString;
72     public string FormatString
73     {
74       get
75       {
76 	return strFormatString;
77       }
78     }
79 
80     protected int nVerb;
81     public int Verb
82     {
83       get
84       {
85 	return nVerb;
86       }
87     }
88 
89     protected int parameter_count;
90     public int ParameterCount
91     {
92       get
93       {
94 	return parameter_count;
95       }
96     }
97 
98     protected ArrayList parameter_collection;
99     public ArrayList Parameters
100     {
101       get
102       {
103 	return parameter_collection;
104       }
105     }
106 
DebugEventData(EdirEventDataType eventDataType, Asn1Object message)107     public DebugEventData(EdirEventDataType eventDataType, Asn1Object message)
108       : base(eventDataType, message)
109     {
110         int[] length = new int[1];
111 
112         ds_time = ((Asn1Integer) decoder.decode(decodedData, length)).intValue();
113         milli_seconds =
114             ((Asn1Integer) decoder.decode(decodedData, length)).intValue();
115 
116         strPerpetratorDN =
117             ((Asn1OctetString) decoder.decode(decodedData, length)).stringValue();
118         strFormatString =
119             ((Asn1OctetString) decoder.decode(decodedData, length)).stringValue();
120         nVerb = ((Asn1Integer) decoder.decode(decodedData, length)).intValue();
121         parameter_count =
122             ((Asn1Integer) decoder.decode(decodedData, length)).intValue();
123 
124 	parameter_collection = new ArrayList();
125 
126         if (parameter_count > 0)
127 	{
128             Asn1Sequence seq = (Asn1Sequence) decoder.decode(decodedData, length);
129             for (int i = 0; i < parameter_count; i++)
130 	    {
131                 parameter_collection.Add(
132                     new DebugParameter((Asn1Tagged) seq.get_Renamed(i))
133 		    );
134             }
135         }
136 
137 	DataInitDone();
138     }
139 
140     /// <summary>
141     /// Returns a string representation of the object.
142     /// </summary>
ToString()143     public override string ToString()
144     {
145       StringBuilder buf = new StringBuilder();
146       buf.Append("[DebugEventData");
147       buf.AppendFormat("(Millseconds={0})", milli_seconds);
148       buf.AppendFormat("(DSTime={0})", ds_time);
149       buf.AppendFormat("(PerpetratorDN={0})", strPerpetratorDN);
150       buf.AppendFormat("(Verb={0})",nVerb);
151       buf.AppendFormat("(ParameterCount={0})", parameter_count);
152       for (int i = 0; i < parameter_count; i++)
153       {
154 	buf.AppendFormat("(Parameter[{0}]={1})", i, parameter_collection[i]);
155       }
156       buf.Append("]");
157 
158       return buf.ToString();
159     }
160   }
161 }
162