本文整理汇总了C++中XNode::AppendChild方法的典型用法代码示例。如果您正苦于以下问题:C++ XNode::AppendChild方法的具体用法?C++ XNode::AppendChild怎么用?C++ XNode::AppendChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XNode
的用法示例。
在下文中一共展示了XNode::AppendChild方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateNode
XNode* TapNote::CreateNode() const
{
XNode *p = new XNode( "TapNote" );
p->AppendChild( result.CreateNode() );
p->AppendChild( HoldResult.CreateNode() );
return p;
}
示例2: CreateNode
XNode* HighScoreList::CreateNode() const
{
XNode* pNode = new XNode( "HighScoreList" );
pNode->AppendChild( "NumTimesPlayed", iNumTimesPlayed );
pNode->AppendChild( "LastPlayed", dtLastPlayed.GetString() );
if( HighGrade != Grade_NoData )
pNode->AppendChild( "HighGrade", GradeToString(HighGrade) );
for( unsigned i=0; i<vHighScores.size(); i++ )
{
const HighScore &hs = vHighScores[i];
pNode->AppendChild( hs.CreateNode() );
}
return pNode;
}
示例3: SaveAllToDir
bool Profile::SaveAllToDir( CString sDir, bool bSignData ) const
{
m_sLastPlayedMachineGuid = PROFILEMAN->GetMachineProfile()->m_sGuid;
m_LastPlayedDate = DateTime::GetNowDate();
// Save editable.xml
SaveEditableDataToDir( sDir );
// Save stats.xml
CString fn = sDir + STATS_XML;
XNode xml;
xml.name = "Stats";
xml.AppendChild( SaveGeneralDataCreateNode() );
xml.AppendChild( SaveSongScoresCreateNode() );
xml.AppendChild( SaveCourseScoresCreateNode() );
xml.AppendChild( SaveCategoryScoresCreateNode() );
xml.AppendChild( SaveScreenshotDataCreateNode() );
xml.AppendChild( SaveCalorieDataCreateNode() );
xml.AppendChild( SaveRecentSongScoresCreateNode() );
xml.AppendChild( SaveRecentCourseScoresCreateNode() );
if( IsMachine() )
xml.AppendChild( SaveCoinDataCreateNode() );
DISP_OPT opts = optDefault;
opts.stylesheet = STATS_XSL;
opts.write_tabs = false;
bool bSaved = xml.SaveToFile(fn, &opts);
// Update file cache, or else IsAFile in CryptManager won't see this new file.
FILEMAN->FlushDirCache( sDir );
if( bSaved && bSignData )
{
CString sStatsXmlSigFile = fn+SIGNATURE_APPEND;
CryptManager::SignFileToFile(fn, sStatsXmlSigFile);
// Update file cache, or else IsAFile in CryptManager won't see sStatsXmlSigFile.
FILEMAN->FlushDirCache( sDir );
// Save the "don't share" file
CString sDontShareFile = sDir + DONT_SHARE_SIG;
CryptManager::SignFileToFile(sStatsXmlSigFile, sDontShareFile);
}
SaveStatsWebPageToDir( sDir );
// Empty directories if none exist.
FILEMAN->CreateDir( sDir + EDITS_SUBDIR );
FILEMAN->CreateDir( sDir + SCREENSHOTS_SUBDIR );
return bSaved;
}
示例4: CreateNode
XNode* RadarValues::CreateNode( bool bIncludeSimpleValues, bool bIncludeComplexValues ) const
{
XNode* pNode = new XNode( "RadarValues" );
// TRICKY: Don't print a remainder for the integer values.
FOREACH_ENUM( RadarCategory, rc )
{
if( rc >= RadarCategory_TapsAndHolds )
{
if( bIncludeSimpleValues )
pNode->AppendChild( RadarCategoryToString(rc), (int)m_Values.f[rc] );
}
else
{
if( bIncludeComplexValues )
pNode->AppendChild( RadarCategoryToString(rc), m_Values.f[rc] );
}
}
return pNode;
}
示例5: CreateNode
XNode* RadarValues::CreateNode() const
{
XNode* pNode = new XNode;
pNode->m_sName = "RadarValues";
// TRICKY: Don't print a remainder for the integer values.
FOREACH_RadarCategory( rc )
{
if( rc >= RADAR_NUM_TAPS_AND_HOLDS )
{
if( WRITE_SIMPLE_VALUES )
pNode->AppendChild( RadarCategoryToString(rc), (int)m_Values.f[rc] );
}
else
{
if( WRITE_COMPLEX_VALUES )
pNode->AppendChild( RadarCategoryToString(rc), m_Values.f[rc] );
}
}
return pNode;
}
示例6: while
bool
PropertySet::XMLStore(XNode *pBackupNode)
{
XNode *pPropertiesNode = pBackupNode->AppendChild(_T("Properties"));
std::map<String, std::shared_ptr<Property> >::iterator iterProperty = items_.begin();
while (iterProperty != items_.end())
{
std::shared_ptr<Property> oProperty = (*iterProperty).second;
XNode *pNode = pPropertiesNode->AppendChild(String(oProperty->GetName()));
pNode->AppendAttr(_T("LongValue"), StringParser::IntToString(oProperty->GetLongValue()));
pNode->AppendAttr(_T("StringValue"), oProperty->GetStringValue());
iterProperty++;
}
return true;
}
示例7: MakeRecentScoreNode
XNode* MakeRecentScoreNode( const StageStats &ss, Trail *pTrail, const PlayerStageStats &pss, MultiPlayer mp )
{
XNode* pNode = nullptr;
if( GAMESTATE->IsCourseMode() )
{
pNode = new XNode( "HighScoreForACourseAndTrail" );
CourseID courseID;
courseID.FromCourse(GAMESTATE->m_pCurCourse );
pNode->AppendChild( courseID.CreateNode() );
TrailID trailID;
trailID.FromTrail( pTrail );
pNode->AppendChild( trailID.CreateNode() );
}
else
{
pNode = new XNode( "HighScoreForASongAndSteps" );
SongID songID;
songID.FromSong( ss.m_vpPossibleSongs[0] );
pNode->AppendChild( songID.CreateNode() );
StepsID stepsID;
stepsID.FromSteps( pss.m_vpPossibleSteps[0] );
pNode->AppendChild( stepsID.CreateNode() );
}
XNode* pHighScore = pss.m_HighScore.CreateNode();
pHighScore->AppendChild("Pad", mp);
pHighScore->AppendChild("StageGuid", GAMESTATE->m_sStageGUID);
pHighScore->AppendChild("Guid", CryptManager::GenerateRandomUUID());
pNode->AppendChild( pHighScore );
return pNode;
}
示例8: XNode
XNode *HighScoreImpl::CreateNode() const
{
XNode *pNode = new XNode( "HighScore" );
const bool bWriteSimpleValues = RadarValues::WRITE_SIMPLE_VALIES;
const bool bWriteComplexValues = RadarValues::WRITE_COMPLEX_VALIES;
// TRICKY: Don't write "name to fill in" markers.
pNode->AppendChild( "Name", IsRankingToFillIn(sName) ? RString("") : sName );
pNode->AppendChild( "Grade", GradeToString(grade) );
pNode->AppendChild( "Score", iScore );
pNode->AppendChild( "PercentDP", fPercentDP );
pNode->AppendChild( "SurviveSeconds", fSurviveSeconds );
pNode->AppendChild( "MaxCombo", iMaxCombo );
pNode->AppendChild( "StageAward", StageAwardToString(stageAward) );
pNode->AppendChild( "PeakComboAward", PeakComboAwardToString(peakComboAward) );
pNode->AppendChild( "Modifiers", sModifiers );
pNode->AppendChild( "DateTime", dateTime.GetString() );
pNode->AppendChild( "PlayerGuid", sPlayerGuid );
pNode->AppendChild( "MachineGuid", sMachineGuid );
pNode->AppendChild( "ProductID", iProductID );
XNode* pTapNoteScores = pNode->AppendChild( "TapNoteScores" );
FOREACH_ENUM( TapNoteScore, tns )
if( tns != TNS_None ) // HACK: don't save meaningless "none" count
pTapNoteScores->AppendChild( TapNoteScoreToString(tns), iTapNoteScores[tns] );
XNode* pHoldNoteScores = pNode->AppendChild( "HoldNoteScores" );
FOREACH_ENUM( HoldNoteScore, hns )
if( hns != HNS_None ) // HACK: don't save meaningless "none" count
pHoldNoteScores->AppendChild( HoldNoteScoreToString(hns), iHoldNoteScores[hns] );
pNode->AppendChild( radarValues.CreateNode(bWriteSimpleValues, bWriteComplexValues) );
pNode->AppendChild( "LifeRemainingSeconds", fLifeRemainingSeconds );
pNode->AppendChild( "Disqualified", bDisqualified);
return pNode;
}
示例9: backup
bool
BackupExecuter::StartBackup()
{
Logger::Instance()->LogBackup("Loading backup settings....");
_LoadSettings();
// Special temp setting to skip files during backup/restore while still storing/restoring db file/message info.
bool bMessagesDBOnly = IniFileSettings::Instance()->GetBackupMessagesDBOnly();
if (m_iBackupMode & Backup::BOMessages)
{
if (!PersistentMessage::GetAllMessageFilesAreInDataFolder())
{
Application::Instance()->GetBackupManager()->OnBackupFailed("All messages are not located in the data folder.");
return false;
}
// Skip size check if DB only
if (!bMessagesDBOnly) {
// Check size of data directory and LOG it.
if (PersistentMessage::GetTotalMessageSize() > 1500)
{
Logger::Instance()->LogBackup("The size of the data directory exceeds the maximum RECOMMENDED size for the built in backup (1.5GB) so LOGGING. Please consult the backup documentation");
// Check size of data directory and STOP it.
if (PersistentMessage::GetTotalMessageSize() > 30000)
{
Application::Instance()->GetBackupManager()->OnBackupFailed("The size of the data directory exceeds the maximum size for the built in backup (30GB) so ABORTING. Please consult the backup documentation.");
return false;
}
}
}
}
if (!FileUtilities::Exists(m_sDestination))
{
Application::Instance()->GetBackupManager()->OnBackupFailed("The specified backup directory is not accessible: " + m_sDestination);
return false;
}
String sTime = Time::GetCurrentDateTime();
sTime.Replace(_T(":"), _T(""));
// Generate name for zip file. We always create zip
// file
String sZipFile;
sZipFile.Format(_T("%s\\HMBackup %s.7z"), m_sDestination, sTime);
String sXMLFile;
sXMLFile.Format(_T("%s\\hMailServerBackup.xml"), m_sDestination);
// The name of the backup directory that
// contains all the data files.
String sDataBackupDir = m_sDestination + "\\DataBackup";
// Backup all properties.
XDoc oDoc;
XNode *pBackupNode = oDoc.AppendChild(_T("Backup"));
XNode *pBackupInfoNode = pBackupNode->AppendChild(_T("BackupInformation"));
// Store backup mode
pBackupInfoNode->AppendAttr(_T("Mode"), StringParser::IntToString(m_iBackupMode));
pBackupInfoNode->AppendAttr(_T("Version"), Application::Instance()->GetVersion());
// Backup business objects
if (m_iBackupMode & Backup::BODomains)
{
Logger::Instance()->LogBackup("Backing up domains...");
if (!_BackupDomains(pBackupNode))
{
Application::Instance()->GetBackupManager()->OnBackupFailed("Could not backup domains.");
return false;
}
// Backup message files
if (m_iBackupMode & Backup::BOMessages && !bMessagesDBOnly)
{
Logger::Instance()->LogBackup("Backing up data directory...");
if (!_BackupDataDirectory(sDataBackupDir))
{
Application::Instance()->GetBackupManager()->OnBackupFailed("Could not backup data directory.");
return false;
}
}
}
// Save information in the XML file where messages can be found.
if (m_iBackupMode & Backup::BOMessages)
{
XNode *pMessageFile = pBackupInfoNode->AppendChild(_T("DataFiles"));
if (m_iBackupMode & Backup::BOCompression)
//.........这里部分代码省略.........
示例10: SaveGeneralDataCreateNode
XNode* Profile::SaveGeneralDataCreateNode() const
{
XNode* pGeneralDataNode = new XNode;
pGeneralDataNode->name = "GeneralData";
// TRICKY: These are write-only elements that are never read again. This
// data is required by other apps (like internet ranking), but is
// redundant to the game app.
pGeneralDataNode->AppendChild( "DisplayName", GetDisplayName() );
pGeneralDataNode->AppendChild( "IsMachine", IsMachine() );
pGeneralDataNode->AppendChild( "Guid", m_sGuid );
pGeneralDataNode->AppendChild( "UsingProfileDefaultModifiers", m_bUsingProfileDefaultModifiers );
pGeneralDataNode->AppendChild( "DefaultModifiers", m_sDefaultModifiers );
pGeneralDataNode->AppendChild( "SortOrder", SortOrderToString(m_SortOrder) );
pGeneralDataNode->AppendChild( "LastDifficulty", DifficultyToString(m_LastDifficulty) );
pGeneralDataNode->AppendChild( "LastCourseDifficulty", CourseDifficultyToString(m_LastCourseDifficulty) );
pGeneralDataNode->AppendChild( m_lastSong.CreateNode() );
pGeneralDataNode->AppendChild( m_lastCourse.CreateNode() );
pGeneralDataNode->AppendChild( "TotalPlays", m_iTotalPlays );
pGeneralDataNode->AppendChild( "TotalPlaySeconds", m_iTotalPlaySeconds );
pGeneralDataNode->AppendChild( "TotalGameplaySeconds", m_iTotalGameplaySeconds );
pGeneralDataNode->AppendChild( "CurrentCombo", m_iCurrentCombo );
pGeneralDataNode->AppendChild( "TotalCaloriesBurned", m_fTotalCaloriesBurned );
pGeneralDataNode->AppendChild( "LastPlayedMachineGuid", m_sLastPlayedMachineGuid );
pGeneralDataNode->AppendChild( "LastPlayedDate", m_LastPlayedDate );
pGeneralDataNode->AppendChild( "TotalDancePoints", m_iTotalDancePoints );
pGeneralDataNode->AppendChild( "NumExtraStagesPassed", m_iNumExtraStagesPassed );
pGeneralDataNode->AppendChild( "NumExtraStagesFailed", m_iNumExtraStagesFailed );
pGeneralDataNode->AppendChild( "NumToasties", m_iNumToasties );
pGeneralDataNode->AppendChild( "TotalTapsAndHolds", m_iTotalTapsAndHolds );
pGeneralDataNode->AppendChild( "TotalJumps", m_iTotalJumps );
pGeneralDataNode->AppendChild( "TotalHolds", m_iTotalHolds );
pGeneralDataNode->AppendChild( "TotalMines", m_iTotalMines );
pGeneralDataNode->AppendChild( "TotalHands", m_iTotalHands );
// Keep declared variables in a very local scope so they aren't
// accidentally used where they're not intended. There's a lot of
// copying and pasting in this code.
{
XNode* pUnlockedSongs = pGeneralDataNode->AppendChild("UnlockedSongs");
for( set<int>::const_iterator it = m_UnlockedSongs.begin(); it != m_UnlockedSongs.end(); ++it )
pUnlockedSongs->AppendChild( ssprintf("Unlock%i", *it) );
}
{
XNode* pNumSongsPlayedByPlayMode = pGeneralDataNode->AppendChild("NumSongsPlayedByPlayMode");
FOREACH_PlayMode( pm )
{
/* Don't save unplayed PlayModes. */
if( !m_iNumSongsPlayedByPlayMode[pm] )
continue;
pNumSongsPlayedByPlayMode->AppendChild( PlayModeToString(pm), m_iNumSongsPlayedByPlayMode[pm] );
}
}
{
XNode* pNumSongsPlayedByStyle = pGeneralDataNode->AppendChild("NumSongsPlayedByStyle");
for( map<StyleID,int>::const_iterator iter = m_iNumSongsPlayedByStyle.begin();
iter != m_iNumSongsPlayedByStyle.end();
iter++ )
{
const StyleID &s = iter->first;
int iNumPlays = iter->second;
XNode *pStyleNode = s.CreateNode();
pStyleNode->SetValue( iNumPlays );
pNumSongsPlayedByStyle->AppendChild( pStyleNode );
}
}
{
XNode* pNumSongsPlayedByDifficulty = pGeneralDataNode->AppendChild("NumSongsPlayedByDifficulty");
FOREACH_Difficulty( dc )
{
if( !m_iNumSongsPlayedByDifficulty[dc] )
continue;
pNumSongsPlayedByDifficulty->AppendChild( DifficultyToString(dc), m_iNumSongsPlayedByDifficulty[dc] );
}
}
{
XNode* pNumSongsPlayedByMeter = pGeneralDataNode->AppendChild("NumSongsPlayedByMeter");
for( int i=0; i<MAX_METER+1; i++ )
{
if( !m_iNumSongsPlayedByMeter[i] )
continue;
pNumSongsPlayedByMeter->AppendChild( ssprintf("Meter%d",i), m_iNumSongsPlayedByMeter[i] );
}
}
{
XNode* pNumStagesPassedByGrade = pGeneralDataNode->AppendChild("NumStagesPassedByGrade");
FOREACH_Grade( g )
{
if( !m_iNumStagesPassedByGrade[g] )
continue;
pNumStagesPassedByGrade->AppendChild( GradeToString(g), m_iNumStagesPassedByGrade[g] );
//.........这里部分代码省略.........