/*
* Copyright (C) 2005-2013 Team XBMC
- * http://www.xbmc.org
+ * http://xbmc.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
class CBackgroundInfoLoader : public IRunnable
{
public:
- CBackgroundInfoLoader(int nThreads=-1);
+ CBackgroundInfoLoader();
virtual ~CBackgroundInfoLoader();
void Load(CFileItemList& items);
void SetObserver(IBackgroundLoaderObserver* pObserver);
void SetProgressCallback(IProgressCallback* pCallback);
virtual bool LoadItem(CFileItem* pItem) { return false; };
+ virtual bool LoadItemCached(CFileItem* pItem) { return false; };
+ virtual bool LoadItemLookup(CFileItem* pItem) { return false; };
- void StopThread(); // will actually stop all worker threads.
+ void StopThread(); // will actually stop the loader thread.
void StopAsync(); // will ask loader to stop as soon as possible, but not block
- void SetNumOfWorkers(int nThreads); // -1 means auto compute num of required threads
-
protected:
virtual void OnLoaderStart() {};
virtual void OnLoaderFinish() {};
std::vector<CFileItemPtr> m_vecItems; // FileItemList would delete the items and we only want to keep a reference.
CCriticalSection m_lock;
- bool m_bStartCalled;
+ volatile bool m_bIsLoading;
volatile bool m_bStop;
- int m_nRequestedThreads;
- int m_nActiveThreads;
+ CThread *m_thread;
IBackgroundLoaderObserver* m_pObserver;
IProgressCallback* m_pProgressCallback;
-
- std::vector<CThread *> m_workers;
};