home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / som30tk.zip / som30os2.zip / include / xnamingf.idl < prev   
Text File  |  1996-12-24  |  8KB  |  235 lines

  1. //
  2. //   COMPONENT_NAME: somnm
  3. //
  4. //   ORIGINS: 27
  5. //
  6. //
  7. //    25H7912  (C)  COPYRIGHT International Business Machines Corp. 1992,1996,1996
  8. //   All Rights Reserved
  9. //   Licensed Materials - Property of IBM
  10. //   US Government Users Restricted Rights - Use, duplication or
  11. //   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  12. //
  13. //#  @(#) 1.18 src/somnm/naming/xnamingf.idl, somnm, som3.0 12/15/96 18:01:15 [12/24/96 08:00:06]
  14.  
  15.  
  16. #ifndef xnamingF_idl
  17. #define xnamingF_idl
  18.  
  19. #include <somobj.idl>
  20. #include <xnaming.idl>
  21. #include <somos.idl>
  22.  
  23.  
  24.         //# forward declartions
  25. interface DataBase;
  26. interface BackingStore;
  27.  
  28. module FileXNaming {
  29.  
  30.         const unsigned long STARTINGLENGTH = 16;
  31.         const long MAXSTACK = 100;
  32.  
  33.  
  34.  
  35.         // File system based ENC. Concrete implementation of
  36.         // ExtendedNamingContext
  37.         interface FileENC : ExtendedNaming::ExtendedNamingContext
  38.           , somOS::ServiceBase
  39. {
  40.  
  41.                 typedef string Constraint;
  42.                 typedef char * Strings;
  43.  
  44.  
  45.  
  46.  
  47.         #ifdef __SOMIDL__
  48.                 implementation {
  49.                         functionprefix = FENC_;
  50.  
  51.                                 //# instance variables
  52.                         sequence<Strings> allowedObjTypes;
  53.                         sequence<Strings> allowedPropTypes;
  54.                         sequence<Strings> allowedPropNames;
  55.  
  56.                         somToken cs_mutex;
  57.                         // Mutex used to serialize access to FileENC.
  58.  
  59.                         dllname = "somnmf.dll";
  60.  
  61.  
  62.                         //# Method Modifiers
  63.  
  64.                         //# override somobj methods
  65.                         somDefaultInit: override, init;
  66.                         somDestruct: override;
  67.                         somDumpSelfInt: override;
  68.  
  69.  
  70.                         //# override methods introduced by NamingContext
  71.                         bind: override;
  72.                         rebind: override;
  73.                         bind_context: override;
  74.                         rebind_context: override;
  75.                         resolve: override;
  76.                         unbind: override;
  77.                         new_context: override;
  78.                         bind_new_context: override;
  79.                         destroy: override;
  80.                         list: override;
  81.  
  82.                 //# override methods introduced by ExtendedNamingContext
  83.                         get_features_supported: override;
  84.                         add_property: override;
  85.                         add_properties: override;
  86.                         bind_with_properties: override;
  87.                         bind_context_with_properties: override;
  88.                         rebind_with_properties: override;
  89.                         rebind_context_with_properties: override;
  90.                         share_property: override;
  91.                         share_properties: override;
  92.                         unshare_property: override;
  93.                         unshare_properties: override;
  94.                         list_properties: override;
  95.                         get_property: override;
  96.                         get_properties: override;
  97.                         get_all_properties: override;
  98.                         resolve_with_property: override;
  99.                         resolve_with_properties: override;
  100.                         resolve_with_all_properties: override;
  101.                         remove_property: override;
  102.                         remove_properties: override;
  103.                         remove_all_properties: override;
  104.                         find_any: override;
  105.                         find_all: override;
  106.                         find_any_name_binding: override;
  107.                         add_index: override;
  108.                         list_indexes: override;
  109.                         remove_index: override;
  110.                         _get_allowed_object_types: override;
  111.                         _get_allowed_property_types: override;
  112.                         _get_allowed_property_names: override;
  113.                         _get_shared_property_names: override;
  114.                         _get_shared_property_types: override;
  115.  
  116.                         //# methods introduced by somOS::ServiceBase
  117.                         reinit: override;
  118.                         capture: override;
  119.                         init_for_object_creation: override;
  120.                         uninit_for_object_destruction: override;
  121.  
  122.  
  123.  
  124.  
  125.  
  126.                 };
  127.  
  128.         #endif
  129.  
  130.         };
  131.  
  132.         // default implementation of BindingIterator
  133.         interface FileBindingIterator: CosNaming::BindingIterator {
  134.  
  135.  
  136.             typedef sequence<string> stringSeq;
  137.  
  138.             void FileBindingIterator_Init1(
  139.                         inout somInitCtrl ctrl,
  140.                         in stringSeq key,
  141.                         in string databaseFile);
  142.             void FileBindingIterator_Init2(
  143.                         inout somInitCtrl ctrl,
  144.                         in CosNaming::BindingList bl);
  145.  
  146. #ifdef __SOMIDL__
  147.             implementation {
  148.                         //# instance variables
  149.  
  150.                 CosNaming::BindingIterator obj;
  151.  
  152.  
  153.                 releaseorder:
  154.                   FileBindingIterator_Init1,
  155.                     FileBindingIterator_Init2
  156.                 ;
  157.                 FileBindingIterator_Init1: init;
  158.                 FileBindingIterator_Init2: init;
  159.  
  160.                 functionprefix=FBI_;
  161.                 dllname = "somnmf.dll";
  162.  
  163.                                 //# method modifiers
  164.                 next_one: override;
  165.                 next_n: override;
  166.                 destroy: override;
  167.  
  168.             };
  169. #endif //# __SOMIDL__
  170.         };
  171.  
  172.  
  173.         interface FPropertyBindingIterator : ExtendedNaming::PropertyBindingIterator{
  174.  
  175.                 #ifdef __SOMIDL__
  176.                         implementation {
  177.                                 next_one: override;
  178.                                 next_n: override;
  179.                                 destroy: override;
  180.  
  181.                                 functionprefix = FPB_;
  182.                                 dllname = "somnmf.dll";
  183.                         };
  184.                 #endif
  185.  
  186.         };
  187.  
  188.         interface FPropertyIterator:ExtendedNaming::PropertyIterator{
  189.  
  190.                 #ifdef __SOMIDL__
  191.                         implementation {
  192.                                 next_one: override;
  193.                                 next_n: override;
  194.                                 destroy: override;
  195.  
  196.                                 functionprefix = FP_;
  197.                                 dllname = "somnmf.dll";
  198.                         };
  199.                 #endif
  200.  
  201.         };
  202.  
  203.  
  204.         interface FileIndexIterator: ExtendedNaming::IndexIterator {
  205.  
  206.             void FileIndexIterator_Init(
  207.                         inout somInitCtrl ctrl,
  208.                         in sequence<octet> key,
  209.                         in string databaseFile);
  210.  
  211. #ifdef __SOMIDL__
  212.             implementation {
  213.  
  214.                 releaseorder:
  215.                   FileIndexIterator_Init;
  216.  
  217.                 FileIndexIterator_Init: init;
  218.  
  219.                 functionprefix=II_;
  220.                 dllname = "somnmf.dll";
  221.  
  222.                                 //# method modifiers
  223.                 next_one: override;
  224.                 next_n: override;
  225.                 destroy: override;
  226.  
  227.             };
  228. #endif //# __SOMIDL__
  229.         };
  230. };
  231.  
  232.  
  233.  
  234. #endif //# xnamingF_idl
  235.