1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
/* Copyright (c) MediaArea.net SARL. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license that can
* be found in the License.html file in the root of the source tree.
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
// Watch Folder
//
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//---------------------------------------------------------------------------
#ifndef WATCHFOLDERH
#define WATCHFOLDERH
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include <string>
#include <vector>
#include <map>
#include <ZenLib/Thread.h>
#include <ZenLib/CriticalSection.h>
//---------------------------------------------------------------------------
namespace MediaConch {
//***************************************************************************
// Class WatchFolderFile
//***************************************************************************
class Core;
class WatchFolderFile
{
public:
WatchFolderFile();
~WatchFolderFile();
enum WatchFolderFileState
{
WFFS_NOT_READY,
WFFS_ANALYZING,
WFFS_DONE,
};
std::string name;
std::string time;
std::string report_file;
long file_id;
WatchFolderFileState state;
};
//***************************************************************************
// Class WatchFolder
//***************************************************************************
class WatchFolder : public ZenLib::Thread
{
public:
WatchFolder(Core* c, long user);
~WatchFolder();
void Entry();
void stop();
void set_waiting_time(size_t t);
void set_recursive(bool);
std::string folder;
std::string folder_reports;
std::vector<std::string> plugins;
std::vector<std::string> policies;
std::vector<std::pair<std::string,std::string> > options;
long user;
private:
WatchFolder(const WatchFolder&);
WatchFolder& operator=(const WatchFolder&);
int ask_report(WatchFolderFile *wffile);
Core *core;
std::map<std::string, WatchFolderFile*> files;
size_t waiting_time;
bool recursive;
bool end;
bool is_watching;
};
}
#endif // !WATCHFOLDERS_MANAGERH
|