etk/etk-core/Stream.cpp

91 lines
2.1 KiB
C++
Raw Normal View History

2017-08-28 00:02:11 +02:00
/**
* @author Edouard DUPIN
* @copyright 2011, Edouard DUPIN, all right reserved
* @license MPL-2 (see license file)
*/
#include <etk/Stream.hpp>
#include <etk/String.hpp>
etk::Stream::Stream(size_t _basicSize) :
2017-10-19 14:51:48 +02:00
m_data(ETK_NEW(etk::String)) {
m_data->reserve(_basicSize);
2017-08-28 00:02:11 +02:00
}
etk::Stream::~Stream() {
2017-10-19 14:51:48 +02:00
ETK_DELETE(etk::String, m_data);
m_data = null;
2017-08-28 00:02:11 +02:00
}
etk::Stream& etk::Stream::operator<< (const char* _data) {
*m_data += _data;
return *this;
}
etk::Stream& etk::Stream::operator<< (const bool& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
etk::Stream& etk::Stream::operator<< (const int8_t& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
etk::Stream& etk::Stream::operator<< (const int16_t& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
etk::Stream& etk::Stream::operator<< (const int32_t& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
etk::Stream& etk::Stream::operator<< (const int64_t& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
etk::Stream& etk::Stream::operator<< (const uint8_t& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
etk::Stream& etk::Stream::operator<< (const uint16_t& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
etk::Stream& etk::Stream::operator<< (const uint32_t& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
etk::Stream& etk::Stream::operator<< (const uint64_t& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
2017-08-30 21:42:07 +02:00
#if defined(__TARGET_OS__MacOs) \
|| defined(__TARGET_OS__IOs)
etk::Stream& etk::Stream::operator<< (const size_t& _data) {
2017-08-30 21:42:07 +02:00
*m_data += etk::toString(_data);
return *this;
}
#endif
etk::Stream& etk::Stream::operator<< (const float& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
etk::Stream& etk::Stream::operator<< (const double& _data) {
2017-08-28 00:02:11 +02:00
*m_data += etk::toString(_data);
return *this;
}
etk::Stream& etk::Stream::operator<< (const etk::NullPtr& _data) {
*m_data += "null";
2017-09-07 23:38:26 +02:00
return *this;
}
2017-08-28 00:02:11 +02:00
const char* etk::Stream::c_str() const {
return m_data->c_str();
}
const size_t etk::Stream::size() const {
return m_data->size();
2017-09-07 23:38:26 +02:00
}
const etk::String& etk::Stream::str() const {
return *m_data;
}