1/*
2 * Copyright 2017-2020, Andrew Lindesay <apl@lindesay.co.nz>.
3 * All rights reserved. Distributed under the terms of the MIT License.
4 */
5#ifndef SERVER_ICON_EXPORT_UPDATE_PROCESS_H
6#define SERVER_ICON_EXPORT_UPDATE_PROCESS_H
7
8
9#include <File.h>
10#include <Path.h>
11#include <String.h>
12#include <Url.h>
13
14#include "AbstractSingleFileServerProcess.h"
15#include "Model.h"
16
17
18class DumpExportPkg;
19
20
21class ServerIconExportUpdateProcess : public AbstractSingleFileServerProcess {
22public:
23
24								ServerIconExportUpdateProcess(
25									Model* model, uint32 serverProcessOptions);
26	virtual						~ServerIconExportUpdateProcess();
27
28			const char*			Name() const;
29			const char*			Description() const;
30
31	virtual status_t			ProcessLocalData();
32
33	virtual	status_t			GetLocalPath(BPath& path) const;
34	virtual	status_t			IfModifiedSinceHeaderValue(
35									BString& headerValue) const;
36
37
38	virtual	status_t			GetStandardMetaDataPath(BPath& path) const;
39	virtual	void				GetStandardMetaDataJsonPath(
40									BString& jsonPath) const;
41
42protected:
43	virtual	BString				UrlPathComponent();
44
45private:
46			void				_NotifyPackagesWithIconsInDepots() const;
47			void				_NotifyPackagesWithIconsInDepot(
48									const DepotInfoRef& depotInfo) const;
49
50private:
51			Model*				fModel;
52
53};
54
55#endif // SERVER_ICON_EXPORT_UPDATE_PROCESS_H
56