diff options
Diffstat (limited to 'TAO/orbsvcs/tests/Notify/Ordering/common.cpp')
-rw-r--r-- | TAO/orbsvcs/tests/Notify/Ordering/common.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/Notify/Ordering/common.cpp b/TAO/orbsvcs/tests/Notify/Ordering/common.cpp new file mode 100644 index 00000000000..b842263a6f4 --- /dev/null +++ b/TAO/orbsvcs/tests/Notify/Ordering/common.cpp @@ -0,0 +1,63 @@ +// $Id$ + +#include "common.h" + +#include "orbsvcs/CosNotifyCommC.h" +#include "orbsvcs/CosNamingC.h" +#include "ace/OS_NS_stdio.h" +#include "ace/OS_NS_string.h" + + +const char* +Any_String (const CORBA::Any& any) +{ + static char out[256] = ""; + CORBA::Short s; + CORBA::UShort us; + CORBA::Long l; + CORBA::ULong ul; + CORBA::ULongLong ull; + const char* str; + + if (any >>= s) + { + ACE_OS::sprintf (out, "%d", s); + } + else if (any >>= us) + { + ACE_OS::sprintf (out, "%u", us); + } + else if (any >>= l) + { + ACE_OS::sprintf (out, "%d", l); + } + else if (any >>= ul) + { + ACE_OS::sprintf (out, "%u", ul); + } + else if (any >>= str) + { + ACE_OS::strcpy (out, str); + } + else if (any >>= ull) + { +#if defined (ACE_LACKS_LONGLONG_T) + ACE_OS::strcpy (out, ull.as_string (out)); +#else + double temp = +# if defined (ACE_CONFIG_WIN32_H) + static_cast<double> (static_cast<CORBA::LongLong> (ull)); +# else + ull; +# endif /* ACE_CONFIG_WIN32_H */ + + ACE_OS::sprintf (out, "%.0f", temp); +#endif /* ACE_LACKS_LONGLONG_T */ + } + else + { + ACE_OS::strcpy (out, "Unsupported Any Type"); + } + + return out; +} |