5 #ifndef CNOID_UTIL_YAML_WRITER_H_INCLUDED 6 #define CNOID_UTIL_YAML_WRITER_H_INCLUDED 12 #include <boost/lexical_cast.hpp> 13 #include <boost/intrusive_ptr.hpp> 27 void setIndentWidth(
int n);
28 void setKeyOrderPreservationMode(
bool on);
32 void putComment(
const std::string& comment,
bool doNewLine =
true);
34 void putString(
const std::string& value);
35 void putSingleQuotedString(
const std::string& value);
36 void putDoubleQuotedString(
const std::string& value);
37 void putBlockStyleString(
const std::string& value,
bool isLiteral);
38 inline void putLiteralString(
const std::string& value) { putBlockStyleString(value,
true); }
39 inline void putFoldedString(
const std::string& value) { putBlockStyleString(value,
false); }
41 template <
class DataType>
inline void putScalar(
const DataType& value){
42 putString(boost::lexical_cast<std::string>(value));
45 void putScalar(
const double& value);
46 void setDoubleFormat(
const char* format);
49 void startFlowStyleMapping();
53 template <
class DataType>
inline void putKeyValue(
const std::string& key,
const DataType& value){
58 inline void putKeyValue(
const std::string& key,
const std::string& value){
60 putDoubleQuotedString(value);
66 void startFlowStyleListing();
69 #ifdef CNOID_BACKWARD_COMPATIBILITY 70 void startSequence() { startListing(); }
71 void startFlowStyleSequence() { startFlowStyleListing(); }
72 void endSequence() { endListing(); }
81 bool isCurrentNewLine;
83 bool isKeyOrderPreservationMode;
84 bool doInsertLineFeed;
86 const char* doubleFormat;
88 enum { TOP, MAPPING, LISTING };
94 bool hasValuesBeenPut;
95 std::string indentString;
98 std::stack<State> states;
103 State& pushState(
int type,
bool isFlowStyle);
107 bool makeValuePutReady();
108 bool startValuePut();
110 void putString_(
const std::string& value);
111 void putSingleQuotedString_(
const std::string& value);
112 void putDoubleQuotedString_(
const std::string& value);
113 void putKey_(
const std::string& key,
StringStyle style);
114 void startMappingSub(
bool isFlowStyle);
115 void startListingSub(
bool isFlowStyle);
116 void putNodeMain(
const ValueNode* node,
bool doCheckLF);
118 void putMappingNode(
const Mapping* mapping);
119 void putListingNode(
const Listing* listing);
122 #ifdef CNOID_BACKWARD_COMPATIBILITY
Definition: ValueTree.h:224
Definition: YAMLWriter.h:18
StringStyle
Definition: ValueTree.h:24
void putKeyValue(const std::string &key, const std::string &value)
Definition: YAMLWriter.h:58
Definition: ValueTree.h:424
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Definition: ValueTree.h:34
void putKeyValue(const std::string &key, const DataType &value)
Definition: YAMLWriter.h:53
void putLiteralString(const std::string &value)
Definition: YAMLWriter.h:38
void putFoldedString(const std::string &value)
Definition: YAMLWriter.h:39
void putScalar(const DataType &value)
Definition: YAMLWriter.h:41
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: ValueTree.h:24
Definition: ValueTree.h:200