diff options
Diffstat (limited to 'TAO/tests/RTScheduling/DT_Spawn/Thread_Action.h')
-rw-r--r-- | TAO/tests/RTScheduling/DT_Spawn/Thread_Action.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/TAO/tests/RTScheduling/DT_Spawn/Thread_Action.h b/TAO/tests/RTScheduling/DT_Spawn/Thread_Action.h new file mode 100644 index 00000000000..37da9a5de01 --- /dev/null +++ b/TAO/tests/RTScheduling/DT_Spawn/Thread_Action.h @@ -0,0 +1,69 @@ +//$Id$ +#ifndef Thread_Action_H +#define Thread_Action_H + +#include "tao/RTScheduling/RTScheduler.h" +#include "ace/Log_Msg.h" +#include "ace/OS_NS_string.h" +#include "ace/SString.h" + +class Data +{ + public: + ACE_CString data; + RTScheduling::Current_var current; +}; + +class Test_Thread_Action: +public RTScheduling::ThreadAction +{ + public: + Test_Thread_Action (void); + + virtual void _cxx_do (CORBA::VoidData data + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException)); +}; + +#endif /*Thread_Action_H*/ + + +Test_Thread_Action::Test_Thread_Action (void) +{ +} + +void +Test_Thread_Action::_cxx_do (CORBA::VoidData data + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + + Data* tmp = (Data*) data; + ACE_DEBUG ((LM_DEBUG, + "Test_Thread_Action::do %s\n", + tmp->data.c_str ())); + + size_t count = 0; + ACE_OS::memcpy (&count, + tmp->current->id ()->get_buffer (), + tmp->current->id ()->length ()); + + ACE_DEBUG ((LM_DEBUG, + "The spawned DT Guid is %d\n", + count)); + + RTScheduling::Current::NameList_var segment_name_list = + tmp->current->current_scheduling_segment_names (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + ACE_DEBUG ((LM_DEBUG, + "Segment Names for DT %d:\n", + count)); + + for (unsigned int i = 0; i < segment_name_list->length (); i ++) + { + ACE_DEBUG ((LM_DEBUG, + "%s\n", + static_cast<char const*>((*segment_name_list) [i]))); + } +} |