Subversion Repositories spk

Rev

Rev 162 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "../StdAfx.h"
#include "DownloadPackageList.h"

namespace PluginManager {

DownloadPackageList::DownloadPackageList(CPackages *p, Utils::WStringList *servers)
{
        InitializeComponent();

        m_pPackages = p;
        m_pServers = servers;
        _pCurrentServer = NULL;
        m_iServerPos = -1;
}

void DownloadPackageList::NextServer()
{
        if(m_iServerPos == -1)
        {
                m_iServerPos = 0;
                _pCurrentServer = &m_pServers->get(m_iServerPos)->str;
        }
        else
        {
                ++m_iServerPos;
                if (static_cast<size_t>(m_iServerPos) >= m_pServers->size())
                {
                        m_iServerPos = -1;
                        _pCurrentServer = NULL;
                }
                else
                        _pCurrentServer = &m_pServers->get(m_iServerPos)->str;
        }

        // last server done
        if (!_pCurrentServer)
        {
                Finished();
                return;
        }

        this->label2->Text = Convert::ToString(m_iServerPos) + " / " + Convert::ToString(m_pServers->size());
        this->label3->Text = _US(*_pCurrentServer);

        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(_WS(lines[i]).remove(9).remove('\r'), *_pCurrentServer);
        }
}


}