Subversion Repositories spk

Rev

Rev 1 | Rev 161 | 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(CyStringFromSystemString(lines[i]).Remove(9).Remove('\r'), m_pCurrentServer->str);
        }
}


}