1/*
2 * Copyright 2017-2018, Andrew Lindesay <apl@lindesay.co.nz>.
3 * All rights reserved. Distributed under the terms of the MIT License.
4 */
5
6
7#ifndef ABSTRACT_SINGLE_FILE_SERVER_PROCESS_H
8#define ABSTRACT_SINGLE_FILE_SERVER_PROCESS_H
9
10
11#include "AbstractServerProcess.h"
12
13
14class AbstractSingleFileServerProcess : public AbstractServerProcess {
15public:
16								AbstractSingleFileServerProcess(uint32 options);
17	virtual						~AbstractSingleFileServerProcess();
18
19	virtual	BString				LogReport();
20
21protected:
22	virtual status_t			RunInternal();
23
24	virtual status_t			ProcessLocalData() = 0;
25
26	virtual	BString				UrlPathComponent() = 0;
27
28	virtual	status_t			GetLocalPath(BPath& path) const = 0;
29
30	virtual	status_t			GetStandardMetaDataPath(BPath& path) const;
31
32protected:
33			double				fDownloadDurationSeconds;
34			double				fProcessLocalDataDurationSeconds;
35};
36
37#endif // ABSTRACT_SINGLE_FILE_SERVER_PROCESS_H