opensim – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 eva 1 /*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27  
28 using System;
29  
30 namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
31 {
32 interface IScheduler
33 {
34 /// <summary>
35 /// Schedule an event callback to occur
36 /// when 'time' is elapsed.
37 /// </summary>
38 /// <param name="time">The period to wait before executing</param>
39 void RunIn(TimeSpan time);
40  
41 /// <summary>
42 /// Schedule an event callback to fire
43 /// every "time". Equivilent to a repeating
44 /// timer.
45 /// </summary>
46 /// <param name="time">The period to wait between executions</param>
47 void RunAndRepeat(TimeSpan time);
48  
49 /// <summary>
50 /// Fire this scheduler only when the region has
51 /// a user in it.
52 /// </summary>
53 bool IfOccupied { get; set; }
54  
55 /// <summary>
56 /// Fire this only when simulator performance
57 /// is reasonable. (eg sysload <= 1.0)
58 /// </summary>
59 bool IfHealthy { get; set; }
60  
61 /// <summary>
62 /// Fire this event only when the region is visible
63 /// to a child agent, or there is a full agent
64 /// in this region.
65 /// </summary>
66 bool IfVisible { get; set; }
67  
68 /// <summary>
69 /// Determines whether this runs in the master scheduler thread, or a new thread
70 /// is spawned to handle your request. Running in scheduler may mean that your
71 /// code does not execute perfectly on time, however will result in better
72 /// region performance.
73 /// </summary>
74 /// <remarks>
75 /// Default: true
76 /// </remarks>
77 bool Schedule { get; set; }
78 }
79 }