Merge pull request #1551 from DOCGroup/plm_jira_333
[ACE_TAO.git] / TAO / orbsvcs / FT_ReplicationManager / FT_FaultAnalyzer.h
blobac81edbb323df26d3f1081fcafba9b60c0f61cad
1 /* -*- C++ -*- */
2 //=============================================================================
3 /**
4 * @file FT_FaultAnalyzer.h
6 * This file is part of TAO's implementation of Fault Tolerant CORBA.
8 * @author Steve Totten <totten_s@ociweb.com>
9 */
10 //=============================================================================
13 #ifndef FT_FAULT_ANALYZER_H_
14 #define FT_FAULT_ANALYZER_H_
16 #include /**/ "ace/pre.h"
17 #include <ace/ACE.h>
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #pragma once
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 #include "FT_ReplicationManagerLib_export.h"
24 #include "orbsvcs/CosNotifyCommC.h"
26 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
28 namespace TAO
30 /**
31 * Abstract base class for application-defined fault analyzers.
34 class TAO_ReplicationManagerLib_Export FT_FaultAnalyzer
37 public:
38 /**
39 * Default constructor.
41 FT_FaultAnalyzer ();
43 /**
44 * Destructor.
46 virtual ~FT_FaultAnalyzer ();
48 public:
50 /**
51 * Validate event type to make sure it is one we can handle.
52 * @param event The structured fault event, as from the Fault Notifier.
53 * @return 0 if it is a valid event type, -1 otherwise.
55 virtual int validate_event_type (
56 const CosNotification::StructuredEvent & event) = 0;
58 /**
59 * Analyze a fault event.
60 * @param event The structured fault event, as from the Fault Notifier.
61 * @return 0 on success, -1 on failure.
63 virtual int analyze_fault_event (
64 const CosNotification::StructuredEvent & event) = 0;
66 ////////////////////
67 // Forbidden methods
68 private:
69 /// Copy constructor.
70 FT_FaultAnalyzer (const FT_FaultAnalyzer & rhs);
71 /// Assignment operator.
72 FT_FaultAnalyzer & operator = (const FT_FaultAnalyzer & rhs);
74 ///////////////
75 // Data Members
76 private:
80 } // namespace TAO
82 TAO_END_VERSIONED_NAMESPACE_DECL
84 #include /**/ "ace/post.h"
86 #endif /* FT_FAULT_ANALYZER_H_ */