# cosTime

### MODULE

cosTime

### MODULE SUMMARY

The main module of the cosTime application

### DESCRIPTION

To get access to the record definitions for the structures use:
`-include_lib("cosTime/include/*.hrl").`

This module contains the functions for starting and stopping the application.

This application use the time base 15 october 1582 00:00. Performing operations using other time bases will not yield correct result.

The OMG CosTime specification defines the operation `secure_universal_time`. As of today we cannot provide this functionality considering the criteria demanded to fulfill the OMG specification.

When using this application, time and inaccuracy supplied by the user must be given in number of 100 nano seconds. The Time Displacement Factor is positive east of the meridian, while those to the west are negative.

This application use `calender:now_to_universal_time(Now)` to create a UTC. Hence, the underlying OS must deliver a correct result when calling `erlang:now()`.

When determining the inaccuracy of the system, the user should consider the way the time objects will be used. Communicating with other ORB's, add a substantial overhead and should be taken into consideration.

### EXPORTS

`install_time() -> Return`

Types:

`Return = ok | {'EXIT', Reason}`

This operation installs the cosTime Time Service part application.

`uninstall_time() -> Return`

Types:

`Return = ok | {'EXIT', Reason}`

This operation uninstalls the cosTime Time Service part application.

`install_timerevent() -> Return`

Types:

`Return = ok | {'EXIT', Reason}`

This operation installs the cosTime Timer Event Service part application.

| The Timer Event Service part requires Time Service part and cosEvent or the cosNotification application to be installed first.

`uninstall_timerevent() -> Return`

Types:

`Return = ok | {'EXIT', Reason}`

This operation uninstalls the cosTime Timer Event Service part application.

`start() -> Return`

Types:

`Return = ok | {error, Reason}`

This operation starts the cosTime application.

`stop() -> Return`

Types:

`Return = ok | {error, Reason}`

This operation stops the cosTime application.

`start_time_service(Tdf, Inaccuracy) -> Return`

Types:

`Tdf = short()`
`Inaccuracy = ulonglong(), eq. #100 nano seconds`
`Return = ok | {'EXCEPTION', #'BAD_PARAM'{}}`

This operation starts a Time Service server. Please note that there may only be exactly one Time Service active at a time. The `Inaccuracy` parameter defines the inaccuracy the underlying OS will introduce. Remember to take into account latency when passing time object between nodes.

`stop_time_service(TimeService) -> ok`

Types:

`TimeService = #objref`

This operation stops the Time Service object.

`start_timerevent_service(TimeService) -> ok`

Types:

`TimeService = #objref`

This operation starts a Timer Event Service server. Please note that there may only be exactly one Timer Event Service per node active at a time. The supplied TimeServcie reference will be the object Timer Event Service contacts to get access to a new UTC.

`stop_timerevent_service(TimerEventService) -> ok`

Types:

`TimerEventService = #objref`

This operation stops the Timer Event Service object.

### AUTHORS

Support - support@erlang.ericsson.se

cosTime 1.1
Copyright © 1991-2006 Ericsson AB