<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE erlref SYSTEM "erlref.dtd">

<erlref>
  <header>
    <copyright>
      <year>2000</year><year>2013</year>
      <holder>Ericsson AB. All Rights Reserved.</holder>
    </copyright>
    <legalnotice>
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
 
          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions 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>

