summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp')
-rwxr-xr-xTAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp174
1 files changed, 0 insertions, 174 deletions
diff --git a/TAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp b/TAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp
deleted file mode 100755
index 03fc838db47..00000000000
--- a/TAO/orbsvcs/FT_ReplicationManager/FT_DefaultFaultAnalyzer.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-/* -*- C++ -*- */
-//=============================================================================
-/**
- * @file FT_DefaultFaultAnalyzer.cpp
- *
- * $Id$
- *
- * This file is part of TAO's implementation of Fault Tolerant CORBA.
- *
- * @author Steve Totten <totten_s@ociweb.com>
- */
-//=============================================================================
-
-#include "FT_DefaultFaultAnalyzer.h"
-#include "orbsvcs/CosNotifyCommC.h"
-#include "orbsvcs/FT_NotifierC.h"
-#include "orbsvcs/FT_FaultDetectorFactoryC.h"
-#include "orbsvcs/FT_ReplicationManagerC.h"
-#include "orbsvcs/FT_ReplicationManager/FT_FaultEventDescriptor.h"
-#include "tao/debug.h"
-#include "ace/OS_NS_string.h"
-
-ACE_RCSID (FT_DefaultFaultAnalyzer,
- FT_DefaultFaultAnalyzer,
- "$Id$")
-
-
-TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-
-/// Default constructor.
-TAO::FT_DefaultFaultAnalyzer::FT_DefaultFaultAnalyzer ()
-{
-}
-
-/// Destructor.
-TAO::FT_DefaultFaultAnalyzer::~FT_DefaultFaultAnalyzer ()
-{
-}
-
-// Validate the event to make sure it is one we can handle.
-// If it is not an event we can handle, this function logs the error
-// and returns -1.
-int TAO::FT_DefaultFaultAnalyzer::validate_event_type (
- const CosNotification::StructuredEvent & event)
-{
- int result = 0;
-
- // CORBA 3.0.2, section 23.4.5.1 states:
- //
- // The fault management specification defines one event type:
- // ObjectCrashFault. As the name suggests, this event is
- // generated by a Fault Detector when it detects that an object
- // has crashed.
-
- // So, the event header's event_type.domain_name must be "FT_CORBA"
- // and the event header's event_type.type_name must be "ObjectCrashFault".
- // @@ why make string dups just to do a strcmp?
- CORBA::String_var domain_name = CORBA::string_dup (
- event.header.fixed_header.event_type.domain_name);
- CORBA::String_var type_name = CORBA::string_dup (
- event.header.fixed_header.event_type.type_name);
- CORBA::String_var event_name = CORBA::string_dup (
- event.header.fixed_header.event_name);
-
- if (result == 0)
- {
- if (ACE_OS::strcmp (domain_name.in(), FT::FT_EVENT_TYPE_DOMAIN) != 0 ||
- ACE_OS::strcmp (type_name.in(), FT::FT_EVENT_TYPE_NAME) != 0)
- {
- if (TAO_debug_level > 6)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT (
- "TAO::FT_DefaultFaultAnalyzer::validate_event_type: "
- "Received invalid event type.\n"
- "EventType domain: <%s>\n"
- "EventType type: <%s>\n"
- "EventName: <%s>\n"),
- domain_name.in(),
- type_name.in(),
- event_name.in()
- ));
- }
- result = -1;
- }
- }
-
- // CORBA 3.0.2, section 23.4.5.1 also states:
- //
- // The filterable_data part of the event body contains the
- // identity of the crashed object as four name-value pairs: the
- // fault tolerance domain identifier, the member’s location
- // identifier, the repository identifier and the object group
- // identifier. The Fault Notifier filters events based on the
- // domain_name, the type_name, and the four identifiers. All
- // other fields of the structured event may be set to null.
- //
- // The Fault Detector always sets the following fault event
- // fields: domain_name, type_name, FTDomainId, and Location.
- //
- // So, at least "FTDomainId" and "Location" must be present:
- if (result == 0)
- {
- if (event.filterable_data.length () >= 2)
- {
- // Check for FTDomainId.
- if (ACE_OS::strcmp (
- event.filterable_data[0].name.in(), FT::FT_DOMAIN_ID) != 0)
- {
- if (TAO_debug_level > 6)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT (
- "TAO::FT_DefaultFaultAnalyzer::validate_event_type: "
- "Received invalid structured event.\n"
- "filterable_data[0] must be \"FTDomainId\", not \"%s\"\n"),
- event.filterable_data[0].name.in()
- ));
- }
- result = -1;
- }
- else if (ACE_OS::strcmp (
- event.filterable_data[1].name.in(), FT::FT_LOCATION) != 0)
- {
- if (TAO_debug_level > 6)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT (
- "TAO::FT_DefaultFaultAnalyzer::validate_event_type: "
- "Received invalid structured event.\n"
- "filterable_data[1] must be \"Location\", not \"%s\"\n"),
- event.filterable_data[1].name.in()
- ));
- }
- result = -1;
- }
- }
- else
- {
- if (TAO_debug_level > 6)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT (
- "TAO::FT_DefaultFaultAnalyzer::validate_event_type: "
- "Received invalid structured event.\n"
- "There must be at least two name/value pairs in "
- "the filterable_data field, for \"FTDomainId\" and \"Location\".\n")
- ));
- }
- result = -1;
- }
- }
-
- return result;
-}
-
-/// Analyze a fault event.
-int TAO::FT_DefaultFaultAnalyzer::analyze_fault_event (
- const CosNotification::StructuredEvent & event)
-{
- ACE_UNUSED_ARG (event);
- if (TAO_debug_level > 6)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT (
- "In TAO::FT_DefaultFaultAnalyzer::analyze_fault_event.\n")
- ));
- }
-
- // no-op
- return 0;
-}
-
-TAO_END_VERSIONED_NAMESPACE_DECL