<?xml version="1.0" encoding="latin1" ?>
<!DOCTYPE erlref SYSTEM "erlref.dtd">

<erlref>
  <header>
    <copyright>
      <year>2004</year><year>2009</year>
      <holder>Ericsson AB. All Rights Reserved.</holder>
    </copyright>
    <legalnotice>
      The contents of this file are subject to the Erlang Public License,
      Version 1.1, (the "License"); you may not use this file except in
      compliance with the License. You should have received a copy of the
      Erlang Public License along with this software. If not, it can be
      retrieved online at http://www.erlang.org/.
    
      Software distributed under the License is distributed on an "AS IS"
      basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
      the License for the specific language governing rights and limitations
      under the License.
    
    </legalnotice>

    <title>snmpa_supervisor</title>
    <prepared></prepared>
    <responsible></responsible>
    <docno></docno>
    <approved></approved>
    <checked></checked>
    <date></date>
    <rev></rev>
    <file>snmpa_supervisor.xml</file>
  </header>
  <module>snmpa_supervisor</module>
  <modulesummary>A supervisor for the SNMP agent Processes</modulesummary>
  <description>
    <p>This is the top supervisor for the agent part of the SNMP 
      application. There is always one supervisor at each node with 
      an SNMP agent (master agent or sub-agent).
      </p>
  </description>
  <funcs>
    <func>
      <name>start_sub_sup(Opts) -> {ok, pid()} | {error, {already_started, pid()}} | {error, Reason}</name>
      <fsummary>Start the SNMP supervisor for sub-agents only</fsummary>
      <type>
        <v>Opts = [opt()]</v>
        <v>opt() = {db_dir, string()} | ...</v>
      </type>
      <desc>
        <p>Starts a supervisor for the SNMP agent system without a
          master agent.  The supervisor starts all involved SNMP
          processes, but no agent processes.  Sub-agents should be
          started by calling <c>start_sub_agent/3</c>.
          </p>
        <p><c>db_dir</c> is mandatory.</p>
        <p>See <seealso marker="snmp_config#configuration_params">configuration parameters</seealso> for 
          a description of the options.</p>
      </desc>
    </func>
    <func>
      <name>start_master_sup(Opts) -> {ok, pid()} |  {error, {already_started, pid()}} | {error, Reason}</name>
      <fsummary>Start the SNMP supervisor for all agents</fsummary>
      <type>
        <v>Opts = [opt()]</v>
        <v>opt() = {db_dir, string()} | {config, ConfOpts()} | ...</v>
        <v>ConfOpts = [conf_opts()]</v>
        <v>conf_opts() = {dir, string()} | ...</v>
        <v>Reason = term()</v>
      </type>
      <desc>
        <p>Starts a supervisor for the SNMP agent system.  The
          supervisor starts all involved SNMP processes, including the
          master agent.  Sub-agents should be started by calling
          <c>start_subagent/3</c>.
          </p>
        <p><c>db_dir</c> is mandatory.</p>
        <p><c>dir</c> in config is mandatory.</p>
        <p>See <seealso marker="snmp_config">snmp config</seealso> for 
          a description of the options.</p>
      </desc>
    </func>
    <func>
      <name>start_sub_agent(ParentAgent,Subtree,Mibs) -> {ok, pid()} | {error, Reason}</name>
      <fsummary>Start a sub-agent</fsummary>
      <type>
        <v>ParentAgent = pid()</v>
        <v>SubTree = oid()</v>
        <v>Mibs = [MibName]</v>
        <v>MibName = [string()]</v>
      </type>
      <desc>
        <p>Starts a sub-agent on the node where the function is
          called.  The <c>snmpa_supervisor</c> must be running.
          </p>
        <p>If the supervisor is not running, the function fails with the
          reason <c>badarg</c>.</p>
      </desc>
    </func>
    <func>
      <name>stop_sub_agent(SubAgent) -> ok | no_such_child</name>
      <fsummary>Stop a sub-agent</fsummary>
      <type>
        <v>SubAgent = pid()</v>
      </type>
      <desc>
        <p>Stops the sub-agent on the node where the function is
          called.  The <c>snmpa_supervisor</c> must be running.
          </p>
        <p>If the supervisor is not running, the function fails with the
          reason <c>badarg</c>.</p>
      </desc>
    </func>
  </funcs>
  
</erlref>

