//
// Copyright (c) 1997 X/Open Company Ltd., A member of The Open Group.
//
// All rights reserved. No part of this source code may be reproduced,
// stored in a retrieval system, or transmitted, in any form or by any
// means, electronic, mechanical, photocopying, recording or otherwise,
// except as stated in the end-user licence agreement, without the prior
// permission of the copyright owners.
//
// Developed for X/Open by ApTest Ireland Limited.
//
// Project: CORVAL2
//


typedef struct Avocado{
  unsigned long ButterBean;
} Apple;

typedef struct Banana{
  float ButterBean[6], ChestNut, Currant[43], CoxPippin, Chervil, Scallion[23], Tomato[8];
} Peanut, Satsuma[3], RedChilly, Celeriac;

interface idlServer {

  exception AppleExcpt{
    ::Apple ex1;
  };

  attribute ::Apple AppleAttr;

  ::Apple AppleOp(
    in    ::Apple p1,
    out   ::Apple p2,
    inout ::Apple p3
  ) raises (AppleExcpt);

  exception AvocadoExcpt{
    ::Avocado ex1;
  };

  attribute ::Avocado AvocadoAttr;

  ::Avocado AvocadoOp(
    in    ::Avocado p1,
    out   ::Avocado p2,
    inout ::Avocado p3
  ) raises (AvocadoExcpt);

  exception PeanutExcpt{
    ::Peanut ex1;
  };

  attribute ::Peanut PeanutAttr;

  ::Peanut PeanutOp(
    in    ::Peanut p1,
    out   ::Peanut p2,
    inout ::Peanut p3
  ) raises (PeanutExcpt);

  exception SatsumaExcpt{
    ::Satsuma ex1;
  };

  attribute ::Satsuma SatsumaAttr;

  ::Satsuma SatsumaOp(
    in    ::Satsuma p1,
    out   ::Satsuma p2,
    inout ::Satsuma p3
  ) raises (SatsumaExcpt);

  exception RedChillyExcpt{
    ::RedChilly ex1;
  };

  attribute ::RedChilly RedChillyAttr;

  ::RedChilly RedChillyOp(
    in    ::RedChilly p1,
    out   ::RedChilly p2,
    inout ::RedChilly p3
  ) raises (RedChillyExcpt);

  exception CeleriacExcpt{
    ::Celeriac ex1;
  };

  attribute ::Celeriac CeleriacAttr;

  ::Celeriac CeleriacOp(
    in    ::Celeriac p1,
    out   ::Celeriac p2,
    inout ::Celeriac p3
  ) raises (CeleriacExcpt);

  exception BananaExcpt{
    ::Banana ex1;
  };

  attribute ::Banana BananaAttr;

  ::Banana BananaOp(
    in    ::Banana p1,
    out   ::Banana p2,
    inout ::Banana p3
  ) raises (BananaExcpt);
};

