Rev 75 | Rev 162 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#include "../StdAfx.h"
#include "DownloadPackageList.h"
namespace PluginManager {
DownloadPackageList::DownloadPackageList(CPackages *p, CyStringList *servers)
{
InitializeComponent();
m_pPackages = p;
m_pServers = servers;
m_pCurrentServer = NULL;
m_iServerPos = 0;
}
void DownloadPackageList::NextServer()
{
if ( !m_pCurrentServer )
{
m_pCurrentServer = m_pServers->Head();
m_iServerPos = 1;
}
else
{
m_pCurrentServer = m_pCurrentServer->next;
++m_iServerPos;
}
// last server done
if ( !m_pCurrentServer )
{
Finished();
return;
}
this->label2->Text = Convert::ToString(m_iServerPos) + " / " + Convert::ToString(m_pServers->Count());
this->label3->Text = SystemStringFromCyString(m_pCurrentServer->str);
this->backgroundWorker1->RunWorkerAsync();
}
void DownloadPackageList::Finished()
{
Close();
}
void DownloadPackageList::ExtractWebData(String ^data)
{
cli::array<String ^> ^lines = data->Split('\n');
if ( lines )
{
for ( int i = 0; i < lines->Length; i++ )
m_pPackages->parseAvailablePackage(_S(lines[i]).remove(9).remove('\r'), m_pCurrentServer->str.ToString());
}
}
}