summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/FT_ReplicationManager.idl
blob: 8f36d6b135a61ded271583496048b981ed70477e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/* -*- IDL -*- */
//=============================================================================
/**
 *  @file    FT_ReplicationManager.idl
 *
 *  $Id$
 *
 *  This file is part of Fault Tolerant CORBA.
 *  This was original part of the OMG FT.idl file
 *
 *  @author Curt Hibbs <hibbs_c@ociweb.com>
 */
//=============================================================================

#ifndef _FT_REPLICATION_MANAGER_IDL_
#define _FT_REPLICATION_MANAGER_IDL_

#include "orbsvcs/PortableGroup.idl"
#include "orbsvcs/FT_CORBA.idl"
#include "orbsvcs/FT_Replica.idl"
#include "orbsvcs/FT_Notifier.idl"

#pragma prefix "omg.org"

module FT
{
  exception InterfaceNotFound {};

  // Specification of ReplicationManager Interface
  interface ReplicationManager : ::PortableGroup::PropertyManager,
                                 FTObjectGroupManager,
                                 ::PortableGroup::GenericFactory
  {

    /**
    * Registers the Fault Notifier with the Replication Manager.
    * @param fault_notifier where to send the fault information.
    */
    void register_fault_notifier(in FaultNotifier fault_notifier);

    /**
    * Returns the reference of the Fault Notifier.
    * @returns the reference of the Fault Notifier.
    */
    FaultNotifier get_fault_notifier()
      raises (InterfaceNotFound);

     /**
     * Find a registry for factories that create fault tolerant replicas.
     *
     * TAO-specific operation
     *
     * Factories in this registry will be used by the
     * ReplicationManager's implementation of
     * GenericFactory::create_object when infrastructure controlled
     * membership is specified.
     *
     * The factory registry may also be used by applications that
     * control their own membership but don't wish to address the
     * issue of finding factories for replicas.
     *
     * @param selection_criteria to be used to choose among alternate registries (future enhancement.)
     * @returns an implementation of FactoryRegistry
     */
    ::PortableGroup::FactoryRegistry get_factory_registry (in ::PortableGroup::Criteria selection_criteria);

    /**
    * TAO-specific shutdown operation.
    */
    oneway void shutdown ();
  };
};


#endif // _FT_REPLICATION_MANAGER_IDL_