xref: /haiku/src/apps/haikudepot/server/AbstractSingleFileServerProcess.h (revision e1c4049fed1047bdb957b0529e1921e97ef94770)
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 
14 class AbstractSingleFileServerProcess : public AbstractServerProcess {
15 public:
16 								AbstractSingleFileServerProcess(uint32 options);
17 	virtual						~AbstractSingleFileServerProcess();
18 
19 	virtual	BString				LogReport();
20 
21 protected:
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 
32 protected:
33 			double				fDownloadDurationSeconds;
34 			double				fProcessLocalDataDurationSeconds;
35 };
36 
37 #endif // ABSTRACT_SINGLE_FILE_SERVER_PROCESS_H