aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs
index a127010..70018fd 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs
@@ -37,12 +37,18 @@ namespace OpenSim.Region.Communications.OGS1
37 37
38 public delegate bool ExpectArrival(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying); 38 public delegate bool ExpectArrival(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying);
39 39
40 public delegate bool InformRegionPrimGroup(ulong regionHandle, LLUUID primID, LLVector3 Positon, bool isPhysical);
41
42 public delegate bool PrimGroupArrival(ulong regionHandle, LLUUID primID, string objData);
43
40 public sealed class InterRegionSingleton 44 public sealed class InterRegionSingleton
41 { 45 {
42 private static readonly InterRegionSingleton instance = new InterRegionSingleton(); 46 private static readonly InterRegionSingleton instance = new InterRegionSingleton();
43 47
44 public event InformRegionChild OnChildAgent; 48 public event InformRegionChild OnChildAgent;
45 public event ExpectArrival OnArrival; 49 public event ExpectArrival OnArrival;
50 public event InformRegionPrimGroup OnPrimGroupNear;
51 public event PrimGroupArrival OnPrimGroupArrival;
46 52
47 static InterRegionSingleton() 53 static InterRegionSingleton()
48 { 54 {
@@ -74,6 +80,22 @@ namespace OpenSim.Region.Communications.OGS1
74 } 80 }
75 return false; 81 return false;
76 } 82 }
83 public bool InformRegionPrim(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical)
84 {
85 if (OnPrimGroupNear != null)
86 {
87 return OnPrimGroupNear(regionHandle, primID, position, isPhysical);
88 }
89 return false;
90 }
91 public bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, string objData)
92 {
93 if (OnPrimGroupArrival != null)
94 {
95 return OnPrimGroupArrival(regionHandle, primID, objData);
96 }
97 return false;
98 }
77 } 99 }
78 100
79 public class OGS1InterRegionRemoting : MarshalByRefObject 101 public class OGS1InterRegionRemoting : MarshalByRefObject
@@ -107,5 +129,31 @@ namespace OpenSim.Region.Communications.OGS1
107 return false; 129 return false;
108 } 130 }
109 } 131 }
132 public bool InformRegionPrim(ulong regionHandle, LLUUID SceneObjectGroupID, LLVector3 position, bool isPhysical)
133 {
134 try
135 {
136 return InterRegionSingleton.Instance.InformRegionPrim(regionHandle, SceneObjectGroupID, position, isPhysical);
137 }
138 catch (RemotingException e)
139 {
140 Console.WriteLine("Remoting Error: Unable to connect to remote region.\n" + e.ToString());
141 return false;
142 }
143
144 }
145 public bool InformRegionOfPrimCrossing(ulong regionHandle,LLUUID primID, string objData)
146 {
147 try
148 {
149 return InterRegionSingleton.Instance.ExpectPrimCrossing(regionHandle, primID, objData);
150 }
151 catch (RemotingException e)
152 {
153 Console.WriteLine("Remoting Error: Unable to connect to remote region.\n" + e.ToString());
154 return false;
155 }
156 }
157
110 } 158 }
111} \ No newline at end of file 159} \ No newline at end of file