Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
FilenameStrategy.h
1#pragma once
2
3#include <boost/shared_ptr.hpp>
4#include <boost/filesystem.hpp>
5
7{
8public:
9
10 static boost::shared_ptr<FilenameStrategy> getStrategy(const std::string& strPath,
11 int startIndex,
12 int maxIndex,
13 bool readLoop,
14 const std::vector<std::string>& files = std::vector<std::string>(),
15 bool appendFlag = false
16 );
17
18 virtual ~FilenameStrategy();
19
20 bool IsConnected() const;
21 virtual bool Connect();
22 bool Disconnect();
23
24 virtual bool canCache();
25
26 void play(bool play);
27 void jump(uint64_t index);
28
29 virtual std::string GetFileNameToUse(bool checkForExistence, uint64_t& index);
30
31 void SetReadLoop(bool readLoop);
32 static bool fileExists(const char *path);
33
34protected:
35 FilenameStrategy(const std::string& strPath,
36 int startIndex,
37 int maxIndex,
38 bool readLoop,
39 bool appendFlag);
40
41 FilenameStrategy(bool readLoop);
42
43 void incrementIndex();
44
47 bool mAppend;
48
49 std::string mDirName;
51
54
55private:
56 std::string GetFileNameForCurrentIndex(bool checkForExistence) const;
57
58 std::string mFileBaseName;
59 std::string mFileTailName;
60
61 bool mPlay;
63};
64
66{
67public:
69
70 bool Connect();
71 bool canCache() { return false; }
72
73 std::string GetFileNameToUse(bool checkForExistence, uint64_t& index);
74
75 friend class FilenameStrategy;
76
77protected:
78 BoostDirectoryStrategy(const std::string& strPath,
79 int startIndex,
80 int maxIndex,
81 bool readLoop);
82
83private:
84 std::vector<boost::filesystem::path> mFiles;
85};
86
88{
89public:
90 virtual ~ListStrategy();
91
92 bool Connect();
93 bool canCache() { return false; }
94
95 std::string GetFileNameToUse(bool checkForExistence, uint64_t& index);
96
97 friend class FilenameStrategy;
98
99protected:
100 ListStrategy(const std::vector<std::string>& files, const std::string& dirPath, bool readLoop);
101
102private:
103 std::vector<std::string> mFiles;
104 boost::filesystem::path mRootDir;
105};
Definition FilenameStrategy.h:66
BoostDirectoryStrategy(const std::string &strPath, int startIndex, int maxIndex, bool readLoop)
Definition FilenameStrategy.cpp:248
bool Connect()
Definition FilenameStrategy.cpp:258
virtual ~BoostDirectoryStrategy()
Definition FilenameStrategy.cpp:253
std::string GetFileNameToUse(bool checkForExistence, uint64_t &index)
Definition FilenameStrategy.cpp:296
std::vector< boost::filesystem::path > mFiles
Definition FilenameStrategy.h:84
bool canCache()
Definition FilenameStrategy.h:71
Definition FilenameStrategy.h:7
bool mIsConnected
Definition FilenameStrategy.h:45
bool mReadLoop
Definition FilenameStrategy.h:46
int mCurrentIndex
Definition FilenameStrategy.h:50
virtual std::string GetFileNameToUse(bool checkForExistence, uint64_t &index)
Definition FilenameStrategy.cpp:167
virtual bool canCache()
Definition FilenameStrategy.cpp:139
bool mAppend
Definition FilenameStrategy.h:47
int mStartIndex
Definition FilenameStrategy.h:52
std::string mFileTailName
Definition FilenameStrategy.h:59
bool mPlay
Definition FilenameStrategy.h:61
std::string mFileBaseName
Definition FilenameStrategy.h:58
short mWildCardLen
Definition FilenameStrategy.h:62
void SetReadLoop(bool readLoop)
Definition FilenameStrategy.cpp:238
FilenameStrategy(const std::string &strPath, int startIndex, int maxIndex, bool readLoop, bool appendFlag)
Definition FilenameStrategy.cpp:37
bool Disconnect()
Definition FilenameStrategy.cpp:133
std::string mDirName
Definition FilenameStrategy.h:49
void play(bool play)
Definition FilenameStrategy.cpp:144
std::string GetFileNameForCurrentIndex(bool checkForExistence) const
Definition FilenameStrategy.cpp:212
static bool fileExists(const char *path)
Definition FilenameStrategy.cpp:243
static boost::shared_ptr< FilenameStrategy > getStrategy(const std::string &strPath, int startIndex, int maxIndex, bool readLoop, const std::vector< std::string > &files=std::vector< std::string >(), bool appendFlag=false)
Definition FilenameStrategy.cpp:13
virtual ~FilenameStrategy()
Definition FilenameStrategy.cpp:68
virtual bool Connect()
Definition FilenameStrategy.cpp:78
void jump(uint64_t index)
Definition FilenameStrategy.cpp:157
bool IsConnected() const
Definition FilenameStrategy.cpp:73
void incrementIndex()
Definition FilenameStrategy.cpp:149
int mMaxIndex
Definition FilenameStrategy.h:53
Definition FilenameStrategy.h:88
ListStrategy(const std::vector< std::string > &files, const std::string &dirPath, bool readLoop)
Definition FilenameStrategy.cpp:348
std::vector< std::string > mFiles
Definition FilenameStrategy.h:103
bool Connect()
Definition FilenameStrategy.cpp:323
std::string GetFileNameToUse(bool checkForExistence, uint64_t &index)
Definition FilenameStrategy.cpp:328
bool canCache()
Definition FilenameStrategy.h:93
boost::filesystem::path mRootDir
Definition FilenameStrategy.h:104
virtual ~ListStrategy()
Definition FilenameStrategy.cpp:318