<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://opensimulator.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://opensimulator.org/index.php?action=history&amp;feed=atom&amp;title=New_Region_Modules%2Ffr</id>
		<title>New Region Modules/fr - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://opensimulator.org/index.php?action=history&amp;feed=atom&amp;title=New_Region_Modules%2Ffr"/>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=New_Region_Modules/fr&amp;action=history"/>
		<updated>2026-04-30T00:24:30Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.9</generator>

	<entry>
		<id>http://opensimulator.org/index.php?title=New_Region_Modules/fr&amp;diff=51026&amp;oldid=prev</id>
		<title>Acryline at 08:24, 19 August 2021</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=New_Region_Modules/fr&amp;diff=51026&amp;oldid=prev"/>
				<updated>2021-08-19T08:24:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 08:24, 19 August 2021&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 118:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 118:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Modules]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Modules]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:French Translations]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Acryline</name></author>	</entry>

	<entry>
		<id>http://opensimulator.org/index.php?title=New_Region_Modules/fr&amp;diff=50978&amp;oldid=prev</id>
		<title>Acryline: Created page with &quot;{{Quicklinks|New Region Modules}} &lt;br /&gt;  = Pourquoi =  L'API du système RegionModule actuel est en partie incohérente et ne prend pas vraiment en charge les redémarrages d...&quot;</title>
		<link rel="alternate" type="text/html" href="http://opensimulator.org/index.php?title=New_Region_Modules/fr&amp;diff=50978&amp;oldid=prev"/>
				<updated>2021-07-25T23:35:59Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Quicklinks|New Region Modules}} &amp;lt;br /&amp;gt;  = Pourquoi =  L&amp;#039;API du système RegionModule actuel est en partie incohérente et ne prend pas vraiment en charge les redémarrages d...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Quicklinks|New Region Modules}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Pourquoi =&lt;br /&gt;
&lt;br /&gt;
L'API du système RegionModule actuel est en partie incohérente et ne prend pas vraiment en charge les redémarrages de régions et l'ajout/suppression de régions à la volée pendant l'exécution du serveur de régions.&lt;br /&gt;
&lt;br /&gt;
Par exemple, l'API indique que ''Initialise'' est appelé pour chaque région (dans chaque module de région), puis que ''PostInitialise'' est appelé pour chaque module de région.&lt;br /&gt;
Lorsqu'une nouvelle région est ajoutée, que doit-il se passer ?&lt;br /&gt;
* Ne pas appeler ''Initialise'' : Le module-région n'est pas initialisé pour cette région, ce qui conduit à des fonctionnalités manquantes.&lt;br /&gt;
* Appeler ''Initialise'' : Alors ''PostInitialise'' a été appelé trop tôt. En fait, ''PostInitialise'' ne peut pas être appelé du tout, car vous pouvez ajouter une région après cela à tout moment.&lt;br /&gt;
&lt;br /&gt;
Que doit-il se passer si une région est redémarrée ? Que doit-il se passer si une région est supprimée ?&lt;br /&gt;
&lt;br /&gt;
= Quoi =&lt;br /&gt;
&lt;br /&gt;
Le nouveau système région-module est basé sur trois interfaces : &lt;br /&gt;
&lt;br /&gt;
''ISharedRegionModule'', ''INonSharedRegionModule'' et ''IRegionModuleBase'', qui est l'interface de base pour les deux autres. &lt;br /&gt;
&lt;br /&gt;
  public interface IRegionModuleBase&lt;br /&gt;
  {&lt;br /&gt;
      string Name { get; }&lt;br /&gt;
      void Initialise(IConfigSource source);&lt;br /&gt;
      void Close();&lt;br /&gt;
      void AddRegion(Scene scene);&lt;br /&gt;
      void RegionLoaded(Scene scene);&lt;br /&gt;
      void RemoveRegion(Scene scene);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public interface ISharedRegionModule : IRegionModuleBase&lt;br /&gt;
  {&lt;br /&gt;
      void PostInitialise();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  public interface INonSharedRegionModule : IRegionModuleBase&lt;br /&gt;
  {&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
* Le chargement des classes des modules régionaux se fait via ''Mono.Addins'' au démarrage du serveur. &lt;br /&gt;
* L'instanciation des modules régionaux se fait...&lt;br /&gt;
** pour ''ISharedRegionModule'' une fois après le chargement (au démarrage du serveur)&lt;br /&gt;
** pour les ''INonSharedRegionModule'' après la création de l'objet ''Scene''.&lt;br /&gt;
* Vous pouvez faire un nettoyage lorsqu'une région est supprimée.&lt;br /&gt;
* Vous pouvez nettoyer avant que le serveur ne s'éteigne.&lt;br /&gt;
&lt;br /&gt;
;Note :&lt;br /&gt;
: Un ''PostInitialise'' pour un ''INonSharedRegionModule'' n'a pas beaucoup de sens, car nous n'avons pas de point précis à partir duquel nous n'appellerons plus ''Initialise'' sur un ''INonSharedRegionModule''. Chaque fois qu'une nouvelle région est ajoutée (ainsi qu'au redémarrage), une nouvelle instance est créée et ''Initialise'' est appelée sur cette instance, donc la sémantique prévue de ''PostInitialise'' ne s'appliquera jamais.&lt;br /&gt;
&lt;br /&gt;
= Details =&lt;br /&gt;
&lt;br /&gt;
== Création d'un assembly de module de région ==&lt;br /&gt;
&lt;br /&gt;
Inclure &lt;br /&gt;
 using Mono.Addins;&lt;br /&gt;
dans votre fichier. Vous devrez inclure Mono.Addins.dll dans votre projet.&lt;br /&gt;
&lt;br /&gt;
Vous devrez ensuite ajouter plusieurs attributs à votre assembly et aux classes d'extension de l'assembly pour que Mono.Addins reconnaisse le fichier .dll comme contenant des addins valides. &lt;br /&gt;
&lt;br /&gt;
Placez ce qui suit n'importe où dans votre bibliothèque, juste au-dessus de la déclaration d'espace de nom dans l'un des fichiers. Ceci doit être inclus dans un seul fichier de votre dll. &lt;br /&gt;
 [assembly : Addin(&amp;quot;MyAddin&amp;quot;, &amp;quot;0.1&amp;quot;)]&lt;br /&gt;
 [assembly : AddinDependency(&amp;quot;OpenSim&amp;quot;, &amp;quot;0.5&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
Pour chaque classe RegionModule, utilisez l'attribut, juste au-dessus de sa déclaration :&lt;br /&gt;
&lt;br /&gt;
 [Extension(Path=&amp;quot;/OpenSim/RegionModules&amp;quot;,NodeName=&amp;quot;RegionModule&amp;quot;)]&lt;br /&gt;
&lt;br /&gt;
Notez que la directive Addin est la seule ici à prendre des paramètres variables. Utilisez votre propre nom pour &amp;quot;MyAddin&amp;quot;, et définissez votre version. Laissez tous les autres paramètres liés à OpenSim comme indiqué.&lt;br /&gt;
&lt;br /&gt;
== Démarrage de region-server ==&lt;br /&gt;
&lt;br /&gt;
* Le serveur de région démarre, les classes de tous les modules de région sont chargées sans ordre particulier.&lt;br /&gt;
** Pour chaque ''ISharedRegionModule'', une instance est créée et ''Initialise'' est appelée.&lt;br /&gt;
** Pour chaque instance de ''ISharedRegionModule'', ''PostInitialise'' est appelé.&lt;br /&gt;
* Les ''Scene'' sont instanciées, une par une :&lt;br /&gt;
** Pour chaque ''Scene''.&lt;br /&gt;
*** pour chaque ''INonSharedRegionModule'', une nouvelle instance est créée et ''Initialise'' est appelée.&lt;br /&gt;
*** pour chaque ''INonSharedRegionModule'' et ''ISharedRegionModule'', ''AddRegion(scene)'' est appelé. Les modules sont associés à la ''Scene'' (pour être supprimés lors de la suppression).&lt;br /&gt;
*** pour chaque ''INonSharedRegionModule'' et ''ISharedRegionModule'', ''RegionLoaded(scene)'' est appelé (vous pouvez accéder aux méthodes des autres modules de cette scène via ''scene.RequestModuleInterface&amp;lt;ModuleInterfaceType&amp;gt;()'' ici).&lt;br /&gt;
&lt;br /&gt;
== Ajout de région ==&lt;br /&gt;
* pour chaque ''INonSharedRegionModule'', une nouvelle instance est créée et ''Initialise'' est appelée.&lt;br /&gt;
* pour chaque ''INonSharedRegionModule'' et ''ISharedRegionModule'', ''AddRegion(scene)'' est appelé. Les modules sont associés à la ''Scène'' (pour être supprimés lors de la suppression).&lt;br /&gt;
* pour chaque ''INonSharedRegionModule'' et ''ISharedRegionModule'', ''RegionLoaded(scene)'' est appelé.&lt;br /&gt;
&lt;br /&gt;
== Suppression de région ==&lt;br /&gt;
&lt;br /&gt;
* Pour chaque ''INonSharedRegionModule'' de la scène et chaque ''ISharedRegionModule'', ''RemoveRegion(scene)'' est appelé.&lt;br /&gt;
** Pour les ''INonSharedRegionModule'', ''Close'' est appelé.&lt;br /&gt;
* Chaque référence de module de la scène est supprimée de la scène. Il ne devrait plus rester aucune référence après cela ; les ''INonSharedRegionModule''s pourraient être récupérés maintenant. &amp;lt;b&amp;gt;Même si le runtime conserve beaucoup de ressources, les modules peuvent être entièrement vidés&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Redémarrage de région ==&lt;br /&gt;
&lt;br /&gt;
Le redémarrage se fait par une séquence de [[#Suppression_de_région|&amp;quot;Suppression de région&amp;quot;]], suivie d'une séquence de [[#Ajout_de_région|&amp;quot;Ajout de région&amp;quot;]]. Comme d'habitude, les avatars qui se trouvent dans cette région lorsqu'elle redémarre sont kickés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;En raison des réalités sur .net/mono, le redémarrage de la région est un échec.&amp;lt;br&amp;gt;&lt;br /&gt;
Même si notre code le faisait correctement, .net ne le fera pas, gardant certaines ressources en utilisation, etc&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Arrêt du serveur de régions ==&lt;br /&gt;
&lt;br /&gt;
* Pour chaque scène, effectuez l'étape [[#Suppression_de_région|&amp;quot;Suppression de région&amp;quot;]] :&lt;br /&gt;
** ''RemoveRegion'' est appelé pour toutes les scènes et modules, ''Close'' est appelé pour tous les ''INonSharedRegionModule''.&lt;br /&gt;
* ''Close'' est appelé pour tous les ''ISharedRegionModule''. Le ''ISharedRegionModule'' peut maintenant être récupéré.&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
&lt;br /&gt;
* ''RemoveRegion''/''Close'' sert à faire le ménage. Les choses que vous avez ajoutées dans ''Initialise''/''AddRegion'' devraient être retirées dans ''Close''/''RemoveRegion'' à nouveau, respectivement.&lt;br /&gt;
* Les modules sont chargés via ''Mono.Addins''. Cela signifie que vous pouvez construire vos propres assemblys avec des modules de région, et en les mettant dans le dossier ''&amp;lt;opensim&amp;gt;/bin'', ils seront chargés automatiquement. Assurez-vous que les attributs corrects sont définis pour que l'addin soit chargé correctement.&lt;br /&gt;
Est-ce que c'est assez clair ? Ou devrions-nous ajouter un exemple explicite ? [[User:HomerHorwitz|HomerHorwitz]] 18:21, 12 mai 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
= TODOs =&lt;br /&gt;
* Configuration sur les modules qui doivent être chargés.&lt;br /&gt;
: nous avons déjà l'option de configuration &amp;lt;tt&amp;gt;enabled = true/false&amp;lt;/tt&amp;gt; OpenSim.ini pour la plupart des modules de région --- [[User:DrScofield|DrScofield]] 09:53, 26 janvier 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
ce qui est une solution terriblement ad hoc - nous avons vraiment besoin d'une meilleure façon de contrôler cela imho --- [[User:Justincc|Justincc]] 20:26, 28 janvier 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Je suis d'accord avec Justin. Un module ne devrait pas être responsable de s'éteindre lui-même, il ne devrait jamais être chargé en premier lieu --[[User:SeanDague|SeanDague]]. 21:51, 28 janvier 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Acryline</name></author>	</entry>

	</feed>