19 #ifndef INCLUDED_COM_SUN_STAR_UNO_ANY_HXX
20 #define INCLUDED_COM_SUN_STAR_UNO_ANY_HXX
34 #include <com/sun/star/uno/RuntimeException.hpp>
62 this, const_cast<T *>(&value),
111 this, rAny.pData, rAny.pType,
119 return ::rtl::OUString( pType->pTypeName );
132 this, const_cast< void * >( pData_ ), pType_,
139 this, const_cast< void * >( pData_ ), pTypeDescr,
157 template <
typename T>
170 pData, pType, rAny.pData, rAny.pType,
177 pData, pType, rAny.pData, rAny.pType,
198 #ifdef LIBO_INTERNAL_ONLY // "RTL_FAST_STRING"
199 template<
class C1,
class C2 >
200 inline Any SAL_CALL
makeAny(
const rtl::OUStringConcat< C1, C2 >& value )
232 #ifdef LIBO_INTERNAL_ONLY // "RTL_FAST_STRING"
233 template<
class C1,
class C2 >
234 inline void SAL_CALL operator <<= ( Any & rAny, const rtl::OUStringConcat< C1, C2 >& value )
239 &rAny, const_cast< rtl::OUString * >( &str ), rType.getTypeLibType(),
250 rAny.pData, rAny.pType,
272 (value !=
sal_False) == (* static_cast< const sal_Bool * >( rAny.pData ) !=
sal_False));
281 value = *
static_cast< sal_Bool const *
>(
294 (*static_cast< sal_Bool const * >( rAny.pData )
305 value = *
static_cast< const sal_Int8 *
>( rAny.pData );
315 switch (rAny.pType->eTypeClass)
318 value = *
static_cast< const sal_Int8 *
>( rAny.pData );
322 value = *
static_cast< const sal_Int16 *
>( rAny.pData );
332 switch (rAny.pType->eTypeClass)
335 value = (sal_uInt16)( * static_cast< const sal_Int8 * >( rAny.pData ) );
339 value = *
static_cast< const sal_uInt16 *
>( rAny.pData );
350 switch (rAny.pType->eTypeClass)
353 value = *
static_cast< const sal_Int8 *
>( rAny.pData );
356 value = *
static_cast< const sal_Int16 *
>( rAny.pData );
359 value = *
static_cast< const sal_uInt16 *
>( rAny.pData );
363 value = *
static_cast< const sal_Int32 *
>( rAny.pData );
373 switch (rAny.pType->eTypeClass)
376 value = (sal_uInt32)( * static_cast< const sal_Int8 * >( rAny.pData ) );
379 value = (sal_uInt32)( * static_cast< const sal_Int16 * >( rAny.pData ) );
382 value = *
static_cast< const sal_uInt16 *
>( rAny.pData );
386 value = *
static_cast< const sal_uInt32 *
>( rAny.pData );
397 switch (rAny.pType->eTypeClass)
400 value = *
static_cast< const sal_Int8 *
>( rAny.pData );
403 value = *
static_cast< const sal_Int16 *
>( rAny.pData );
406 value = *
static_cast< const sal_uInt16 *
>( rAny.pData );
409 value = *
static_cast< const sal_Int32 *
>( rAny.pData );
412 value = *
static_cast< const sal_uInt32 *
>( rAny.pData );
416 value = *
static_cast< const sal_Int64 *
>( rAny.pData );
426 switch (rAny.pType->eTypeClass)
429 value = (sal_uInt64)( * static_cast< const sal_Int8 * >( rAny.pData ) );
432 value = (sal_uInt64)( * static_cast< const sal_Int16 * >( rAny.pData ) );
435 value = *
static_cast< const sal_uInt16 *
>( rAny.pData );
438 value = (sal_uInt64)( * static_cast< const sal_Int32 * >( rAny.pData ) );
441 value = *
static_cast< const sal_uInt32 *
>( rAny.pData );
445 value = *
static_cast< const sal_uInt64 *
>( rAny.pData );
456 switch (rAny.pType->eTypeClass)
459 value = *
static_cast< const sal_Int8 *
>( rAny.pData );
462 value = *
static_cast< const sal_Int16 *
>( rAny.pData );
465 value = *
static_cast< const sal_uInt16 *
>( rAny.pData );
468 value = *
static_cast< const float *
>( rAny.pData );
479 switch (rAny.pType->eTypeClass)
482 value = *
static_cast< const sal_Int8 *
>( rAny.pData );
485 value = *
static_cast< const sal_Int16 *
>( rAny.pData );
488 value = *
static_cast< const sal_uInt16 *
>( rAny.pData );
491 value = *
static_cast< const sal_Int32 *
>( rAny.pData );
494 value = *
static_cast< const sal_uInt32 *
>( rAny.pData );
497 value = *
static_cast< const float *
>( rAny.pData );
500 value = *
static_cast< const double *
>( rAny.pData );
513 value = *
static_cast< const ::
rtl::OUString *
>( rAny.pData );
520 inline bool SAL_CALL
operator == (
const Any & rAny, const ::rtl::OUString & value )
523 value.equals( * static_cast< const ::rtl::OUString * >( rAny.pData ) ));
532 value = *
static_cast< const Type *
>( rAny.pData );
542 value.
equals( * static_cast< const Type * >( rAny.pData ) ));
552 &value, rAny.pData, rAny.pType,
564 return static_cast< const BaseReference *
>( rAny.pData )->
operator == ( value );
576 rAny.pData, rAny.pType,
585 return (!
operator == ( rAny, value ));
588 template <
typename T>
592 if (! (*
this >>= value)) {
593 throw RuntimeException(
609 template<
typename charT,
typename traits>
610 inline std::basic_ostream<charT, traits> &operator<<(std::basic_ostream<charT, traits> &o,
Any const &any) {
612 switch(any.pType->eTypeClass) {
616 o <<
' ' << any.get<
bool>();
622 o <<
' ' << any.get<sal_Int64>();
627 o <<
' ' << any.get<sal_uInt64>();
631 o <<
' ' << any.get<
double>();
634 std::ios_base::fmtflags flgs = o.setf(
635 std::ios_base::hex, std::ios_base::basefield);
636 charT fill = o.fill(
'0');
637 o <<
" U+" << std::setw(4)
638 << *
static_cast<sal_Unicode const *
>(any.getValue());
647 o <<
' ' << any.get<css::uno::Type>().
getTypeName();
651 << ((*
static_cast<uno_Sequence *
const *
>(any.getValue()))->
655 o << ' ' << *static_cast<sal_Int32 const *>(any.getValue());
659 o <<
' ' << any.getValue();
662 o << ' ' << *static_cast<void * const *>(any.getValue());
679 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */