diff options
| author | Remko Tronçon <git@el-tramo.be> | 2010-03-28 15:46:49 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2010-03-28 15:46:49 (GMT) | 
| commit | f53a1ef582494458301b97bf6e546be52d7ff7e8 (patch) | |
| tree | 7571b5cbcbd8a8f1dd1c966c9045b6cb69f0e295 /3rdParty/CppUnit/src/include/cppunit/portability | |
| parent | 638345680d72ca6acaf123f2c8c1c391f696e371 (diff) | |
| download | swift-f53a1ef582494458301b97bf6e546be52d7ff7e8.zip swift-f53a1ef582494458301b97bf6e546be52d7ff7e8.tar.bz2 | |
Moving submodule contents back.
Diffstat (limited to '3rdParty/CppUnit/src/include/cppunit/portability')
5 files changed, 454 insertions, 0 deletions
| diff --git a/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitDeque.h b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitDeque.h new file mode 100644 index 0000000..bbab21f --- /dev/null +++ b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitDeque.h @@ -0,0 +1,25 @@ +#ifndef CPPUNIT_PORTABILITY_CPPUNITDEQUE_H +#define CPPUNIT_PORTABILITY_CPPUNITDEQUE_H + +// The technic used is similar to the wrapper of STLPort. +  +#include <cppunit/Portability.h> +#include <deque> + + +#if CPPUNIT_STD_NEED_ALLOCATOR + +template<class T> +class CppUnitDeque : public std::deque<T,CPPUNIT_STD_ALLOCATOR> +{ +public: +}; + +#else // CPPUNIT_STD_NEED_ALLOCATOR + +#define CppUnitDeque std::deque + +#endif + +#endif // CPPUNIT_PORTABILITY_CPPUNITDEQUE_H + diff --git a/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitMap.h b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitMap.h new file mode 100644 index 0000000..0cdc723 --- /dev/null +++ b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitMap.h @@ -0,0 +1,29 @@ +#ifndef CPPUNIT_PORTABILITY_CPPUNITMAP_H +#define CPPUNIT_PORTABILITY_CPPUNITMAP_H + +// The technic used is similar to the wrapper of STLPort. +  +#include <cppunit/Portability.h> +#include <functional> +#include <map> + + +#if CPPUNIT_STD_NEED_ALLOCATOR + +template<class Key, class T> +class CppUnitMap : public std::map<Key +                                  ,T +                                  ,std::less<Key> +                                  ,CPPUNIT_STD_ALLOCATOR> +{ +public: +}; + +#else // CPPUNIT_STD_NEED_ALLOCATOR + +#define CppUnitMap std::map + +#endif + +#endif // CPPUNIT_PORTABILITY_CPPUNITMAP_H + diff --git a/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitSet.h b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitSet.h new file mode 100644 index 0000000..18b8662 --- /dev/null +++ b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitSet.h @@ -0,0 +1,28 @@ +#ifndef CPPUNIT_PORTABILITY_CPPUNITSET_H +#define CPPUNIT_PORTABILITY_CPPUNITSET_H + +// The technic used is similar to the wrapper of STLPort. +  +#include <cppunit/Portability.h> +#include <functional> +#include <set> + + +#if CPPUNIT_STD_NEED_ALLOCATOR + +template<class T> +class CppUnitSet : public std::set<T +                                  ,std::less<T> +                                  ,CPPUNIT_STD_ALLOCATOR> +{ +public: +}; + +#else // CPPUNIT_STD_NEED_ALLOCATOR + +#define CppUnitSet std::set + +#endif + +#endif // CPPUNIT_PORTABILITY_CPPUNITSET_H + diff --git a/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitVector.h b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitVector.h new file mode 100644 index 0000000..6666a63 --- /dev/null +++ b/3rdParty/CppUnit/src/include/cppunit/portability/CppUnitVector.h @@ -0,0 +1,25 @@ +#ifndef CPPUNIT_PORTABILITY_CPPUNITVECTOR_H +#define CPPUNIT_PORTABILITY_CPPUNITVECTOR_H + +// The technic used is similar to the wrapper of STLPort. +  +#include <cppunit/Portability.h> +#include <vector> + + +#if CPPUNIT_STD_NEED_ALLOCATOR + +template<class T> +class CppUnitVector : public std::vector<T,CPPUNIT_STD_ALLOCATOR> +{ +public: +}; + +#else // CPPUNIT_STD_NEED_ALLOCATOR + +#define CppUnitVector std::vector + +#endif + +#endif // CPPUNIT_PORTABILITY_CPPUNITVECTOR_H + diff --git a/3rdParty/CppUnit/src/include/cppunit/portability/Stream.h b/3rdParty/CppUnit/src/include/cppunit/portability/Stream.h new file mode 100644 index 0000000..e9beb8c --- /dev/null +++ b/3rdParty/CppUnit/src/include/cppunit/portability/Stream.h @@ -0,0 +1,347 @@ +#ifndef CPPUNIT_PORTABILITY_STREAM_H_INCLUDED +#define CPPUNIT_PORTABILITY_STREAM_H_INCLUDED + +// This module define: +// Type CppUT::Stream (either std::stream or a custom type) +// Type CppUT::OStringStream (eitjer std::ostringstream, older alternate or a custom type) +// Functions stdCOut() & stdCErr() which returns a reference on cout & cerr stream (or our +// custom stream). + +#include <cppunit/Portability.h> + + +#if defined( CPPUNIT_NO_STREAM ) + +#include <string> +#include <stdio.h> +#include <string.h> + +CPPUNIT_NS_BEGIN + +class StreamBuffer +{ +public: +   virtual ~StreamBuffer() {} + +   virtual void write( const char *text, unsigned int length ) = 0; + +   virtual void flush() {} +}; + + +class StringStreamBuffer : public StreamBuffer +{ +public: +   std::string str() const +   { +      return str_; +   } + +public: // overridden from StreamBuffer +   void write( const char *text, unsigned int length ) +   { +      str_.append( text, length ); +   } + +private: +   std::string str_; +}; + + +class FileStreamBuffer : public StreamBuffer +{ +public: +   FileStreamBuffer( FILE *file ) +      : file_( file ) +   { +   } + +   FILE *file() const +   { +      return file_; +   } + +public: // overridden from StreamBuffer +   void write( const char *text, unsigned int length ) +   { +      if ( file_ ) +         fwrite( text, sizeof(char), length, file_ ); +   } + +   void flush()  +   { +      if ( file_ ) +         fflush( file_ ); +   } + +private: +   FILE *file_; +}; + + +class OStream +{ +public: +   OStream() +      : buffer_( 0 ) +   { +   } + +   OStream( StreamBuffer *buffer ) +      : buffer_( buffer ) +   { +   } + +   virtual ~OStream() +   { +     flush(); +   } + +   OStream &flush() +   { +	   if ( buffer_ ) +		    buffer_->flush(); +	   return *this; +   } + +   void setBuffer( StreamBuffer *buffer ) +   { +      buffer_ = buffer; +   } + +   OStream &write( const char *text, unsigned int length ) +   { +      if ( buffer_ ) +         buffer_->write( text, length ); +      return *this; +   } + +   OStream &write( const char *text ) +   { +      return write( text, strlen(text) ); +   } + +   OStream &operator <<( bool v ) +   { +      const char *out = v ? "true" : "false"; +      return write( out ); +   } + +   OStream &operator <<( short v ) +   { +      char buffer[64]; +      sprintf( buffer, "%hd", v ); +      return write( buffer ); +   } + +   OStream &operator <<( unsigned short v ) +   { +      char buffer[64]; +      sprintf( buffer, "%hu", v ); +      return write( buffer ); +   } + +   OStream &operator <<( int v ) +   { +      char buffer[64]; +      sprintf( buffer, "%d", v ); +      return write( buffer ); +   } + +   OStream &operator <<( unsigned int v ) +   { +      char buffer[64]; +      sprintf( buffer, "%u", v ); +      return write( buffer ); +   } + +   OStream &operator <<( long v ) +   { +      char buffer[64]; +      sprintf( buffer, "%ld", v ); +      return write( buffer ); +   } + +   OStream &operator <<( unsigned long v ) +   { +      char buffer[64]; +      sprintf( buffer, "%lu", v ); +      return write( buffer ); +   } + +   OStream &operator <<( float v ) +   { +      char buffer[128]; +      sprintf( buffer, "%.16g", double(v) ); +      return write( buffer ); +   } + +   OStream &operator <<( double v ) +   { +      char buffer[128]; +      sprintf( buffer, "%.16g", v ); +      return write( buffer ); +   } + +   OStream &operator <<( long double v ) +   { +      char buffer[128]; +      sprintf( buffer, "%.16g", double(v) ); +      return write( buffer ); +   } + +   OStream &operator <<( const void *v ) +   { +      char buffer[64]; +      sprintf( buffer, "%p", v ); +      return write( buffer ); +   } + +   OStream &operator <<( const char *v ) +   { +      return write( v ? v : "NULL" ); +   } + +   OStream &operator <<( char c ) +   { +      char buffer[16]; +      sprintf( buffer, "%c", c ); +      return write( buffer ); +   } + +   OStream &operator <<( const std::string &s ) +   { +      return write( s.c_str(), s.length() ); +   } + +private: +   StreamBuffer *buffer_; +}; + + +class OStringStream : public OStream +{ +public: +	OStringStream() +		: OStream( &buffer_ ) +	{ +	} + +	std::string str() const +	{ +		return buffer_.str(); +	} + +private: +	StringStreamBuffer buffer_; +}; + + +class OFileStream : public OStream +{ +public: +   OFileStream( FILE *file ) +      : OStream( &buffer_ ) +      , buffer_( file ) +      , ownFile_( false ) +   { +   } + +   OFileStream( const char *path ) +      : OStream( &buffer_ ) +      , buffer_( fopen( path, "wt" ) ) +      , ownFile_( true ) +   { +   } + +   virtual ~OFileStream() +   { +      if ( ownFile_  &&  buffer_.file() ) +         fclose( buffer_.file() ); +   } + +private: +   FileStreamBuffer buffer_; +   bool ownFile_; +}; + +inline OStream &stdCOut()  +{ +   static OFileStream stream( stdout ); +   return stream; +} + +inline OStream &stdCErr()  +{ +   static OFileStream stream( stderr ); +   return stream; +} + +CPPUNIT_NS_END + +#elif CPPUNIT_HAVE_SSTREAM // #if defined( CPPUNIT_NO_STREAM ) +# include <sstream> +# include <fstream> + +    CPPUNIT_NS_BEGIN +    typedef std::ostringstream OStringStream;      // The standard C++ way +    typedef std::ofstream OFileStream; +    CPPUNIT_NS_END + + +#elif CPPUNIT_HAVE_CLASS_STRSTREAM +# include <string> +# if CPPUNIT_HAVE_STRSTREAM +#   include <strstream> +# else // CPPUNIT_HAVE_STRSTREAM +#  include <strstream.h> +# endif // CPPUNIT_HAVE_CLASS_STRSTREAM + +    CPPUNIT_NS_BEGIN + +    class OStringStream : public std::ostrstream  +    { +    public: +        std::string str() +        { +//            (*this) << '\0'; +//            std::string msg(std::ostrstream::str()); +//            std::ostrstream::freeze(false); +//            return msg; +// Alternative implementation that don't rely on freeze which is not +// available on some platforms: +            return std::string( std::ostrstream::str(), pcount() ); +        } +    }; + +    CPPUNIT_NS_END +#else // CPPUNIT_HAVE_CLASS_STRSTREAM +#   error Cannot define CppUnit::OStringStream. +#endif // #if defined( CPPUNIT_NO_STREAM ) + + + +#if !defined( CPPUNIT_NO_STREAM ) + +#include <iostream> + +    CPPUNIT_NS_BEGIN + +    typedef std::ostream OStream; + +    inline OStream &stdCOut()  +    { +        return std::cout; +    } + +    inline OStream &stdCErr()  +    { +       return std::cerr; +    } + +    CPPUNIT_NS_END +    +#endif // #if !defined( CPPUNIT_NO_STREAM ) + +#endif // CPPUNIT_PORTABILITY_STREAM_H_INCLUDED + | 
 Swift
 Swift