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

<erlref>
  <header>
    <copyright>
      <year>2000</year>
      <year>2016</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.

  The Initial Developer of the Original Code is Ericsson AB.
    </legalnotice>

    <title>CosTime_UTO</title>
    <prepared>Niclas Eklund</prepared>
    <responsible>Niclas Eklund</responsible>
    <docno></docno>
    <approved>Niclas Eklund</approved>
    <checked></checked>
    <date>2000-02-01</date>
    <rev>1.0</rev>
  </header>
  <module>CosTime_UTO</module>
  <modulesummary>This module implements the OMG CosTime::UTO interface.</modulesummary>
  <description>
    <p>To get access to the record definitions for the structures use:      <br></br>
<c>-include_lib("cosTime/include/*.hrl").</c></p>
  </description>
  <funcs>
    <func>
      <name>'_get_time'(UTO) -> ulonglong()</name>
      <fsummary>Return the time associated with the target object</fsummary>
      <type>
        <v>UTO = #objref</v>
      </type>
      <desc>
        <p>This operation returns the time associated with the target object.</p>
      </desc>
    </func>
    <func>
      <name>'_get_inaccuracy'(UTO) -> ulonglong()</name>
      <fsummary>Return the inaccuracy associated with the target object</fsummary>
      <type>
        <v>UTO = #objref</v>
      </type>
      <desc>
        <p>This operation returns the inaccuracy associated with the target object.</p>
      </desc>
    </func>
    <func>
      <name>'_get_tdf'(UTO) -> short()</name>
      <fsummary>Return the time displacement factor associated with  the target object</fsummary>
      <type>
        <v>UTO = #objref</v>
      </type>
      <desc>
        <p>This operation returns the time displacement factor associated with 
          the target object.</p>
      </desc>
    </func>
    <func>
      <name>'_get_utc_time'(UTO) -> UtcT</name>
      <fsummary>Return the data associated with the target object in Utc form</fsummary>
      <type>
        <v>UTO = #objref</v>
        <v>Utc = #'TimeBase_UtcT'{time, inacclo, inacchi, tdf}</v>
        <v>time = ulonglong()</v>
        <v>inacclo = ulong()</v>
        <v>inacchi = ushort()</v>
        <v>tdf = short()</v>
      </type>
      <desc>
        <p>This operation returns the data associated with the target object in
          Utc form.</p>
      </desc>
    </func>
    <func>
      <name>absolute_time(UTO) -> OtherUTO</name>
      <fsummary>Create a new UTO object representing the time in the target object added to current time (UTC)</fsummary>
      <type>
        <v>UTO = OtherUTO = #objref</v>
      </type>
      <desc>
        <p>This operation create a new UTO object representing the time in the target
          object added to current time (UTC). The time base is 
          <em>15 october 1582 00:00</em>. Comparing two time objects which use 
          different time base is, by obvious reasons, pointless.
          Raises DATA_CONVERSION if causes an overflow. This operation is only useful
          if the target object represents a relative time.</p>
      </desc>
    </func>
    <func>
      <name>compare_time(UTO, ComparisonType, OtherUTO) -> Reply</name>
      <fsummary>Compare the time associated with the target object and the given UTO object</fsummary>
      <type>
        <v>UTO = OtherUTO = #objref</v>
        <v>ComparisonType = 'IntervalC' | 'MidC'</v>
        <v>Reply = 'TCEqualTo' | 'TCLessThan' | 'TCGreaterThan' | 'TCIndeterminate'</v>
      </type>
      <desc>
        <p>This operation compares the time associated with the target object and the
          given UTO object. The different <c>ComparisonType</c> are:</p>
        <p></p>
        <list type="bulleted">
          <item>'MidC' - only compare the time represented by each object. Furthermore,
           the target object is always used as the first parameter in the
           comparison, i.e., if the target object's time is larger 
           'TCGreaterThan' will be returned.</item>
          <item>'IntervalC' - also takes the inaccuracy into consideration, i.e.,
           if the two objects interval overlaps 'TCIndeterminate' is returned,
           otherwise the as for 'MidC'.</item>
        </list>
      </desc>
    </func>
    <func>
      <name>time_to_interval(UTO, OtherUTO) -> TIO</name>
      <fsummary>Create a TIO representing the interval between the target object and the given UTO midpoint times</fsummary>
      <type>
        <v>UTO = OtherUTO = TIO = #objref</v>
      </type>
      <desc>
        <p>This operation returns a TIO representing the interval between the target
          object and the given UTO midpoint times. The inaccuracy in the objects are
          not taken into consideration.</p>
      </desc>
    </func>
    <func>
      <name>interval(UTO) -> TIO</name>
      <fsummary>Create a TIO object representing the error interval around the time value represented by the target object</fsummary>
      <type>
        <v>UTO = TIO = #objref</v>
      </type>
      <desc>
        <p>This operation creates a TIO object representing the error interval
          around the time value represented by the target object, i.e., 
          <c>TIO.upper_bound = UTO.time+UTO.inaccuracy</c> and 
          <c>TIO.lower_bound = UTO.time-UTO.inaccuracy</c>.</p>
      </desc>
    </func>
  </funcs>
  
</erlref>

