#include <SgGameWriter.h>
Definition at line 16 of file SgGameWriter.h.
Public Member Functions | |
| SgGameWriter (std::ostream &out) | |
| void | WriteGame (SgNode &root, bool allProps, int fileFormat, const std::string &application, int gameNumber, int defaultSize) |
| Write the game tree at 'root' to the given archive. | |
Private Member Functions | |
| void | ConvertFormat (SgNode &root) |
| void | HandleProps (const SgNode *node, int &boardSize) const |
| bool | ShouldWriteProperty (const SgProp &prop) |
| Should property be written to file? May depend on options. | |
| void | StartNewLine () |
| void | WriteNode (const SgNode &node, bool allProps, int boardSize, SgPropPointFmt fmt) |
| void | WriteSubtree (const SgNode &node, bool allProps, int boardSize, SgPropPointFmt fmt) |
| SgGameWriter (const SgGameWriter &) | |
| Not implemented. | |
| SgGameWriter & | operator= (const SgGameWriter &) |
| Not implemented. | |
Private Attributes | |
| std::ostream & | m_out |
| int | m_fileFormat |
| int | m_numPropsOnLine |
| Number of properties on this line. | |
| SgGameWriter::SgGameWriter | ( | std::ostream & | out | ) |
Definition at line 19 of file SgGameWriter.cpp.
| SgGameWriter::SgGameWriter | ( | const SgGameWriter & | ) | [private] |
Not implemented.
| void SgGameWriter::ConvertFormat | ( | SgNode & | root | ) | [private] |
| void SgGameWriter::HandleProps | ( | const SgNode * | node, | |
| int & | boardSize | |||
| ) | const [private] |
Definition at line 106 of file SgGameWriter.cpp.
References SgNode::GetIntProp(), SG_MAX_SIZE, SG_MIN_SIZE, SG_PROP_SIZE, and SgWarning().
Referenced by WriteSubtree().
| SgGameWriter& SgGameWriter::operator= | ( | const SgGameWriter & | ) | [private] |
Not implemented.
| bool SgGameWriter::ShouldWriteProperty | ( | const SgProp & | prop | ) | [private] |
Should property be written to file? May depend on options.
Definition at line 158 of file SgGameWriter.cpp.
References SgProp::Flag(), SgProp::ID(), SgProp::Label(), m_fileFormat, SG_PROP_TIME_BLACK, SG_PROP_TIME_WHITE, and SG_PROPCLASS_NOTCLEAN.
Referenced by WriteNode().
| void SgGameWriter::StartNewLine | ( | ) | [private] |
Definition at line 148 of file SgGameWriter.cpp.
References m_numPropsOnLine, and m_out.
Referenced by WriteNode(), and WriteSubtree().
| void SgGameWriter::WriteGame | ( | SgNode & | root, | |
| bool | allProps, | |||
| int | fileFormat, | |||
| const std::string & | application, | |||
| int | gameNumber, | |||
| int | defaultSize | |||
| ) |
Write the game tree at 'root' to the given archive.
Add file format and application properties to the root node.
| root | Root node of the game. | |
| allProps | Write all properties. | |
| fileFormat | if zero, write it out with the default file format. | |
| application | Application name (will add AP property if not empty) | |
| gameNumber | Game number (will add GM property) | |
| defaultSize | The (game-dependent) default board size, if file contains no SZ property. |
| SgException | If saving fails (presently it does only check if the file is ok at the beginning, not if all writes succeed) |
Definition at line 26 of file SgGameWriter.cpp.
References SgNode::Add(), SgNode::GetIntProp(), SgPropUtil::GetPointFmt(), SgNode::HasProp(), m_fileFormat, m_out, SgPropList::MoveToFront(), SgNode::Props(), SG_PROP_ADD_BLACK, SG_PROP_ADD_EMPTY, SG_PROP_ADD_WHITE, SG_PROP_APPLIC, SG_PROP_DATE, SG_PROP_EVENT, SG_PROP_FORMAT, SG_PROP_GAME, SG_PROP_GAME_NAME, SG_PROP_PLACE, SG_PROP_PLAYER, SG_PROP_PLAYER_BLACK, SG_PROP_PLAYER_WHITE, SG_PROP_RANK_BLACK, SG_PROP_RANK_WHITE, SG_PROP_RESULT, SG_PROP_ROUND, SG_PROP_SIZE, SG_PROP_SOURCE, SG_PROP_TEAM_BLACK, SG_PROP_TEAM_WHITE, SG_PROP_USER, and WriteSubtree().
| void SgGameWriter::WriteNode | ( | const SgNode & | node, | |
| bool | allProps, | |||
| int | boardSize, | |||
| SgPropPointFmt | fmt | |||
| ) | [private] |
Definition at line 119 of file SgGameWriter.cpp.
References SgNode::HasProp(), m_fileFormat, m_numPropsOnLine, m_out, SgNode::Props(), SG_PROP_GAME, SG_PROPCLASS_NEWLINE, ShouldWriteProperty(), and StartNewLine().
Referenced by WriteSubtree().
| void SgGameWriter::WriteSubtree | ( | const SgNode & | node, | |
| bool | allProps, | |||
| int | boardSize, | |||
| SgPropPointFmt | fmt | |||
| ) | [private] |
Definition at line 74 of file SgGameWriter.cpp.
References HandleProps(), SgNode::HasRightBrother(), SgNode::LeftMostSon(), m_out, StartNewLine(), and WriteNode().
Referenced by WriteGame().
int SgGameWriter::m_fileFormat [private] |
Definition at line 41 of file SgGameWriter.h.
Referenced by ShouldWriteProperty(), WriteGame(), and WriteNode().
int SgGameWriter::m_numPropsOnLine [private] |
Number of properties on this line.
Definition at line 44 of file SgGameWriter.h.
Referenced by StartNewLine(), and WriteNode().
std::ostream& SgGameWriter::m_out [private] |
Definition at line 39 of file SgGameWriter.h.
Referenced by StartNewLine(), WriteGame(), WriteNode(), and WriteSubtree().