#ifndef __ANSICPLATFORM_HPP__
#define __ANSICPLATFORM_HPP__
#include "platform/Platform.hpp"
#include "defines.h"
class OutOfMemory;
class InvalidArgument;
abstract class ANSICPlatform : public Platform
{
public: ANSICPlatform();
public: virtual ~ANSICPlatform();
public: virtual void sprintf( char *s, const char * format, ...)
PRINTF_ALIKE( 3, 4 );
public: virtual void vsprintf( char *s, const char *format, va_list raw );
public: virtual Index printfLength( const char * format, ...)
PRINTF_ALIKE( 2, 3 );
public: virtual Index vprintfLength( const char * format, va_list raw );
public: virtual void rawErrorPrintf( const char * format, ... )
PRINTF_ALIKE( 2, 3 );
public: virtual void rawErrorVPrintf( const char * format, va_list raw );
public: virtual char *strcpy( char *dst, const char *src );
public: virtual int strcmp( const char *s1, const char *s2 );
public: virtual Index strlen( const char *s );
public: virtual char *strcat( char *dst, const char *src );
public: virtual char *strchr( const char *s, int c );
public: virtual long strtol( const char *str, char **endptr, int base ) THROWS( InvalidArgument * );
public: virtual int memcmp( void *s1, const void *s2, Index n );
public: virtual void *memchr( const void *s, int c, Index n );
public: virtual void *memcpy( void *s1, const void *s2, Index n );
public: virtual void *memset( void *s, int c, Index n );
public: virtual void *allocateMemory( Index aSize );
public: virtual void deallocateMemory( void *aPointer );
public: static void *allocateMemoryBootstrapANSI( Index aSize );
public: static void deallocateMemoryBootstrapANSI( void *aPointer );
public: virtual boolean equals( const Top *anOther ) const;
public: virtual Top *clone() const;
public: static OutOfMemory *getOutOfMemory();
protected: Index callsNum;
protected: static OutOfMemory *outOfMemoryException;
};
#endif