/* @(#)91       1.6  src/examples/timop/timop.idl, examples.src, os2dce21.dss, 960602a.1 8/13/95 15:00:47
 *
 * COMPONENT_NAME:  examples.src
 *
 * FUNCTIONS: None
 *
 * ORIGINS: 72
 *
 * (C) COPYRIGHT International Business Machines Corp. 1995
 *  All Rights Reserved
 *  Licensed Materials - Property of IBM
 *
 *  US Government Users Restricted Rights - Use, duplication or
 *  disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
 *
 * @OSF_COPYRIGHT@
 * COPYRIGHT NOTICE
 * Copyright (c) 1990, 1991, 1992, 1993, 1994 Open Software Foundation, Inc.
 * ALL RIGHTS RESERVED (DCE).  See the file named COPYRIGHT.DCE in the
 * src directory for the full copyright text.
 *
 * The Example code is provided to you as "Pass-through Code".
 * Pass-through Code and its related Documentation are not warrented,
 * supported, or indemnified by OSF, and are provided "AS IS".
 * You can use, sublicense, or distribute the same at your own risk.
 *
 * Copyright (c) 1990, 1991
 * Open Software Foundation, Inc.
 *
 * Permission is hereby granted to use, copy, modify and freely distribute
 * the software in this file and its documentation for any purpose without
 * fee, provided that the above copyright notice appears in all copies and
 * that both the copyright notice and this permission notice appear in
 * supporting documentation.  Further, provided that the name of Open
 * Software Foundation, Inc. ("OSF") not be used in advertising or
 * publicity pertaining to distribution of the software without prior
 * written permission from OSF.  OSF makes no representations about the
 * suitability of this software for any purpose.  It is provided "as is"
 * without express or implied warranty.
 *
 */

/*
**	timop.idl
**
**	IDL interface specification for remote time operations.
*/

/* We need explicit handles in timop because our client has multiple (actually,
   multi-threaded) RPCs bound to multiple explicitly-specified servers. */

[uuid(0cf616d8-b858-11c9-8078-02608c0a03a7),
    version(1.0)]
interface timop
{
	/* DTS timestamps are already in a universal format,
	   so are opaque to (the presentation layer of) the RPC
	   (16 = sizeof(utc_t)). */
	const small		SIZEOF_TIMESTAMP = 16;
	typedef byte		timestamp_t[SIZEOF_TIMESTAMP];

	/* Failure value for remote status indications. */
	const long		TIMOP_ERR = -1;

	/* Get the time span to do a job (random factorial). */
	[idempotent]
	void timop_getspan(
		[in]	handle_t		handle,
		[in]	long			rand,
		[out]	timestamp_t		timestamp,
		[out]	long			*status_p,
		[in,out] error_status_t		*remote_status_p);
}
