home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / fnb101.zip / Lib / site-packages / Fnorb / cos / naming / CosNaming.idl < prev    next >
Text File  |  1999-06-28  |  3KB  |  117 lines

  1. //---------------------------------------------------------------------------
  2. // Copyright (C) DSTC Pty Ltd (ACN 052 372 577) 1997, 1998, 1999
  3. // All Rights Reserved.
  4. //
  5. // The software contained on this media is the property of the DSTC Pty
  6. // Ltd.  Use of this software is strictly in accordance with the
  7. // license agreement in the accompanying LICENSE.HTML file.  If your
  8. // distribution of this software does not contain a LICENSE.HTML file
  9. // then you have no rights to use this software in any manner and
  10. // should contact DSTC at the address below to determine an appropriate
  11. // licensing arrangement.
  12. // 
  13. //      DSTC Pty Ltd
  14. //      Level 7, GP South
  15. //      Staff House Road
  16. //      University of Queensland
  17. //      St Lucia, 4072
  18. //      Australia
  19. //      Tel: +61 7 3365 4310
  20. //      Fax: +61 7 3365 4311
  21. //      Email: enquiries@dstc.edu.au
  22. // 
  23. // This software is being provided "AS IS" without warranty of any
  24. // kind.  In no event shall DSTC Pty Ltd be liable for damage of any
  25. // kind arising out of or in connection with the use or performance of
  26. // this software.
  27. //
  28. // Project:      Distributed Environment
  29. // File:         $Source: /units/arch/src/Fnorb/cos/naming/RCS/CosNaming.idl,v $
  30. // Version:      @(#)$RCSfile: CosNaming.idl,v $ $Revision: 1.3 $
  31. //
  32. //---------------------------------------------------------------------------
  33.  
  34. //
  35. // The CosNaming Module.
  36. //
  37. #pragma prefix "omg.org"
  38.  
  39. module CosNaming
  40. {
  41.     typedef string Istring;
  42.     struct NameComponent {
  43.         Istring id;
  44.         Istring kind;
  45.     };
  46.  
  47.     typedef sequence<NameComponent> Name;
  48.  
  49.     enum BindingType {nobject, ncontext};
  50.  
  51.     struct Binding {
  52.         Name binding_name;
  53.         BindingType binding_type;
  54.     };
  55.  
  56.     typedef sequence<Binding> BindingList;
  57.  
  58.  
  59.     interface BindingIterator;
  60.  
  61.  
  62.     interface NamingContext {
  63.  
  64.         enum NotFoundReason {missing_node, not_context, not_object};
  65.  
  66.         exception NotFound {
  67.             NotFoundReason why;
  68.             Name rest_of_name;
  69.         };
  70.  
  71.         exception CannotProceed {
  72.             NamingContext cxt;
  73.             Name rest_of_name;
  74.         };
  75.  
  76.         exception InvalidName {};
  77.         exception AlreadyBound {};
  78.         exception NotEmpty {};
  79.  
  80.         void bind(in Name n, in Object obj)
  81.             raises(NotFound, CannotProceed, InvalidName, AlreadyBound);
  82.  
  83.         void rebind(in Name n, in Object obj)
  84.             raises(NotFound, CannotProceed, InvalidName);
  85.  
  86.         void bind_context(in Name n, in NamingContext nc)
  87.             raises(NotFound, CannotProceed, InvalidName, AlreadyBound);
  88.  
  89.         void rebind_context(in Name n, in NamingContext nc)
  90.             raises(NotFound, CannotProceed, InvalidName);
  91.  
  92.         Object resolve (in Name n)
  93.             raises(NotFound, CannotProceed, InvalidName);
  94.  
  95.         void unbind(in Name n)
  96.             raises(NotFound, CannotProceed, InvalidName);
  97.  
  98.         NamingContext new_context();
  99.  
  100.         NamingContext bind_new_context(in Name n)
  101.             raises(NotFound, AlreadyBound, CannotProceed, InvalidName);
  102.  
  103.         void destroy( )
  104.             raises(NotEmpty);
  105.  
  106.         void list(in unsigned long how_many,
  107.               out BindingList bl, out BindingIterator bi);
  108.     };
  109.  
  110.     interface BindingIterator {
  111.         boolean next_one(out Binding b);
  112.         boolean next_n(in unsigned long how_many,
  113.                    out BindingList bl);
  114.         void destroy();
  115.         };
  116. };
  117.