http://opensimulator.org/index.php?title=Codebase_overview&feed=atom&action=historyCodebase overview - Revision history2024-03-29T15:29:16ZRevision history for this page on the wikiMediaWiki 1.19.9http://opensimulator.org/index.php?title=Codebase_overview&diff=53786&oldid=prevManni at 10:34, 4 December 20232023-12-04T10:34:18Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 10:34, 4 December 2023</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>{{Quicklinks}}</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>{{Quicklinks<ins class="diffchange diffchange-inline">|Codebase_overview</ins>}}</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= Introduction =</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= Introduction =</div></td></tr>
</table>Mannihttp://opensimulator.org/index.php?title=Codebase_overview&diff=49989&oldid=prevUbit: /* Packages */2020-11-25T19:01:11Z<p><span dir="auto"><span class="autocomment">Packages</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 19:01, 25 November 2020</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 41:</td>
<td colspan="2" class="diff-lineno">Line 41:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* '''OpenSim.Framework'''. General framework code used by the rest of OpenSimulator which is either not specific to regions or used in common with regions and other classes.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* '''OpenSim.Framework'''. General framework code used by the rest of OpenSimulator which is either not specific to regions or used in common with regions and other classes.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Framework.AssetLoader.Filesystem'''.  Small DLL used to load library assets from the filesystem.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Framework.AssetLoader.Filesystem'''.  Small DLL used to load library assets from the filesystem.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** '''OpenSim.Framework.Communications'''.  Some comms related odds and ends.  Notably request limiting code in OpenSimulator master git branch post 0.7.6.</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Framework.Configuration.HTTP'''.  Old code for loading configuration via HTTP.  May have decayed beyond usefulness.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Framework.Configuration.HTTP'''.  Old code for loading configuration via HTTP.  May have decayed beyond usefulness.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Framework.Configuration.XML'''.  Code for loading XML config files (as opposed to INI).  May have decayed beyond usefulness.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Framework.Configuration.XML'''.  Code for loading XML config files (as opposed to INI).  May have decayed beyond usefulness.</div></td></tr>
</table>Ubithttp://opensimulator.org/index.php?title=Codebase_overview&diff=49988&oldid=prevUbit: /* Packages */2020-11-25T19:00:21Z<p><span dir="auto"><span class="autocomment">Packages</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 19:00, 25 November 2020</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 59:</td>
<td colspan="2" class="diff-lineno">Line 59:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.OptionalModules'''.  Optional region modules that aren't considered core to the simulator.  In principle, could be removed yet have a working Second Life compatible simulator, though this has not been well tested.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.OptionalModules'''.  Optional region modules that aren't considered core to the simulator.  In principle, could be removed yet have a working Second Life compatible simulator, though this has not been well tested.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.Physics'''. General physics framework code and plugins for specific engines (BulletSim, ubODE, ODE, etc).</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.Physics'''. General physics framework code and plugins for specific engines (BulletSim, ubODE, ODE, etc).</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>** '''OpenSim.Region.ScriptEngine'''. Script <del class="diffchange diffchange-inline">engine </del>code that powers the scripts run within OpenSimulator. <del class="diffchange diffchange-inline">Currently there is only one engine bundled with OpenSimulator, </del>[[XEngine]]<del class="diffchange diffchange-inline">.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>** '''OpenSim.Region.ScriptEngine'''. Script <ins class="diffchange diffchange-inline">engines </ins>code that powers the scripts run within OpenSimulator. [[XEngine]]<ins class="diffchange diffchange-inline">, [[YEngine]]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.UserStatistics'''.  [[Web Statistics Module]] for exposing some simulator information via a webpage.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.UserStatistics'''.  [[Web Statistics Module]] for exposing some simulator information via a webpage.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* '''OpenSim.Server'''.  Server infrastructure.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* '''OpenSim.Server'''.  Server infrastructure.</div></td></tr>
</table>Ubithttp://opensimulator.org/index.php?title=Codebase_overview&diff=49987&oldid=prevUbit: /* Packages */2020-11-25T18:58:27Z<p><span dir="auto"><span class="autocomment">Packages</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 18:58, 25 November 2020</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 58:</td>
<td colspan="2" class="diff-lineno">Line 58:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.Framework'''.  The framework for the region itself, including scene graph, scene presence (agent) classes, scene object classes, inventory, etc.  Could be considered the core of the simulator.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.Framework'''.  The framework for the region itself, including scene graph, scene presence (agent) classes, scene object classes, inventory, etc.  Could be considered the core of the simulator.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.OptionalModules'''.  Optional region modules that aren't considered core to the simulator.  In principle, could be removed yet have a working Second Life compatible simulator, though this has not been well tested.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.OptionalModules'''.  Optional region modules that aren't considered core to the simulator.  In principle, could be removed yet have a working Second Life compatible simulator, though this has not been well tested.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>** '''OpenSim.Region.Physics'''. General physics framework code and plugins for specific engines (BulletSim, ODE, etc)<del class="diffchange diffchange-inline">.  Only the ODE and BulletSim modules are mature or complete enough for use</del>.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>** '''OpenSim.Region.Physics'''. General physics framework code and plugins for specific engines (BulletSim<ins class="diffchange diffchange-inline">, ubODE</ins>, ODE, etc).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.ScriptEngine'''. Script engine code that powers the scripts run within OpenSimulator. Currently there is only one engine bundled with OpenSimulator, [[XEngine]].</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.ScriptEngine'''. Script engine code that powers the scripts run within OpenSimulator. Currently there is only one engine bundled with OpenSimulator, [[XEngine]].</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.UserStatistics'''.  [[Web Statistics Module]] for exposing some simulator information via a webpage.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.UserStatistics'''.  [[Web Statistics Module]] for exposing some simulator information via a webpage.</div></td></tr>
</table>Ubithttp://opensimulator.org/index.php?title=Codebase_overview&diff=48980&oldid=prevSteevithak: /* Architecture */ added a link to the orphaned class diagram page2020-09-08T20:29:18Z<p><span dir="auto"><span class="autocomment">Architecture: </span> added a link to the orphaned class diagram page</span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:29, 8 September 2020</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 22:</td>
<td colspan="2" class="diff-lineno">Line 22:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>More exotic configurations of OpenSimulator would complicate this diagram.  For instance, it's possible to configure OpenSimulator to fetch assets directly from capabilities implemented in the same process as the grid service rather than go through the simulator.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>More exotic configurations of OpenSimulator would complicate this diagram.  For instance, it's possible to configure OpenSimulator to fetch assets directly from capabilities implemented in the same process as the grid service rather than go through the simulator.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">See also: [[OpenSim:_Class_Diagrams|OpenSimulator Codebase Class Diagram]]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= Packages =</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= Packages =</div></td></tr>
</table>Steevithakhttp://opensimulator.org/index.php?title=Codebase_overview&diff=48918&oldid=prevSteevithak: /* Packages */ fixed a typo in link to pCampBot page2020-09-03T22:26:23Z<p><span dir="auto"><span class="autocomment">Packages: </span> fixed a typo in link to pCampBot page</span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 22:26, 3 September 2020</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 65:</td>
<td colspan="2" class="diff-lineno">Line 65:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* '''OpenSim.Tests.*'''.  Test code, both common infrastructure used in regression tests and some standalone client test code.  Actual regression tests are spread throughout the code base in separate *.Test packages (e.g. OpenSim.Region.Framework.Tests project).</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* '''OpenSim.Tests.*'''.  Test code, both common infrastructure used in regression tests and some standalone client test code.  Actual regression tests are spread throughout the code base in separate *.Test packages (e.g. OpenSim.Region.Framework.Tests project).</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* '''OpenSim.Tools'''.  Some OpenSimulator associated tools.  Not used in actual OpenSimulator operation.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>* '''OpenSim.Tools'''.  Some OpenSimulator associated tools.  Not used in actual OpenSimulator operation.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>* '''pCampbot'''.  A test tool which uses bots to simulate activity load on a simulator.  See [[<del class="diffchange diffchange-inline">pCampbot</del>]] for more details.  Not used in actual OpenSimulator operation.</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>* '''pCampbot'''.  A test tool which uses bots to simulate activity load on a simulator.  See [[<ins class="diffchange diffchange-inline">pCampBot</ins>]] for more details.  Not used in actual OpenSimulator operation.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Coding restrictions ==</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>== Coding restrictions ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Because OpenSimulator has to run on both Windows and Mono (usually on Linux or Mac), we are limited to the parts of .net that the minimum version of [http://en.wikipedia.org/wiki/Mono_(software) Mono] we require supports.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Because OpenSimulator has to run on both Windows and Mono (usually on Linux or Mac), we are limited to the parts of .net that the minimum version of [http://en.wikipedia.org/wiki/Mono_(software) Mono] we require supports.</div></td></tr>
</table>Steevithakhttp://opensimulator.org/index.php?title=Codebase_overview&diff=47443&oldid=prevUbit: /* Packages */2019-04-06T09:07:43Z<p><span dir="auto"><span class="autocomment">Packages</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 09:07, 6 April 2019</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 57:</td>
<td colspan="2" class="diff-lineno">Line 57:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.OptionalModules'''.  Optional region modules that aren't considered core to the simulator.  In principle, could be removed yet have a working Second Life compatible simulator, though this has not been well tested.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.OptionalModules'''.  Optional region modules that aren't considered core to the simulator.  In principle, could be removed yet have a working Second Life compatible simulator, though this has not been well tested.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.Physics'''. General physics framework code and plugins for specific engines (BulletSim, ODE, etc).  Only the ODE and BulletSim modules are mature or complete enough for use.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.Physics'''. General physics framework code and plugins for specific engines (BulletSim, ODE, etc).  Only the ODE and BulletSim modules are mature or complete enough for use.</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;">** '''OpenSim.Region.RegionCombinerModule'''.  Module for megaregion support.</del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.ScriptEngine'''. Script engine code that powers the scripts run within OpenSimulator. Currently there is only one engine bundled with OpenSimulator, [[XEngine]].</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.ScriptEngine'''. Script engine code that powers the scripts run within OpenSimulator. Currently there is only one engine bundled with OpenSimulator, [[XEngine]].</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.UserStatistics'''.  [[Web Statistics Module]] for exposing some simulator information via a webpage.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>** '''OpenSim.Region.UserStatistics'''.  [[Web Statistics Module]] for exposing some simulator information via a webpage.</div></td></tr>
</table>Ubithttp://opensimulator.org/index.php?title=Codebase_overview&diff=38355&oldid=prevJustincc: /* Architecture */2014-01-23T00:35:07Z<p><span dir="auto"><span class="autocomment">Architecture</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 00:35, 23 January 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 20:</td>
<td colspan="2" class="diff-lineno">Line 20:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Regions and region modules will in turn communicate with backend grid services to fetch required data (e.g. assets), manipulate inventory, etc.  In OpenSimulator standalone mode, services will be in the same process as OpenSim.exe.  In grid mode, they will be hosted in a separate Robust.exe process.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>Regions and region modules will in turn communicate with backend grid services to fetch required data (e.g. assets), manipulate inventory, etc.  In OpenSimulator standalone mode, services will be in the same process as OpenSim.exe.  In grid mode, they will be hosted in a separate Robust.exe process.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">More exotic configurations of OpenSimulator would complicate this diagram.  For instance, it's possible to configure OpenSimulator to fetch assets directly from capabilities implemented in the same process as the grid service rather than go through the simulator.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= Packages =</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= Packages =</div></td></tr>
</table>Justincchttp://opensimulator.org/index.php?title=Codebase_overview&diff=38350&oldid=prevJustincc: /* Architecture */2014-01-23T00:26:32Z<p><span dir="auto"><span class="autocomment">Architecture</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 00:26, 23 January 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 7:</td>
<td colspan="2" class="diff-lineno">Line 7:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= Architecture =</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= Architecture =</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="background: #ffa; color:black; font-size: smaller;"><div>[[Image:Opensim-block.<del class="diffchange diffchange-inline">png</del>|frame|center|An diagram of the core parts of the simulator code organization.]]</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>[[Image:Opensim-block.<ins class="diffchange diffchange-inline">jpg</ins>|frame|center|An diagram of the core parts of the simulator code organization.]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>This is a very high level diagram of the main chunks of the simulator code organization.  Arrows indicate direction of request initiation.</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>This is a very high level diagram of the main chunks of the simulator code organization.  Arrows indicate direction of request initiation.</div></td></tr>
</table>Justincchttp://opensimulator.org/index.php?title=Codebase_overview&diff=38346&oldid=prevJustincc: /* Architecture */2014-01-23T00:17:40Z<p><span dir="auto"><span class="autocomment">Architecture</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 00:17, 23 January 2014</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 8:</td>
<td colspan="2" class="diff-lineno">Line 8:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Image:Opensim-block.png|frame|center|An diagram of the core parts of the simulator code organization.]]</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>[[Image:Opensim-block.png|frame|center|An diagram of the core parts of the simulator code organization.]]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">This is a very high level diagram of the main chunks of the simulator code organization.  Arrows indicate direction of request initiation.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">A viewer (at the bottom) interacts with the simulator by sending messages through both UDP and HTTP.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Regions and region modules register for UDP message events (e.g. user command inputs such as move forward, inventory manipulation requests, etc).  These events are invoked when the LLUDP client stack receives the relevant requests from the viewer.  In turn, the regions and region modules will pass messages back to the LLUDP clientstack (e.g. movements of avatars and objects) for delivery back to the client.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">LL capabilities are a similar message passing mechanism but with HTTP as the carrier rather than UDP.  These tend to be used for messages which are not time critical and are often used for moving large amounts of data in newer viewers (e.g. texture and inventory request and delivery, though not other inventory commands such as item move).  Again, these are handled by regions and region modules.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">A simulator can pass messages back to the region via the event queue capability, which is essentially a poll by the viewer to the simulator to fetch messages.</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">Regions and region modules will in turn communicate with backend grid services to fetch required data (e.g. assets), manipulate inventory, etc.  In OpenSimulator standalone mode, services will be in the same process as OpenSim.exe.  In grid mode, they will be hosted in a separate Robust.exe process.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= Packages =</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>= Packages =</div></td></tr>
</table>Justincc