xref: /haiku/src/apps/haikudepot/server/ServerReferenceDataUpdateProcess.h (revision 89b16bb4d245c3a6e55e0d8f3502324e6f31bcb4)
1f85e0300SAndrew Lindesay /*
2f85e0300SAndrew Lindesay  * Copyright 2019, Andrew Lindesay <apl@lindesay.co.nz>.
3f85e0300SAndrew Lindesay  * All rights reserved. Distributed under the terms of the MIT License.
4f85e0300SAndrew Lindesay  */
5f85e0300SAndrew Lindesay #ifndef SERVER_REFERENCE_DATA_UPDATE_PROCESS_H
6f85e0300SAndrew Lindesay #define SERVER_REFERENCE_DATA_UPDATE_PROCESS_H
7f85e0300SAndrew Lindesay 
8f85e0300SAndrew Lindesay 
9f85e0300SAndrew Lindesay #include "AbstractSingleFileServerProcess.h"
10f85e0300SAndrew Lindesay 
11f85e0300SAndrew Lindesay #include <File.h>
12f85e0300SAndrew Lindesay #include <Path.h>
13f85e0300SAndrew Lindesay #include <String.h>
14f85e0300SAndrew Lindesay #include <Url.h>
15f85e0300SAndrew Lindesay 
16f85e0300SAndrew Lindesay #include "Model.h"
17f85e0300SAndrew Lindesay #include "PackageInfo.h"
18f85e0300SAndrew Lindesay 
19f85e0300SAndrew Lindesay 
20f85e0300SAndrew Lindesay #undef B_TRANSLATION_CONTEXT
21f85e0300SAndrew Lindesay #define B_TRANSLATION_CONTEXT "ServerReferenceDataUpdateProcess"
22f85e0300SAndrew Lindesay 
23f85e0300SAndrew Lindesay class DumpExportReference;
24f85e0300SAndrew Lindesay 
25f85e0300SAndrew Lindesay class ServerReferenceDataUpdateProcess : public AbstractSingleFileServerProcess
26f85e0300SAndrew Lindesay {
27f85e0300SAndrew Lindesay public:
28f85e0300SAndrew Lindesay 
29f85e0300SAndrew Lindesay 								ServerReferenceDataUpdateProcess(
30f85e0300SAndrew Lindesay 									Model* model, uint32 serverProcessOptions);
31f85e0300SAndrew Lindesay 	virtual						~ServerReferenceDataUpdateProcess();
32f85e0300SAndrew Lindesay 
33f85e0300SAndrew Lindesay 			const char*			Name() const;
34f85e0300SAndrew Lindesay 			const char*			Description() const;
35f85e0300SAndrew Lindesay 
36f85e0300SAndrew Lindesay protected:
37f85e0300SAndrew Lindesay 			status_t			GetStandardMetaDataPath(BPath& path) const;
38f85e0300SAndrew Lindesay 			void				GetStandardMetaDataJsonPath(
39f85e0300SAndrew Lindesay 									BString& jsonPath) const;
40f85e0300SAndrew Lindesay 
41f85e0300SAndrew Lindesay 			BString				UrlPathComponent();
42f85e0300SAndrew Lindesay 			status_t			ProcessLocalData();
43f85e0300SAndrew Lindesay 			status_t			GetLocalPath(BPath& path) const;
44f85e0300SAndrew Lindesay 
45f85e0300SAndrew Lindesay private:
46f85e0300SAndrew Lindesay 			status_t			_ProcessData(DumpExportReference* data);
47f85e0300SAndrew Lindesay 			status_t			_ProcessNaturalLanguages(
48f85e0300SAndrew Lindesay 									DumpExportReference* data);
49*89b16bb4SAndrew Lindesay 			status_t			_ProcessPkgCategories(
50*89b16bb4SAndrew Lindesay 									DumpExportReference* data);
51f85e0300SAndrew Lindesay 
52f85e0300SAndrew Lindesay private:
53f85e0300SAndrew Lindesay 			Model*				fModel;
54f85e0300SAndrew Lindesay 
55f85e0300SAndrew Lindesay };
56f85e0300SAndrew Lindesay 
57f85e0300SAndrew Lindesay #endif // SERVER_REFERENCE_DATA_UPDATE_PROCESS_H
58