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

<erlref>
  <header>
    <copyright>
      <year>2000</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>cosFileTransferApp</title>
    <prepared></prepared>
    <docno></docno>
    <checked></checked>
    <date>2000-08-24</date>
    <rev>PA1</rev>
  </header>
  <module>cosFileTransferApp</module>
  <modulesummary>The main module of the cosFileTransfer application.</modulesummary>
  <description>
    <p>To get access to the record definitions for the structures use:      <br></br>
<c>-include_lib("cosFileTransfer/include/*.hrl").</c></p>
    <p>This module contains the functions for starting and stopping the application.</p>
  </description>
  <funcs>
    <func>
      <name>install() -> Return</name>
      <fsummary>Install the cosFileTransfer application</fsummary>
      <type>
        <v>Return = ok | {'EXIT', Reason}</v>
      </type>
      <desc>
        <p>This operation installs the cosFileTransfer application. Note, the
          <c>cosProperty</c> application must be installed prior to invoking this
          operation.</p>
      </desc>
    </func>
    <func>
      <name>uninstall() -> Return</name>
      <fsummary>Uninstall the cosFileTransfer application</fsummary>
      <type>
        <v>Return = ok | {'EXIT', Reason}</v>
      </type>
      <desc>
        <p>This operation uninstalls the cosFileTransfer application.</p>
      </desc>
    </func>
    <func>
      <name>start() -> Return</name>
      <fsummary>Start the cosFileTransfer application</fsummary>
      <type>
        <v>Return = ok | {error, Reason}</v>
      </type>
      <desc>
        <p>This operation starts the cosFileTransfer application.</p>
      </desc>
    </func>
    <func>
      <name>stop() -> Return</name>
      <fsummary>Stop the cosFileTransfer application</fsummary>
      <type>
        <v>Return = ok | {error, Reason}</v>
      </type>
      <desc>
        <p>This operation stops the cosFileTransfer application.</p>
      </desc>
    </func>
    <func>
      <name>create_VFS(Type, Content, Host, Port [,Options]) -> Return</name>
      <fsummary>Create a new instance of a Virtual File System</fsummary>
      <type>
        <v>Type = 'FTP' | {'NATIVE', 'cosFileTransferNATIVE_file'} |  {'NATIVE', MyModule}</v>
        <v>Content = []</v>
        <v>Host = string(), e.g. "myHost@myServer" or "012.345.678.910"</v>
        <v>Port = integer()</v>
        <v>Options = [Option]</v>
        <v>Option = {protocol, Protocol} | {connect_timeout, Seconds}</v>
        <v>Protocol = tcp | ssl</v>
        <v>Return = VFS | {'EXCEPTION, E}</v>
        <v>VFS = #objref</v>
      </type>
      <desc>
        <p>This operation creates a new instance of a Virtual File System. The 
          <c>Type</c> parameter determines which type we want the VFS to represent.
          'FTP' maps to the <c>INETS</c> ftp implementation, while
          {'NATIVE', 'cosFileTransferNATIVE_file'} uses the <c>file</c> module.
          It is also possible to implement own mappings which are activated by
          supplying {'NATIVE', MyModule}. The MyModule module must export the same
          functions and behave in the same way as the INETS ftp module, and
          an operation named <c>open(Host, Port)</c>, which shall return 
          <c>{ok, Pid}</c> or <c>{error, Reason}</c>.</p>
        <p>If no <c>Options</c> are supplied the default setting will be
          used, i.e., tcp and 60 seconds.</p>
        <p>The <c>Content</c> parameter is currently ignored by must be supplied
          as an empty list.</p>
      </desc>
    </func>
    <func>
      <name>ssl_server_certfile() -> string()</name>
      <fsummary>Display  the path to the target certificate</fsummary>
      <desc>
        <p>This function returns a path to a file containing a chain of PEM encoded 
          certificates for the cosFileTransfer as target. 
          This is configured by setting the application variable 
          <em>ssl_server_certfile</em>.</p>
      </desc>
    </func>
    <func>
      <name>ssl_client_certfile() -> string()</name>
      <fsummary>Display the path to the client certificate</fsummary>
      <desc>
        <p>This function returns a path to a file containing a chain of PEM encoded 
          certificates used in outgoing calls.
          The default value is configured by setting the application variable 
          <em>ssl_client_certfile</em>.</p>
      </desc>
    </func>
    <func>
      <name>ssl_server_verify() -> 0 | 1 | 2</name>
      <fsummary>Display the SSL verification type for incoming calls</fsummary>
      <desc>
        <p>This function returns the type of verification used by SSL during authentication of the other 
          peer for incoming calls. 
          It is configured by setting the application variable 
          <em>ssl_server_verify</em>.</p>
      </desc>
    </func>
    <func>
      <name>ssl_client_verify() -> 0 | 1 | 2</name>
      <fsummary>Display the SSL verification type for outgoing calls</fsummary>
      <desc>
        <p>This function returns  the type of verification used by SSL during authentication of the other 
          peer for outgoing calls. 
          The default value is configured by setting the application variable 
          <em>ssl_client_verify</em>.</p>
      </desc>
    </func>
    <func>
      <name>ssl_server_depth() -> int()</name>
      <fsummary>Display the SSL verification depth for incoming calls</fsummary>
      <desc>
        <p>This function returns the SSL verification depth for incoming calls. 
          It is configured by setting the application variable 
          <em>ssl_server_depth</em>.</p>
      </desc>
    </func>
    <func>
      <name>ssl_client_depth() ->  int()</name>
      <fsummary>Display the SSL verification depth for outgoing calls</fsummary>
      <desc>
        <p>This function returns the SSL verification depth for outgoing calls. 
          The default value is configured by setting the application variable 
          <em>ssl_client_depth</em>.</p>
      </desc>
    </func>
  </funcs>
  
</erlref>

