mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-09 20:51:16 +00:00
Replaced direct emitter writing with an accessor to a C-string
This commit is contained in:
@@ -15,8 +15,9 @@ namespace YAML
|
|||||||
Emitter();
|
Emitter();
|
||||||
~Emitter();
|
~Emitter();
|
||||||
|
|
||||||
bool WriteToStream(std::ostream& out) const;
|
// output
|
||||||
bool WriteToFile(const std::string& fileName) const;
|
const char *c_str() const;
|
||||||
|
unsigned size() const;
|
||||||
|
|
||||||
// state checking
|
// state checking
|
||||||
bool good() const;
|
bool good() const;
|
||||||
|
@@ -16,6 +16,7 @@ namespace YAML
|
|||||||
|
|
||||||
unsigned row() const { return m_row; }
|
unsigned row() const { return m_row; }
|
||||||
unsigned col() const { return m_col; }
|
unsigned col() const { return m_col; }
|
||||||
|
unsigned pos() const { return m_pos; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
char *m_buffer;
|
char *m_buffer;
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
#include "emitterutils.h"
|
#include "emitterutils.h"
|
||||||
#include "indentation.h"
|
#include "indentation.h"
|
||||||
#include "exceptions.h"
|
#include "exceptions.h"
|
||||||
#include <fstream>
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
namespace YAML
|
namespace YAML
|
||||||
@@ -16,19 +15,14 @@ namespace YAML
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Emitter::WriteToStream(std::ostream& out) const
|
const char *Emitter::c_str() const
|
||||||
{
|
{
|
||||||
out << m_stream.str();
|
return m_stream.str();
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Emitter::WriteToFile(const std::string& fileName) const
|
unsigned Emitter::size() const
|
||||||
{
|
{
|
||||||
std::ofstream fout(fileName.c_str());
|
return m_stream.pos();
|
||||||
if(!fout)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return WriteToStream(fout);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// state checking
|
// state checking
|
||||||
|
@@ -101,16 +101,15 @@ namespace Test
|
|||||||
YAML::Emitter out;
|
YAML::Emitter out;
|
||||||
std::string desiredOutput;
|
std::string desiredOutput;
|
||||||
test(out, desiredOutput);
|
test(out, desiredOutput);
|
||||||
std::stringstream output;
|
std::string output = out.c_str();
|
||||||
out.WriteToStream(output);
|
|
||||||
|
|
||||||
if(output.str() == desiredOutput) {
|
if(output == desiredOutput) {
|
||||||
std::cout << "Test passed: " << name << "\n";
|
std::cout << "Test passed: " << name << "\n";
|
||||||
} else {
|
} else {
|
||||||
passed = false;
|
passed = false;
|
||||||
std::cout << "Test failed: " << name << "\n";
|
std::cout << "Test failed: " << name << "\n";
|
||||||
std::cout << "Output:\n";
|
std::cout << "Output:\n";
|
||||||
std::cout << output.str() << "<<<\n";
|
std::cout << output << "<<<\n";
|
||||||
std::cout << "Desired output:\n";
|
std::cout << "Desired output:\n";
|
||||||
std::cout << desiredOutput << "<<<\n";
|
std::cout << desiredOutput << "<<<\n";
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user