1/* 2 * Copyright 2013, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Ingo Weinhold <ingo_weinhold@gmx.de> 7 */ 8 9 10#include <mime/AppMetaMimeCreator.h> 11 12#include <Directory.h> 13#include <Entry.h> 14 15 16namespace BPrivate { 17namespace Storage { 18namespace Mime { 19 20 21// #pragma mark - DatabaseLocker 22 23 24MimeEntryProcessor::DatabaseLocker::~DatabaseLocker() 25{ 26} 27 28 29// #pragma mark - MimeEntryProcessor 30 31 32MimeEntryProcessor::MimeEntryProcessor(Database* database, 33 DatabaseLocker* databaseLocker, int32 force) 34 : 35 fDatabase(database), 36 fDatabaseLocker(databaseLocker), 37 fForce(force) 38{ 39} 40 41 42MimeEntryProcessor::~MimeEntryProcessor() 43{ 44} 45 46 47status_t 48MimeEntryProcessor::DoRecursively(const entry_ref& entry) 49{ 50 bool entryIsDir = false; 51 status_t error = Do(entry, &entryIsDir); 52 if (error != B_OK) 53 return error; 54 55 if (entryIsDir) { 56 BDirectory directory; 57 error = directory.SetTo(&entry); 58 if (error != B_OK) 59 return error; 60 61 entry_ref childEntry; 62 while (directory.GetNextRef(&childEntry) == B_OK) 63 DoRecursively(childEntry); 64 } 65 66 return B_OK; 67} 68 69 70} // namespace Mime 71} // namespace Storage 72} // namespace BPrivate 73