/* @(#)22	1.6  src/rpc/sys_idl/codesets.idl, rpc.idl.src, os2dce21.dss, 960602a.1 5/22/96 16:48:19  */
/*
 *   COMPONENT_NAME: rpc.idl.src
 *
 *   FUNCTIONS: none
 *
 *   ORIGINS: 72
 *
 */
/*
 * @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 for
 * the full copyright text.
 *
 */
/*
 * HISTORY
 * $Log: codesets.idl,v $
 * Revision 1.1.3.3  1994/06/10  20:55:03  devsrc
 *	cr10871 - fix copyright
 *	[1994/06/10  15:00:28  devsrc]
 *
 * Revision 1.1.3.2  1994/04/12  16:52:07  mori_m
 *	CR10047: Fixed potential memory corruptions.
 *	[1994/04/12  16:33:30  mori_m]
 *
 * Revision 1.1.3.1  1994/02/08  21:26:12  mori_m
 *	CR 9701:  Initial release for RPC Runtime I18N support.
 *	[1994/02/08  21:17:48  mori_m]
 *
 * $EndLog$
 */
/*
**
**  NAME:
**
**	codesets.idl
**
**  FACILITY:
**
**	Remote Procedure Call (RPC)
**
**  ABSTRACT:
**
**  This file defines code sets data structure, and a routine to encode the
**  data before it is stored in NSI and a routine to decode the data after
**  the data is retrieved from NSI.
**
**  Both server and client supports a certain set of code sets.  For
**  the communication between client and server without a major data loss,
**  client needs to know which code sets a server supports.  NSI is used
**  to store server's supported code sets.  Since code sets are integer values,
**  they are encoded to endian-safe formats by IDL encoding services before
**  they are stored in NSI.
**
**
*/

[
uuid(35a38fce-b5d1-11cc-af6f-08000925d3fe),
version(2.0)
]
interface codesets
{

#ifdef IBMOS2  /* CMVC 17939(OT 13164) */
import	"cs_mgmt.idl";
#endif

/*
 *  Maximum number of bytes to be stored in CDS entry.
 *  4000 is defined as MAXATTRIBUTE in dns_record.h.  However, since there
 *  is no IDL file which defines this value, there is no way to include
 *  that information from this file.
 */
const long nsi_max_attribute_len = 4000;

/*
 * R P C __ C O D E S E T S _ T O _ N S C O D E S E T S
 *
 * Encode code sets with IDL encoding services for storing in CDS
 */

#ifdef IBMOS2  /* CMVC 17939(OT 13164) */
void rpc__codesets_to_nscodesets (
	[in] handle_t			h,
	[in] rpc_codeset_mgmt_p_t	cp
);
#else
void rpc__codesets_to_nscodesets (
	[in] handle_t			h,
	[in] long			num,
	[in, size_is(num)] byte 	codesets[]
);
#endif
/*
 * R P C __ N S C O D E S E T S _ T O _ C O D E S E T S
 *
 * Decode code sets with IDL encoding services.
 */

#ifdef IBMOS2  /* CMVC 17939(OT 13164) */
void rpc__nscodesets_to_codesets (
	[in] handle_t			h,
	[out] rpc_codeset_mgmt_p_t	*cp
);
#else
void rpc__nscodesets_to_codesets (
	[in] handle_t			h,
	[in, out] long			*num,
	[out, size_is(*num)] byte	codesets[]
);
#endif
}
