summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h')
-rw-r--r--TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h
index 90ef719612f..d777e265a20 100644
--- a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h
+++ b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.h
@@ -130,7 +130,7 @@ public:
double hertz,
bool proactive = true,
bool static_mode = false,
- AlgoMode mode = PROCESS_LEVEL);
+ AlgoMode mode = PROCESS_LEVEL);
~ReplicationManager_i (void);
@@ -173,6 +173,12 @@ public:
virtual void object_id (const char * object_id);
+ virtual FLARE::NotificationId register_fault_notification (
+ FLARE::FaultNotification_ptr receiver);
+
+ virtual void unregister_fault_notification (
+ FLARE::NotificationId id);
+
bool
replica_selection_algo (void);
@@ -232,6 +238,13 @@ public:
typedef ACE_Unbounded_Set<StateSynchronizationAgent_var>
STATE_SYNC_AGENT_LIST;
+
+ typedef ACE_Hash_Map_Manager_Ex<
+ FLARE::NotificationId,
+ FLARE::FaultNotification_var,
+ ACE_Hash<FLARE::NotificationId>,
+ ACE_Equal_To<FLARE::NotificationId>,
+ ACE_Null_Mutex> NOTIFICATION_MAP;
enum
{
@@ -265,7 +278,7 @@ private:
STRING_TO_DOUBLE_MAP hostid_util_map_;
STRING_TO_DOUBLE_MAP objectid_load_map_;
STRING_TO_STRING_MAP processid_host_map_;
-
+
STRING_TO_STRING_LIST_MAP processid_backup_map_;
STRING_TO_STRING_LIST_MAP processid_primary_map_;
STRING_TO_STRING_LIST_MAP hostid_process_map_;
@@ -278,6 +291,10 @@ private:
STATE_SYNC_AGENT_LIST state_synchronization_agent_list_;
ACE_Thread_Mutex state_sync_agent_list_mutex_;
+ ACE_Thread_Mutex notify_mutex_;
+ FLARE::NotificationId subscription_counter_;
+ NOTIFICATION_MAP notify_subscriptions_;
+
void update_enhanced_ranklist (void);
void update_map (const char * key_str,
@@ -349,6 +366,9 @@ private:
STRING_TO_DOUBLE_MAP & dest);
void print_queue (std::priority_queue <UtilRank> queue);
+
+ void send_failure_notice (const char * object_id,
+ const char * host_id);
};
#endif /* REPLICATION_MANAGER_H */