Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > contrib-release > by-pkgid > 535a7a10fe62254ee9ca7e6375f081a9 > files > 366

ocaml-ocamlnet-2.2.7-4mdv2008.1.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="previous" href="Netplex_workload.html">
<link rel="next" href="Netplex_config.html">
<link rel="Up" href="index.html">
<link title="Index of types" rel=Appendix href="index_types.html">
<link title="Index of exceptions" rel=Appendix href="index_exceptions.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of class attributes" rel=Appendix href="index_attributes.html">
<link title="Index of class methods" rel=Appendix href="index_methods.html">
<link title="Index of classes" rel=Appendix href="index_classes.html">
<link title="Index of class types" rel=Appendix href="index_class_types.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Index of module types" rel=Appendix href="index_module_types.html">
<link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html">
<link title="Equeue" rel="Chapter" href="Equeue.html">
<link title="Unixqueue" rel="Chapter" href="Unixqueue.html">
<link title="Uq_engines" rel="Chapter" href="Uq_engines.html">
<link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html">
<link title="Unixqueue_mt" rel="Chapter" href="Unixqueue_mt.html">
<link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html">
<link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html">
<link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html">
<link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html">
<link title="Netcgi" rel="Chapter" href="Netcgi.html">
<link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html">
<link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html">
<link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html">
<link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html">
<link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html">
<link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html">
<link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html">
<link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html">
<link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html">
<link title="Http_client" rel="Chapter" href="Http_client.html">
<link title="Telnet_client" rel="Chapter" href="Telnet_client.html">
<link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html">
<link title="Ftp_client" rel="Chapter" href="Ftp_client.html">
<link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html">
<link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html">
<link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html">
<link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html">
<link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html">
<link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html">
<link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html">
<link title="Netplex_types" rel="Chapter" href="Netplex_types.html">
<link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html">
<link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html">
<link title="Netplex_log" rel="Chapter" href="Netplex_log.html">
<link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html">
<link title="Netplex_container" rel="Chapter" href="Netplex_container.html">
<link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html">
<link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html">
<link title="Netplex_main" rel="Chapter" href="Netplex_main.html">
<link title="Netplex_config" rel="Chapter" href="Netplex_config.html">
<link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html">
<link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html">
<link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html">
<link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html">
<link title="Netshm" rel="Chapter" href="Netshm.html">
<link title="Netshm_data" rel="Chapter" href="Netshm_data.html">
<link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html">
<link title="Netshm_array" rel="Chapter" href="Netshm_array.html">
<link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html">
<link title="Netconversion" rel="Chapter" href="Netconversion.html">
<link title="Netchannels" rel="Chapter" href="Netchannels.html">
<link title="Netstream" rel="Chapter" href="Netstream.html">
<link title="Mimestring" rel="Chapter" href="Mimestring.html">
<link title="Netmime" rel="Chapter" href="Netmime.html">
<link title="Netsendmail" rel="Chapter" href="Netsendmail.html">
<link title="Neturl" rel="Chapter" href="Neturl.html">
<link title="Netaddress" rel="Chapter" href="Netaddress.html">
<link title="Netbuffer" rel="Chapter" href="Netbuffer.html">
<link title="Netdate" rel="Chapter" href="Netdate.html">
<link title="Netencoding" rel="Chapter" href="Netencoding.html">
<link title="Netulex" rel="Chapter" href="Netulex.html">
<link title="Netaccel" rel="Chapter" href="Netaccel.html">
<link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html">
<link title="Nethtml" rel="Chapter" href="Nethtml.html">
<link title="Netstring_str" rel="Chapter" href="Netstring_str.html">
<link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html">
<link title="Netstring_mt" rel="Chapter" href="Netstring_mt.html">
<link title="Netmappings" rel="Chapter" href="Netmappings.html">
<link title="Netaux" rel="Chapter" href="Netaux.html">
<link title="Nethttp" rel="Chapter" href="Nethttp.html">
<link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html">
<link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html">
<link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html">
<link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html">
<link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html">
<link title="Netsys" rel="Chapter" href="Netsys.html">
<link title="Netpop" rel="Chapter" href="Netpop.html">
<link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html">
<link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html">
<link title="Rpc_time" rel="Chapter" href="Rpc_time.html">
<link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html">
<link title="Rtypes" rel="Chapter" href="Rtypes.html">
<link title="Xdr" rel="Chapter" href="Xdr.html">
<link title="Rpc" rel="Chapter" href="Rpc.html">
<link title="Rpc_program" rel="Chapter" href="Rpc_program.html">
<link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html">
<link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html">
<link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html">
<link title="Rpc_client" rel="Chapter" href="Rpc_client.html">
<link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html">
<link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html">
<link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html">
<link title="Rpc_server" rel="Chapter" href="Rpc_server.html">
<link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html">
<link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html">
<link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html">
<link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html">
<link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html">
<link title="Shell_sys" rel="Chapter" href="Shell_sys.html">
<link title="Shell" rel="Chapter" href="Shell.html">
<link title="Shell_uq" rel="Chapter" href="Shell_uq.html">
<link title="Shell_mt" rel="Chapter" href="Shell_mt.html">
<link title="Shell_intro" rel="Chapter" href="Shell_intro.html">
<link title="Netsmtp" rel="Chapter" href="Netsmtp.html"><link title="Tutorial" rel="Section" href="#2_Tutorial">
<title>Ocamlnet 2 Reference Manual : Netplex_main</title>
</head>
<body>
<div class="navbar"><a href="Netplex_workload.html">Previous</a>
&nbsp;<a href="index.html">Up</a>
&nbsp;<a href="Netplex_config.html">Next</a>
</div>
<center><h1>Module <a href="type_Netplex_main.html">Netplex_main</a></h1></center>
<br>
<pre><span class="keyword">module</span> Netplex_main: <code class="code">sig</code> <a href="Netplex_main.html">..</a> <code class="code">end</code></pre>Main program for Netplex servers<br>
<hr width="100%">
<pre><span class="keyword">type</span> <a name="TYPEcmdline_config"></a><code class="type"></code>cmdline_config </pre>

<pre><span class="keyword">val</span> <a name="VALargs"></a>args : <code class="type">?defaults:<a href="Netplex_main.html#TYPEcmdline_config">cmdline_config</a> -><br>       unit -> (Arg.key * Arg.spec * Arg.doc) list * <a href="Netplex_main.html#TYPEcmdline_config">cmdline_config</a></code></pre><div class="info">
<code class="code">let (opt_list, cmdline_cfg) = args()</code>:
 Returns <code class="code">opt_list</code> for inclusion in the <code class="code">Arg.parse</code> option list.
 The effects made available by the returned <code class="code">cmdline_cfg</code> value.
<p>

<br>
</div>
<div class="param_info"><code class="code">defaults</code> : The default argument values</div>
<pre><span class="keyword">val</span> <a name="VALcreate"></a>create : <code class="type">?config_filename:string -><br>       ?pidfile:string option -><br>       ?foreground:bool -> unit -> <a href="Netplex_main.html#TYPEcmdline_config">cmdline_config</a></code></pre><div class="info">
Creates the command-line configuration object<br>
</div>
<pre><span class="keyword">val</span> <a name="VALconfig_filename"></a>config_filename : <code class="type"><a href="Netplex_main.html#TYPEcmdline_config">cmdline_config</a> -> string</code></pre><div class="info">
Returns the filename of the configuration file<br>
</div>
<pre><span class="keyword">val</span> <a name="VALpidfile"></a>pidfile : <code class="type"><a href="Netplex_main.html#TYPEcmdline_config">cmdline_config</a> -> string option</code></pre><div class="info">
Returns the location of the PID file (if any)<br>
</div>
<pre><span class="keyword">val</span> <a name="VALforeground"></a>foreground : <code class="type"><a href="Netplex_main.html#TYPEcmdline_config">cmdline_config</a> -> bool</code></pre><div class="info">
Returns whether the daemon runs in the foreground<br>
</div>
<pre><span class="keyword">val</span> <a name="VALstartup"></a>startup : <code class="type">?late_initializer:(<a href="Netplex_types.config_file.html">Netplex_types.config_file</a> -><br>                          <a href="Netplex_types.controller.html">Netplex_types.controller</a> -> unit) -><br>       ?config_parser:(string -> <a href="Netplex_types.config_file.html">Netplex_types.config_file</a>) -><br>       <a href="Netplex_types.parallelizer.html">Netplex_types.parallelizer</a> -><br>       <a href="Netplex_types.logger_factory.html">Netplex_types.logger_factory</a> list -><br>       <a href="Netplex_types.workload_manager_factory.html">Netplex_types.workload_manager_factory</a> list -><br>       <a href="Netplex_types.processor_factory.html">Netplex_types.processor_factory</a> list -> <a href="Netplex_main.html#TYPEcmdline_config">cmdline_config</a> -> unit</code></pre><div class="info">
Parses the configuration file and starts the Netplex daemon.
 Fails with <code class="code">Netplex_config.Config_error</code> when an error in the
 configuration file is detected.
<p>

 The <code class="code">late_initializer</code> is called after the Netplex controller has been
 fully initialized, and before the main event loop is entered. You can
 perform here further initializations, e.g. starting helper threads.
<p>

 The <code class="code">config_parser</code> is by default <code class="code">Netplex_config.read_config_file</code>.
 You can override it by whatever parser you would like to use.<br>
</div>
<br>
<a name="2_Tutorial"></a>
<h2>Tutorial</h2>
<p>

 The typical main program for a <code class="code">Netplex</code> server system looks like:
<p>

 <pre><code class="code"> 
   let my_factories = ...

   let start() =
    let opts, cmdconf = Netplex_main.args() in
    Arg.parse 
      opts
      (fun s -&gt; raise(Arg.Bad ("Unknown arg: " ^ s))) 
      "usage: protoserver";
    let par = Netplex_mp.mp() in  (* or Netplex_mt.mt() *)
    Netplex_main.startup
      par
      Netplex_log.logger_factories
      Netplex_workload.workload_manager_factories
      my_factories
      cmdconf

   Sys.set_signal Sys.sigpipe Sys.Signal_ignore;
   start()
 </code></pre>
<p>

 This main program enables:<ul>
<li>The standard command-line arguments <code class="code">-conf</code>, <code class="code">-pid</code> and <code class="code">-fg</code> are 
   understood</li>
<li>The configuration file is parsed</li>
<li>The configuration can refer to all loggers and workload managers
   coming with Netplex</li>
<li>The parallelizer is selected: Here, it is multi-processing
   (Netplex_mp). One could also select multi-threading (Netplex_mt)</li>
<li>The processors defined by <code class="code">my_factories</code> are made available
   for connection processing</li>
</ul>
<br>
</body></html>