/* @(#)49	1.3  src/examples/pubsex/strtree/string_tree.idl, examples.src, os2dce21.dss, 960602a.1 6/26/95 14:37:41 */
/*
 *   COMPONENT_NAME: examples.src
 *
 *   FUNCTIONS: none
 *
 *   ORIGINS: 72
 *
 */


[uuid(0144d600-2d28-11c9-a812-08002b0ecef1), version(0)]
interface string_tree
{
  /*
   * Maximum length of a string in the tree
   */
  const long int st_c_name_len = 32;

  /*
   * Definition of a node in the tree.
   */
  typedef struct node
  {
      [string] char name[0..st_c_name_len];
      [ptr] struct node *left;
      [ptr] struct node *right;
  } st_node_t;


  /*
   * Operation that prunes the left subtree of the specified
   * tree and returns it as the value.
   */
  st_node_t *st_prune_left (
      [in, out] st_node_t *tree /* root of tree by ref */
      );
}

