aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/UserStatistics
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/UserStatistics')
-rw-r--r--OpenSim/Region/UserStatistics/WebStatsModule.cs169
1 files changed, 93 insertions, 76 deletions
diff --git a/OpenSim/Region/UserStatistics/WebStatsModule.cs b/OpenSim/Region/UserStatistics/WebStatsModule.cs
index 625eba4..b08233c 100644
--- a/OpenSim/Region/UserStatistics/WebStatsModule.cs
+++ b/OpenSim/Region/UserStatistics/WebStatsModule.cs
@@ -43,15 +43,20 @@ using OpenSim.Framework.Servers.HttpServer;
43using OpenSim.Region.Framework.Interfaces; 43using OpenSim.Region.Framework.Interfaces;
44using OpenSim.Region.Framework.Scenes; 44using OpenSim.Region.Framework.Scenes;
45using Mono.Data.SqliteClient; 45using Mono.Data.SqliteClient;
46using Mono.Addins;
46 47
47using Caps = OpenSim.Framework.Capabilities.Caps; 48using Caps = OpenSim.Framework.Capabilities.Caps;
48 49
49using OSD = OpenMetaverse.StructuredData.OSD; 50using OSD = OpenMetaverse.StructuredData.OSD;
50using OSDMap = OpenMetaverse.StructuredData.OSDMap; 51using OSDMap = OpenMetaverse.StructuredData.OSDMap;
51 52
53[assembly: Addin("WebStats", "1.0")]
54[assembly: AddinDependency("OpenSim", "0.5")]
55
52namespace OpenSim.Region.UserStatistics 56namespace OpenSim.Region.UserStatistics
53{ 57{
54 public class WebStatsModule : IRegionModule 58 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "WebStatsModule")]
59 public class WebStatsModule : ISharedRegionModule
55 { 60 {
56 private static readonly ILog m_log = 61 private static readonly ILog m_log =
57 LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 62 LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -74,59 +79,69 @@ namespace OpenSim.Region.UserStatistics
74 private string m_loglines = String.Empty; 79 private string m_loglines = String.Empty;
75 private volatile int lastHit = 12000; 80 private volatile int lastHit = 12000;
76 81
77 public virtual void Initialise(Scene scene, IConfigSource config) 82 #region ISharedRegionModule
83
84 public virtual void Initialise(IConfigSource config)
78 { 85 {
79 IConfig cnfg = config.Configs["WebStats"]; 86 IConfig cnfg = config.Configs["WebStats"];
80 87
81 if (cnfg != null) 88 if (cnfg != null)
82 enabled = cnfg.GetBoolean("enabled", false); 89 enabled = cnfg.GetBoolean("enabled", false);
83 90 }
91
92 public virtual void PostInitialise()
93 {
94 if (!enabled)
95 return;
96
97 AddEventHandlers();
98
99 if (Util.IsWindows())
100 Util.LoadArchSpecificWindowsDll("sqlite3.dll");
101
102 //IConfig startupConfig = config.Configs["Startup"];
103
104 dbConn = new SqliteConnection("URI=file:LocalUserStatistics.db,version=3");
105 dbConn.Open();
106 CreateTables(dbConn);
107
108 Prototype_distributor protodep = new Prototype_distributor();
109 Updater_distributor updatedep = new Updater_distributor();
110 ActiveConnectionsAJAX ajConnections = new ActiveConnectionsAJAX();
111 SimStatsAJAX ajSimStats = new SimStatsAJAX();
112 LogLinesAJAX ajLogLines = new LogLinesAJAX();
113 Default_Report defaultReport = new Default_Report();
114 Clients_report clientReport = new Clients_report();
115 Sessions_Report sessionsReport = new Sessions_Report();
116
117 reports.Add("prototype.js", protodep);
118 reports.Add("updater.js", updatedep);
119 reports.Add("activeconnectionsajax.html", ajConnections);
120 reports.Add("simstatsajax.html", ajSimStats);
121 reports.Add("activelogajax.html", ajLogLines);
122 reports.Add("default.report", defaultReport);
123 reports.Add("clients.report", clientReport);
124 reports.Add("sessions.report", sessionsReport);
125
126 ////
127 // Add Your own Reports here (Do Not Modify Lines here Devs!)
128 ////
129
130 ////
131 // End Own reports section
132 ////
133
134 MainServer.Instance.AddHTTPHandler("/SStats/", HandleStatsRequest);
135 MainServer.Instance.AddHTTPHandler("/CAPS/VS/", HandleUnknownCAPSRequest);
136 }
137
138 public virtual void AddRegion(Scene scene)
139 {
84 if (!enabled) 140 if (!enabled)
85 return; 141 return;
86 142
87 lock (m_scenes) 143 lock (m_scenes)
88 { 144 {
89 if (m_scenes.Count == 0)
90 {
91 if (Util.IsWindows())
92 Util.LoadArchSpecificWindowsDll("sqlite3.dll");
93
94 //IConfig startupConfig = config.Configs["Startup"];
95
96 dbConn = new SqliteConnection("URI=file:LocalUserStatistics.db,version=3");
97 dbConn.Open();
98 CreateTables(dbConn);
99
100 Prototype_distributor protodep = new Prototype_distributor();
101 Updater_distributor updatedep = new Updater_distributor();
102 ActiveConnectionsAJAX ajConnections = new ActiveConnectionsAJAX();
103 SimStatsAJAX ajSimStats = new SimStatsAJAX();
104 LogLinesAJAX ajLogLines = new LogLinesAJAX();
105 Default_Report defaultReport = new Default_Report();
106 Clients_report clientReport = new Clients_report();
107 Sessions_Report sessionsReport = new Sessions_Report();
108
109 reports.Add("prototype.js", protodep);
110 reports.Add("updater.js", updatedep);
111 reports.Add("activeconnectionsajax.html", ajConnections);
112 reports.Add("simstatsajax.html", ajSimStats);
113 reports.Add("activelogajax.html", ajLogLines);
114 reports.Add("default.report", defaultReport);
115 reports.Add("clients.report", clientReport);
116 reports.Add("sessions.report", sessionsReport);
117
118 ////
119 // Add Your own Reports here (Do Not Modify Lines here Devs!)
120 ////
121
122 ////
123 // End Own reports section
124 ////
125
126 MainServer.Instance.AddHTTPHandler("/SStats/", HandleStatsRequest);
127 MainServer.Instance.AddHTTPHandler("/CAPS/VS/", HandleUnknownCAPSRequest);
128 }
129
130 m_scenes.Add(scene); 145 m_scenes.Add(scene);
131 if (m_simstatsCounters.ContainsKey(scene.RegionInfo.RegionID)) 146 if (m_simstatsCounters.ContainsKey(scene.RegionInfo.RegionID))
132 m_simstatsCounters.Remove(scene.RegionInfo.RegionID); 147 m_simstatsCounters.Remove(scene.RegionInfo.RegionID);
@@ -136,6 +151,39 @@ namespace OpenSim.Region.UserStatistics
136 } 151 }
137 } 152 }
138 153
154 public void RegionLoaded(Scene scene)
155 {
156 }
157
158 public void RemoveRegion(Scene scene)
159 {
160 }
161
162 public virtual void Close()
163 {
164 if (!enabled)
165 return;
166
167 dbConn.Close();
168 dbConn.Dispose();
169 m_sessions.Clear();
170 m_scenes.Clear();
171 reports.Clear();
172 m_simstatsCounters.Clear();
173 }
174
175 public virtual string Name
176 {
177 get { return "ViewerStatsModule"; }
178 }
179
180 public Type ReplaceableInterface
181 {
182 get { return null; }
183 }
184
185 #endregion
186
139 private void ReceiveClassicSimStatsPacket(SimStats stats) 187 private void ReceiveClassicSimStatsPacket(SimStats stats)
140 { 188 {
141 if (!enabled) 189 if (!enabled)
@@ -251,37 +299,6 @@ namespace OpenSim.Region.UserStatistics
251 } 299 }
252 } 300 }
253 301
254 public virtual void PostInitialise()
255 {
256 if (!enabled)
257 return;
258
259 AddHandlers();
260 }
261
262 public virtual void Close()
263 {
264 if (!enabled)
265 return;
266
267 dbConn.Close();
268 dbConn.Dispose();
269 m_sessions.Clear();
270 m_scenes.Clear();
271 reports.Clear();
272 m_simstatsCounters.Clear();
273 }
274
275 public virtual string Name
276 {
277 get { return "ViewerStatsModule"; }
278 }
279
280 public bool IsSharedModule
281 {
282 get { return true; }
283 }
284
285 private void OnRegisterCaps(UUID agentID, Caps caps) 302 private void OnRegisterCaps(UUID agentID, Caps caps)
286 { 303 {
287// m_log.DebugFormat("[WEB STATS MODULE]: OnRegisterCaps: agentID {0} caps {1}", agentID, caps); 304// m_log.DebugFormat("[WEB STATS MODULE]: OnRegisterCaps: agentID {0} caps {1}", agentID, caps);
@@ -302,7 +319,7 @@ namespace OpenSim.Region.UserStatistics
302 { 319 {
303 } 320 }
304 321
305 protected virtual void AddHandlers() 322 protected virtual void AddEventHandlers()
306 { 323 {
307 lock (m_scenes) 324 lock (m_scenes)
308 { 325 {