summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h')
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h30
1 files changed, 23 insertions, 7 deletions
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h
index 845588745b1..58d28fb5f01 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.h
@@ -20,6 +20,9 @@
#include "ace/Hash_Map_Manager.h"
#include "ace/Null_Mutex.h"
#include "ace/SString.h"
+#if defined (ACE_WIN32)
+# include "ace/Task.h"
+#endif /* ACE_WIN32 */
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -45,15 +48,28 @@ struct ACE_Equal_To_pid_t
}
};
-
#if (ACE_SIZEOF_VOID_P == 8)
typedef ACE_INT64 Act_token_type;
#else
typedef ACE_INT32 Act_token_type;
#endif
+#if defined (ACE_WIN32)
class Active_Pid_Setter;
+class Watchdog : public ACE_Task_Base
+{
+public:
+ Watchdog (ACE_Process_Manager& procman);
+ virtual int svc ();
+ bool start ();
+ void stop ();
+private:
+ bool stop_;
+ ACE_Process_Manager &procman_;
+};
+#endif /* ACE_WIN32 */
+
/**
* @class ImR_Activator_i
*
@@ -66,7 +82,7 @@ class Active_Pid_Setter;
class Activator_Export ImR_Activator_i : public POA_ImplementationRepository::ActivatorExt,
public ACE_Event_Handler
{
- public:
+public:
friend class Active_Pid_Setter;
ImR_Activator_i (void);
@@ -96,8 +112,7 @@ class Activator_Export ImR_Activator_i : public POA_ImplementationRepository::Ac
/// Shutdown the orb.
void shutdown (bool signaled);
- private:
-
+private:
int init_with_orb (CORBA::ORB_ptr orb, const Activator_Options& opts);
void register_with_imr(ImplementationRepository::Activator_ptr activator);
@@ -111,8 +126,7 @@ class Activator_Export ImR_Activator_i : public POA_ImplementationRepository::Ac
bool in_upcall (void);
- private:
-
+private:
typedef ACE_Unbounded_Set<ACE_CString> UniqueServerList;
typedef ACE_Hash_Map_Manager_Ex<pid_t,
@@ -156,6 +170,9 @@ class Activator_Export ImR_Activator_i : public POA_ImplementationRepository::Ac
bool detach_child_;
pid_t active_check_pid_;
+#if defined (ACE_WIN32)
+ Watchdog process_watcher_;
+#endif /* ACE_WIN32 */
};
#if defined (ACE_WIN32)
@@ -166,7 +183,6 @@ public:
~Active_Pid_Setter();
ImR_Activator_i &owner_;
-
};
#endif /* ACE_WIN32 */