// // Copyright 2011 The Android Open Source Project // #ifndef MOCKFILEFINDER_H #define MOCKFILEFINDER_H #include <utils/Vector.h> #include <utils/KeyedVector.h> #include <utils/String8.h> #include "DirectoryWalker.h" using namespace android; class MockFileFinder : public FileFinder { public: MockFileFinder (KeyedVector<String8, KeyedVector<String8,time_t> >& files) : mFiles(files) { // Nothing left to do }; /** * findFiles implementation for the abstraction. * PRECONDITIONS: * No checking is done, so there MUST be an entry in mFiles with * path matching basePath. * * POSTCONDITIONS: * fileStore is filled with a copy of the data in mFiles corresponding * to the basePath. */ virtual bool findFiles(String8 basePath, Vector<String8>& extensions, KeyedVector<String8,time_t>& fileStore, DirectoryWalker* dw) { const KeyedVector<String8,time_t>* payload(&mFiles.valueFor(basePath)); // Since KeyedVector doesn't implement swap // (who doesn't use swap??) we loop and add one at a time. for (size_t i = 0; i < payload->size(); ++i) { fileStore.add(payload->keyAt(i),payload->valueAt(i)); } return true; } private: // Virtual mapping between "directories" and the "files" contained // in them KeyedVector<String8, KeyedVector<String8,time_t> > mFiles; }; #endif // MOCKFILEFINDER_H