/* @(#)89       1.5  src/security/idl/rdaclbase.idl, security.src, os2dce21.dss, 960602a.1  5/17/95  09:48:58 */
/*
 * COMPONENT_NAME:  security.src
 *
 * FUNCTIONS:
 *
 * 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: rdaclbase.idl,v $
 * Revision 1.1.2.3  1994/06/17  18:42:19  devsrc
 * 	cr10872 - fix copyright
 * 	[1994/06/17  18:08:59  devsrc]
 *
 * Revision 1.1.2.2  1994/05/11  19:11:14  ahop
 * 	hp_sec_to_osf_2 drop
 * 	Make sure there's a newline at the end of file
 * 	[1994/04/29  21:06:06  ahop]
 * 
 * Revision 1.1.2.1  1994/01/28  23:10:49  burati
 * 	Initial version (dlg_bl1)
 * 	[1994/01/18  20:52:57  burati]
 * 
 * $EndLog$
 */

/*  rdaclbase.idl
**
** Copyright (c) Hewlett-Packard Company 1993
** Unpublished work. All Rights Reserved.
**
*/
/*
**      RDACL base type definitions
*/

[
    uuid(2c592e48-c98a-11cc-91c0-0800093569b9)
]

interface rdacl_base {

    import "dce/aclbase.idl";

    /* sec_acl_twr_ref_t, sec_acl_tower_set_t
     *
     * These types enable the client to pass in an unallocated array of towers
     * and have the server allocate/fill the correct ammount.
     */

    typedef [ref] twr_t *sec_acl_twr_ref_t;
    
    typedef [ptr] struct {
        unsigned32          count;
        [size_is(count)]
        sec_acl_twr_ref_t   towers[];
    } *sec_acl_tower_set_t;


    /*  s e c _ a c l _ r e s u l t _ t
     * 
     *  A sec_acl_result_t is a wire interface representation of a
     *  sec_acl_entry_t.  This type is only used between the client agent
     *  and the server, in the wire API.  The status variable is used to
     *  prevent unnecessary marshalling of data in the event of an error.
     *
     */
    typedef union switch (error_status_t st) {
        case error_status_ok:
            [ptr] sec_acl_list_t      *sec_acl_list;
        default:
            ;                       /* Empty default branch */
    } sec_acl_result_t;

}
