// $Id$ // ============================================================================ // // = LIBRARY // TAO/tests/IDL_Test // // = FILENAME // sequence.idl // // = DESCRIPTION // This file contains examples of IDL code that has // caused problems in the past for the TAO IDL // compiler. This test is to make sure the problems // stay fixed. // // = AUTHORS // Jeff Parsons and TAO users. // // ============================================================================ #include "tao/OctetSeq.pidl" struct myfoostruct; typedef sequence myfoostructseq; struct myfoostruct { string str_mem; myfoostructseq rec_mem; }; exception nasty { string id; myfoostruct rec_info; }; // This will produce a link error if a handcraft we have added to // tao/OctetSeqC.h is ever removed. typedef sequence OctetSeqSeq; // Bounded string elements of a sequence, // require the use of CORBA_Any::to_char. interface seqTest { typedef sequence< string<12> > dozens; void send_dozen (inout dozens bouquets); }; local interface seqLocal { }; typedef sequence seqLocalSeq; // Anonymous sequence members must be unique types even if the // sequence itself is not, so the member name has been // incorported into the sequence class name. #if !defined guards // are generated around code for the inner anonymous sequences. struct twinStruct { sequence > and_; sequence > or_; }; // Nested sequences typedef sequence > outside; struct nestedSeqStruct { sequence, 7> inside; }; // Tests deeply nested recursive type. module Deployment { struct ComponentPackageDescription; typedef sequence < ComponentPackageDescription > ComponentPackageDescriptions; struct ComponentAssemblyDescription { ComponentPackageDescriptions instance; }; typedef sequence < ComponentAssemblyDescription > ComponentAssemblyDescriptions; struct NamedImplementationArtifact; typedef sequence < NamedImplementationArtifact > NamedImplementationArtifacts; struct NamedImplementationArtifact { string str; NamedImplementationArtifacts dependsOn; }; struct MonolithicImplementationDescription { NamedImplementationArtifacts primaryArtifact; }; typedef sequence < MonolithicImplementationDescription > MonolithicImplementationDescriptions; struct PackagedComponentImplementation { ComponentAssemblyDescriptions assemblyImpl; MonolithicImplementationDescriptions monolithicImpl; }; typedef sequence < PackagedComponentImplementation > PackagedComponentImplementations; struct ComponentPackageDescription { string str; PackagedComponentImplementations implementation; }; };