Sophie

Sophie

distrib > Mandriva > 2009.1 > x86_64 > media > main-backports > by-pkgid > ec081eb1f0fb87b7640153d3a3340fac > files > 51

mono-doc-2.4.2.2-1mdv2009.1.x86_64.rpm

<?xml version="1.0" encoding="us-ascii"?><span>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <title>mono-api-domains.html</title>
   <style type="text/css">


   h3 { 
       font-size: 18px;
       padding-bottom: 4pt;
       border-bottom: 2px solid #dddddd;
   }
       
   .api {
     border: 1px solid;
     padding: 10pt;
     margin: 10pt;
   } 

   .api-entry { 
       border-bottom: none;
       font-size: 18px;
   }

   .prototype {
     border: 1px solid;
     background-color: #f2f2f2;
     padding: 5pt;
     margin-top: 5pt;
     margin-bottom: 5pt;  
   } 

   .header {
     border: 1px solid;
     padding: 0 0 5pt 5pt;
     margin: 10pt;
     white-space: pre;
       font-family: monospace;
   }
    
   .code {
     border: 1px solid;
     padding: 0 0 5pt 5pt;
     margin: 10pt;
     white-space: pre;
       font-family: monospace;
   }
   

</style>
</head>
<body>
<h2>Application Domains</h2>

<h3>Synopsis</h3>

<div class="header">
#include &lt;metadata/appdomain.h&gt;

/* Managed AppDomain */
typedef struct _MonoAppDomain MonoAppDomain;

/* Unmanaged representation */
typedef struct _MonoDomain MonoDomain;

/* Represents System.Runtime.Remoting.Contexts.Context */
typedef struct _MonoAppContext MonoAppContext
MonoAssembly*           <a href="#api:mono_domain_assembly_open">mono_domain_assembly_open</a>    (MonoDomain *domain, 
                                                      const char *name);
                        <a href="#api:mono_domain_create"></a>                             
gboolean                <a href="#api:mono_domain_finalize">mono_domain_finalize</a>         (MonoDomain *domain, 
                                                      guint32 timeout) ;
                        <a href="#api:mono_domain_foreach"></a>                             
                        <a href="#api:mono_domain_free"></a>                             
                        <a href="#api:mono_domain_get_by_id"></a>                             
MonoDomain*             <a href="#api:mono_domain_get_id">mono_domain_get_by_id</a>        (gint32 domainid) ;
MonoDomain*             <a href="#api:mono_domain_get">mono_domain_get</a>              ();
gboolean                <a href="#api:mono_domain_has_type_resolve">mono_domain_has_type_resolve</a> (MonoDomain *domain);
                        <a href="#api:mono_domain_is_unloading"></a>                             
void                    <a href="#api:mono_domain_set_internal">mono_domain_set_internal</a>     (MonoDomain *domain);
gboolean                <a href="#api:mono_domain_set">mono_domain_set</a>              (MonoDomain *domain, 
                                                      gboolean force);
MonoReflectionAssembly* <a href="#api:mono_domain_try_type_resolve">mono_domain_try_type_resolve</a> (MonoDomain *domain, 
                                                      char *name, 
                                                      MonoObject *tb);
                        <a href="#api:mono_domain_get_tls_key"></a>                             
gboolean                <a href="#api:mono_domain_owns_vtable_slot">mono_domain_owns_vtable_slot</a> (MonoDomain *domain, 
                                                      gpointer vtable_slot);
                        <a href="#api:mono_context_get"></a>                             
                        <a href="#api:mono_context_set"></a>                             

</div>

	<p />Application domains are used to isolate multiple
	applications on a single Mono virtual machine.  They are
	conceptually similiar to processes, the difference is that
	processes are managed by the operating system, while
	application domains are managed by the Mono virtual machine.

	<p />For more information on applications domains see the <a href="http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx">AppDomain FAQ</a>.
		
	<p />The <tt>MonoDomain</tt> is the unmanaged representation of
	the <a href="http://www.mono-project.com/monodoc/T:System.AppDomain">System.AppDomain</a>
	managed type, while the <tt>MonoAppDomain</tt> type represents
	the managed version (<tt>MonoAppDomain</tt> has a pointer to
	a <tt>MonoDomain</tt>).

 <a name="api:mono_domain_assembly_open"></a>
 <div class="api">
    <div class="api-entry">mono_domain_assembly_open</div>

    <div class="prototype">MonoAssembly*
mono_domain_assembly_open (MonoDomain *domain, const char *name)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>domain:</i></dt><dd> the application domain</dd><dt><i>name:</i></dt><dd> file name of the assembly</dd></blockquote>
<b>Remarks</b>
<p />	 
	 fixme: maybe we should integrate this with mono_assembly_open ??

</div> <a name="api:mono_domain_create"></a>
 <div class="api">
    <div class="api-entry">mono_domain_create</div>

    <div class="prototype">Prototype: mono_domain_create</div>
<p />

</div> <a name="api:mono_domain_finalize"></a>
 <div class="api">
    <div class="api-entry">mono_domain_finalize</div>

    <div class="prototype">
gboolean
mono_domain_finalize (MonoDomain *domain, guint32 timeout) 

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>domain:</i></dt><dd> the domain to finalize</dd><dt><i>timeout:</i></dt><dd> msects to wait for the finalization to complete, -1 to wait indefinitely</dd></blockquote>
<b>Returns</b>
<blockquote>	  TRUE if succeeded, FALSE if there was a timeout
</blockquote>
<b>Remarks</b>
<p />	 
	  Request finalization of all finalizable objects inside <i>domain</i>. Wait
	 <i>timeout</i> msecs for the finalization to complete.
	

</div> <a name="api:mono_domain_foreach"></a>
 <div class="api">
    <div class="api-entry">mono_domain_foreach</div>

    <div class="prototype">Prototype: mono_domain_foreach</div>
<p />

</div> <a name="api:mono_domain_free"></a>
 <div class="api">
    <div class="api-entry">mono_domain_free</div>

    <div class="prototype">Prototype: mono_domain_free</div>
<p />

</div> <a name="api:mono_domain_get_by_id"></a>
 <div class="api">
    <div class="api-entry">mono_domain_get_by_id</div>

    <div class="prototype">Prototype: mono_domain_get_by_id</div>
<p />

</div> <a name="api:mono_domain_get_id"></a>
 <div class="api">
    <div class="api-entry">mono_domain_get_id</div>

    <div class="prototype">MonoDomain* 
mono_domain_get_by_id (gint32 domainid) 

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>domainid:</i></dt><dd> the ID</dd></blockquote>
<b>Returns</b>
<blockquote>	  the a domain for a specific domain id.
</blockquote>

</div> <a name="api:mono_domain_get"></a>
 <div class="api">
    <div class="api-entry">mono_domain_get</div>

    <div class="prototype">MonoDomain*
mono_domain_get ()

</div>
<p />
<b>Returns</b>
<blockquote>	  the current domain, to obtain the root domain use

	 mono_get_root_domain().</blockquote>

</div> <a name="api:mono_domain_has_type_resolve"></a>
 <div class="api">
    <div class="api-entry">mono_domain_has_type_resolve</div>

    <div class="prototype">gboolean
mono_domain_has_type_resolve (MonoDomain *domain)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>domain:</i></dt><dd> application domains being looked up</dd></blockquote>
<b>Remarks</b>
<p />	 
	 Returns true if the AppDomain.TypeResolve field has been
	 set.

</div> <a name="api:mono_domain_is_unloading"></a>
 <div class="api">
    <div class="api-entry">mono_domain_is_unloading</div>

    <div class="prototype">Prototype: mono_domain_is_unloading</div>
<p />

</div> <a name="api:mono_domain_set_internal"></a>
 <div class="api">
    <div class="api-entry">mono_domain_set_internal</div>

    <div class="prototype">void
mono_domain_set_internal (MonoDomain *domain)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>domain:</i></dt><dd> the new domain</dd></blockquote>
<b>Remarks</b>
<p />	 
	 Sets the current domain to <i>domain</i>.

</div> <a name="api:mono_domain_set"></a>
 <div class="api">
    <div class="api-entry">mono_domain_set</div>

    <div class="prototype">gboolean
mono_domain_set (MonoDomain *domain, gboolean force)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>domain:</i></dt><dd> domain</dd><dt><i>force:</i></dt><dd> force setting.</dd></blockquote>
<b>Returns</b>
<blockquote>	 

	   TRUE on success;
	   FALSE if the domain is unloaded</blockquote>
<b>Remarks</b>
<p />	 
	 Set the current appdomain to <i>domain</i>. If <i>force</i> is set, set it even
	 if it is being unloaded.
	

</div> <a name="api:mono_domain_try_type_resolve"></a>
 <div class="api">
    <div class="api-entry">mono_domain_try_type_resolve</div>

    <div class="prototype">MonoReflectionAssembly*
mono_domain_try_type_resolve (MonoDomain *domain, char *name, MonoObject *tb)

</div>
<p />
<b>Parameters</b>
<blockquote><dt><i>domain:</i></dt><dd> application domainwhere the name where the type is going to be resolved</dd><dt><i>name:</i></dt><dd> the name of the type to resolve or NULL.</dd><dt><i>tb:</i></dt><dd> A System.Reflection.Emit.TypeBuilder, used if name is NULL.</dd></blockquote>
<b>Returns</b>
<blockquote>	  A MonoReflectionAssembly or NULL if not found
</blockquote>
<b>Remarks</b>
<p />	 
	 This routine invokes the internal System.AppDomain.DoTypeResolve and returns
	 the assembly that matches name.
	
	 If <i>name</i> is null, the value of ((TypeBuilder)tb).FullName is used instead
	

</div> <a name="api:mono_domain_get_tls_key"></a>
 <div class="api">
    <div class="api-entry">mono_domain_get_tls_key</div>

    <div class="prototype">Prototype: mono_domain_get_tls_key</div>
<p />

</div> <a name="api:mono_domain_owns_vtable_slot"></a>
 <div class="api">
    <div class="api-entry">mono_domain_owns_vtable_slot</div>

    <div class="prototype">gboolean
mono_domain_owns_vtable_slot (MonoDomain *domain, gpointer vtable_slot)

</div>
<p />
<b>Remarks</b>
<p />	 
	  Returns whenever VTABLE_SLOT is inside a vtable which belongs to DOMAIN.


</div><h3>Contexts</h3>

 <a name="api:mono_context_get"></a>
 <div class="api">
    <div class="api-entry">mono_context_get</div>

    <div class="prototype">Prototype: mono_context_get</div>
<p />

</div></body>
</html>
</span>