//
// 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 Orange19{
  long Sultana19;
  float GaliaMelon19;
  boolean Turnip19;
} LoganBerry19;

typedef struct Lemon20{
  octet Banana20;
  unsigned short Apple20[3];
  char Carrots20;
} BlackCherry20;

typedef struct Lime6{
  char WaterMelon6[13];
} Coconut6[15];

typedef struct BlackEyedBeans6{
  sequence<sequence<Orange19> >  Apricots6[11];
} Mint6[7];

typedef struct Lettuce6{
  sequence<sequence<sequence<BlackCherry20> > >  Tarragon6;
} Mangetout6;

typedef struct Blueberry6{
  sequence<sequence<sequence<float,10> ,19> ,12>  CoxPippin6;
} Chervil6[6];

typedef struct Sultana7{
  sequence<sequence<sequence<Lime6,9> ,7> ,4>  GaliaMelon7;
} Turnip7;

interface TestServer {

  exception LoganBerry19Excpt{
    ::LoganBerry19 ex1;
  };

  attribute ::LoganBerry19 LoganBerry19Attr;

  ::LoganBerry19 LoganBerry19Op(
    in    ::LoganBerry19 p1,
    out   ::LoganBerry19 p2,
    inout ::LoganBerry19 p3
  ) raises (LoganBerry19Excpt);

  exception Orange19Excpt{
    ::Orange19 ex1;
  };

  attribute ::Orange19 Orange19Attr;

  ::Orange19 Orange19Op(
    in    ::Orange19 p1,
    out   ::Orange19 p2,
    inout ::Orange19 p3
  ) raises (Orange19Excpt);

  exception BlackCherry20Excpt{
    ::BlackCherry20 ex1;
  };

  attribute ::BlackCherry20 BlackCherry20Attr;

  ::BlackCherry20 BlackCherry20Op(
    in    ::BlackCherry20 p1,
    out   ::BlackCherry20 p2,
    inout ::BlackCherry20 p3
  ) raises (BlackCherry20Excpt);

  exception Lemon20Excpt{
    ::Lemon20 ex1;
  };

  attribute ::Lemon20 Lemon20Attr;

  ::Lemon20 Lemon20Op(
    in    ::Lemon20 p1,
    out   ::Lemon20 p2,
    inout ::Lemon20 p3
  ) raises (Lemon20Excpt);

  exception Coconut6Excpt{
    ::Coconut6 ex1;
  };

  attribute ::Coconut6 Coconut6Attr;

  ::Coconut6 Coconut6Op(
    in    ::Coconut6 p1,
    out   ::Coconut6 p2,
    inout ::Coconut6 p3
  ) raises (Coconut6Excpt);

  exception Lime6Excpt{
    ::Lime6 ex1;
  };

  attribute ::Lime6 Lime6Attr;

  ::Lime6 Lime6Op(
    in    ::Lime6 p1,
    out   ::Lime6 p2,
    inout ::Lime6 p3
  ) raises (Lime6Excpt);

  exception Mint6Excpt{
    ::Mint6 ex1;
  };

  attribute ::Mint6 Mint6Attr;

  ::Mint6 Mint6Op(
    in    ::Mint6 p1,
    out   ::Mint6 p2,
    inout ::Mint6 p3
  ) raises (Mint6Excpt);

  exception BlackEyedBeans6Excpt{
    ::BlackEyedBeans6 ex1;
  };

  attribute ::BlackEyedBeans6 BlackEyedBeans6Attr;

  ::BlackEyedBeans6 BlackEyedBeans6Op(
    in    ::BlackEyedBeans6 p1,
    out   ::BlackEyedBeans6 p2,
    inout ::BlackEyedBeans6 p3
  ) raises (BlackEyedBeans6Excpt);

  exception Mangetout6Excpt{
    ::Mangetout6 ex1;
  };

  attribute ::Mangetout6 Mangetout6Attr;

  ::Mangetout6 Mangetout6Op(
    in    ::Mangetout6 p1,
    out   ::Mangetout6 p2,
    inout ::Mangetout6 p3
  ) raises (Mangetout6Excpt);

  exception Lettuce6Excpt{
    ::Lettuce6 ex1;
  };

  attribute ::Lettuce6 Lettuce6Attr;

  ::Lettuce6 Lettuce6Op(
    in    ::Lettuce6 p1,
    out   ::Lettuce6 p2,
    inout ::Lettuce6 p3
  ) raises (Lettuce6Excpt);

  exception Chervil6Excpt{
    ::Chervil6 ex1;
  };

  attribute ::Chervil6 Chervil6Attr;

  ::Chervil6 Chervil6Op(
    in    ::Chervil6 p1,
    out   ::Chervil6 p2,
    inout ::Chervil6 p3
  ) raises (Chervil6Excpt);

  exception Blueberry6Excpt{
    ::Blueberry6 ex1;
  };

  attribute ::Blueberry6 Blueberry6Attr;

  ::Blueberry6 Blueberry6Op(
    in    ::Blueberry6 p1,
    out   ::Blueberry6 p2,
    inout ::Blueberry6 p3
  ) raises (Blueberry6Excpt);

  exception Turnip7Excpt{
    ::Turnip7 ex1;
  };

  attribute ::Turnip7 Turnip7Attr;

  ::Turnip7 Turnip7Op(
    in    ::Turnip7 p1,
    out   ::Turnip7 p2,
    inout ::Turnip7 p3
  ) raises (Turnip7Excpt);

  exception Sultana7Excpt{
    ::Sultana7 ex1;
  };

  attribute ::Sultana7 Sultana7Attr;

  ::Sultana7 Sultana7Op(
    in    ::Sultana7 p1,
    out   ::Sultana7 p2,
    inout ::Sultana7 p3
  ) raises (Sultana7Excpt);
};

