summaryrefslogtreecommitdiff
path: root/trunk/TAO/orbsvcs/orbsvcs/FT_Replica.idl
blob: eb351729e6e05bcda1b6e705e947462d151adcac (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
//$Id$
// FT_replica.idl
#ifndef _FT_REPLICA_IDL_
#define _FT_REPLICA_IDL_

// The OMG FT file has been split into sevaral pieces.  This is one of them.
// It contains the interfaces that a typical FT Replica (replicated servant)
// will need to implement.

#include "FT_CORBA.idl"   // common FT definitions

#pragma prefix "omg.org"

module FT
{
  // Specification of PullMonitorable Interface
  // which Application Objects Inherit
  interface PullMonitorable {
    boolean is_alive();
  };

  // Specifications for Logging and Recovery
  typedef sequence<octet> State;

  exception NoStateAvailable {};
  exception InvalidState {};

  exception NoUpdateAvailable {};
  exception InvalidUpdate {};

  // Specification of Checkpointable Interface
  // which Updateable and Application Objects Inherit
  interface Checkpointable {
    State get_state()
      raises(NoStateAvailable);
    void set_state(in State s)
      raises(InvalidState);
  };

  // Specification of Updateable Interface
  // which Application Objects Inherit
  interface Updateable : Checkpointable
  {
    State get_update()
      raises(NoUpdateAvailable);
    void set_update(in State s)
      raises(InvalidUpdate);
  };
};

#endif // for #ifndef _FT_REPLICA_IDL_