aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/Scripting/WorldComm/WorldCommModule.cs
diff options
context:
space:
mode:
authorAdam Frisby2008-04-30 21:43:47 +0000
committerAdam Frisby2008-04-30 21:43:47 +0000
commitbe20f41637b6c06ce3ab16bc25851b6e43468e12 (patch)
treec41081329891f4c24de704fc760fb9012954ac9d /OpenSim/Region/Environment/Modules/Scripting/WorldComm/WorldCommModule.cs
parent* Sometimes you know, you do something really stupid. (diff)
downloadopensim-SC-be20f41637b6c06ce3ab16bc25851b6e43468e12.zip
opensim-SC-be20f41637b6c06ce3ab16bc25851b6e43468e12.tar.gz
opensim-SC-be20f41637b6c06ce3ab16bc25851b6e43468e12.tar.bz2
opensim-SC-be20f41637b6c06ce3ab16bc25851b6e43468e12.tar.xz
* Cruft removal step #1. Cleaning Modules directory.
Diffstat (limited to 'OpenSim/Region/Environment/Modules/Scripting/WorldComm/WorldCommModule.cs')
-rw-r--r--OpenSim/Region/Environment/Modules/Scripting/WorldComm/WorldCommModule.cs79
1 files changed, 43 insertions, 36 deletions
diff --git a/OpenSim/Region/Environment/Modules/Scripting/WorldComm/WorldCommModule.cs b/OpenSim/Region/Environment/Modules/Scripting/WorldComm/WorldCommModule.cs
index a949fb6..ff3b31e 100644
--- a/OpenSim/Region/Environment/Modules/Scripting/WorldComm/WorldCommModule.cs
+++ b/OpenSim/Region/Environment/Modules/Scripting/WorldComm/WorldCommModule.cs
@@ -67,18 +67,20 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
67{ 67{
68 public class WorldCommModule : IRegionModule, IWorldComm 68 public class WorldCommModule : IRegionModule, IWorldComm
69 { 69 {
70 private Scene m_scene;
71 private object CommListLock = new object(); 70 private object CommListLock = new object();
72 private object ListLock = new object(); 71 private object ListLock = new object();
73 private string m_name = "WorldCommModule";
74 private ListenerManager m_listenerManager; 72 private ListenerManager m_listenerManager;
75 private Queue m_pendingQ; 73 private string m_name = "WorldCommModule";
76 private Queue m_pending; 74 private Queue m_pending;
75 private Queue m_pendingQ;
76 private Scene m_scene;
77 77
78 public WorldCommModule() 78 public WorldCommModule()
79 { 79 {
80 } 80 }
81 81
82 #region IRegionModule Members
83
82 public void Initialise(Scene scene, IConfigSource config) 84 public void Initialise(Scene scene, IConfigSource config)
83 { 85 {
84 m_scene = scene; 86 m_scene = scene;
@@ -107,23 +109,9 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
107 get { return false; } 109 get { return false; }
108 } 110 }
109 111
110 public void NewClient(IClientAPI client) 112 #endregion
111 {
112 client.OnChatFromViewer += DeliverClientMessage;
113 }
114 113
115 /******************************************************************** 114 #region IWorldComm Members
116 *
117 * Listener Stuff
118 *
119 * *****************************************************************/
120 private void DeliverClientMessage(Object sender, ChatFromViewerArgs e)
121 {
122 DeliverMessage(e.Sender.AgentId.ToString(),
123 e.Type, e.Channel,
124 e.Sender.FirstName + " " + e.Sender.LastName,
125 e.Message);
126 }
127 115
128 public int Listen(uint localID, LLUUID itemID, LLUUID hostID, int channel, string name, string id, string msg) 116 public int Listen(uint localID, LLUUID itemID, LLUUID hostID, int channel, string name, string id, string msg)
129 { 117 {
@@ -295,7 +283,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
295 283
296 lock (m_pending.SyncRoot) 284 lock (m_pending.SyncRoot)
297 { 285 {
298 li = (ListenerInfo)m_pending.Dequeue(); 286 li = (ListenerInfo) m_pending.Dequeue();
299 } 287 }
300 288
301 return li; 289 return li;
@@ -303,20 +291,41 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
303 291
304 public uint PeekNextMessageLocalID() 292 public uint PeekNextMessageLocalID()
305 { 293 {
306 return ((ListenerInfo)m_pending.Peek()).GetLocalID(); 294 return ((ListenerInfo) m_pending.Peek()).GetLocalID();
307 } 295 }
308 296
309 public LLUUID PeekNextMessageItemID() 297 public LLUUID PeekNextMessageItemID()
310 { 298 {
311 return ((ListenerInfo)m_pending.Peek()).GetItemID(); 299 return ((ListenerInfo) m_pending.Peek()).GetItemID();
300 }
301
302 #endregion
303
304 public void NewClient(IClientAPI client)
305 {
306 client.OnChatFromViewer += DeliverClientMessage;
307 }
308
309 /********************************************************************
310 *
311 * Listener Stuff
312 *
313 * *****************************************************************/
314
315 private void DeliverClientMessage(Object sender, ChatFromViewerArgs e)
316 {
317 DeliverMessage(e.Sender.AgentId.ToString(),
318 e.Type, e.Channel,
319 e.Sender.FirstName + " " + e.Sender.LastName,
320 e.Message);
312 } 321 }
313 } 322 }
314 323
315 public class ListenerManager 324 public class ListenerManager
316 { 325 {
317 //private Dictionary<int, ListenerInfo> m_listeners; 326 //private Dictionary<int, ListenerInfo> m_listeners;
318 private Hashtable m_listeners = Hashtable.Synchronized(new Hashtable());
319 private object ListenersLock = new object(); 327 private object ListenersLock = new object();
328 private Hashtable m_listeners = Hashtable.Synchronized(new Hashtable());
320 private int m_MaxListeners = 100; 329 private int m_MaxListeners = 100;
321 330
322 public int AddListener(uint localID, LLUUID itemID, LLUUID hostID, int channel, string name, string id, string msg) 331 public int AddListener(uint localID, LLUUID itemID, LLUUID hostID, int channel, string name, string id, string msg)
@@ -363,7 +372,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
363 IDictionaryEnumerator en = m_listeners.GetEnumerator(); 372 IDictionaryEnumerator en = m_listeners.GetEnumerator();
364 while (en.MoveNext()) 373 while (en.MoveNext())
365 { 374 {
366 ListenerInfo li = (ListenerInfo)en.Value; 375 ListenerInfo li = (ListenerInfo) en.Value;
367 if (li.GetItemID().Equals(itemID)) 376 if (li.GetItemID().Equals(itemID))
368 { 377 {
369 removedListeners.Add(li.GetHandle()); 378 removedListeners.Add(li.GetHandle());
@@ -400,12 +409,11 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
400 409
401 public void Activate(int handle) 410 public void Activate(int handle)
402 { 411 {
403
404 if (m_listeners.ContainsKey(handle)) 412 if (m_listeners.ContainsKey(handle))
405 { 413 {
406 lock (m_listeners.SyncRoot) 414 lock (m_listeners.SyncRoot)
407 { 415 {
408 ListenerInfo li = (ListenerInfo)m_listeners[handle]; 416 ListenerInfo li = (ListenerInfo) m_listeners[handle];
409 li.Activate(); 417 li.Activate();
410 } 418 }
411 } 419 }
@@ -413,10 +421,9 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
413 421
414 public void Dectivate(int handle) 422 public void Dectivate(int handle)
415 { 423 {
416
417 if (m_listeners.ContainsKey(handle)) 424 if (m_listeners.ContainsKey(handle))
418 { 425 {
419 ListenerInfo li = (ListenerInfo)m_listeners[handle]; 426 ListenerInfo li = (ListenerInfo) m_listeners[handle];
420 li.Deactivate(); 427 li.Deactivate();
421 } 428 }
422 } 429 }
@@ -432,9 +439,9 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
432 IDictionaryEnumerator en = m_listeners.GetEnumerator(); 439 IDictionaryEnumerator en = m_listeners.GetEnumerator();
433 while (en.MoveNext()) 440 while (en.MoveNext())
434 { 441 {
435 ListenerInfo li = (ListenerInfo)en.Value; 442 ListenerInfo li = (ListenerInfo) en.Value;
436 443
437 if (li.IsActive()) 444 if (li.IsActive())
438 { 445 {
439 if (li.GetHostID().Equals(listenerKey)) 446 if (li.GetHostID().Equals(listenerKey))
440 { 447 {
@@ -478,16 +485,16 @@ namespace OpenSim.Region.Environment.Modules.Scripting.WorldComm
478 485
479 public class ListenerInfo 486 public class ListenerInfo
480 { 487 {
481 private LLUUID m_itemID; // ID of the host script engine 488 private bool m_active; // Listener is active or not
482 private LLUUID m_hostID; // ID of the host/scene part
483 private LLUUID m_sourceItemID; // ID of the scenePart or avatar source of the message
484 private int m_channel; // Channel 489 private int m_channel; // Channel
485 private int m_handle; // Assigned handle of this listener 490 private int m_handle; // Assigned handle of this listener
486 private uint m_localID; // Local ID from script engine 491 private LLUUID m_hostID; // ID of the host/scene part
487 private string m_name; // Object name to filter messages from
488 private LLUUID m_id; // ID to filter messages from 492 private LLUUID m_id; // ID to filter messages from
493 private LLUUID m_itemID; // ID of the host script engine
494 private uint m_localID; // Local ID from script engine
489 private string m_message; // The message 495 private string m_message; // The message
490 private bool m_active; // Listener is active or not 496 private string m_name; // Object name to filter messages from
497 private LLUUID m_sourceItemID; // ID of the scenePart or avatar source of the message
491 498
492 public ListenerInfo(uint localID, int handle, LLUUID ItemID, LLUUID hostID, int channel, string name, LLUUID id, string message) 499 public ListenerInfo(uint localID, int handle, LLUUID ItemID, LLUUID hostID, int channel, string name, LLUUID id, string message)
493 { 500 {