xref: /haiku/src/apps/haikudepot/server/ServerSettings.h (revision 19c15fec85fa585951ea15260aea52c9327171cb)
1*19c15fecSAndrew Lindesay /*
2*19c15fecSAndrew Lindesay  * Copyright 2017, Andrew Lindesay <apl@lindesay.co.nz>.
3*19c15fecSAndrew Lindesay  * All rights reserved. Distributed under the terms of the MIT License.
4*19c15fecSAndrew Lindesay  */
5*19c15fecSAndrew Lindesay 
6*19c15fecSAndrew Lindesay #ifndef SERVER_SETTINGS_H
7*19c15fecSAndrew Lindesay #define SERVER_SETTINGS_H
8*19c15fecSAndrew Lindesay 
9*19c15fecSAndrew Lindesay #include <File.h>
10*19c15fecSAndrew Lindesay #include <HttpHeaders.h>
11*19c15fecSAndrew Lindesay #include <Locker.h>
12*19c15fecSAndrew Lindesay #include <String.h>
13*19c15fecSAndrew Lindesay 
14*19c15fecSAndrew Lindesay 
15*19c15fecSAndrew Lindesay class ServerSettings {
16*19c15fecSAndrew Lindesay public:
17*19c15fecSAndrew Lindesay 		static status_t					SetBaseUrl(const BString& baseUrl);
18*19c15fecSAndrew Lindesay 		static const BString			GetUserAgent();
19*19c15fecSAndrew Lindesay 		static void						AugmentHeaders(BHttpHeaders& headers);
20*19c15fecSAndrew Lindesay 		static BString					CreateFullUrl(
21*19c15fecSAndrew Lindesay 											const BString urlPathComponents);
22*19c15fecSAndrew Lindesay 		static void						EnableUrlConnectionTraceLogging();
23*19c15fecSAndrew Lindesay 		static bool						UrlConnectionTraceLoggingEnabled();
24*19c15fecSAndrew Lindesay 
25*19c15fecSAndrew Lindesay private:
26*19c15fecSAndrew Lindesay 		static const BString			_GetUserAgentVersionString();
27*19c15fecSAndrew Lindesay 
28*19c15fecSAndrew Lindesay 		static BString					fBaseUrl;
29*19c15fecSAndrew Lindesay 		static BString					fUserAgent;
30*19c15fecSAndrew Lindesay 		static BLocker					fUserAgentLocker;
31*19c15fecSAndrew Lindesay 		static bool						fUrlConnectionTraceLogging;
32*19c15fecSAndrew Lindesay };
33*19c15fecSAndrew Lindesay 
34*19c15fecSAndrew Lindesay #endif // SERVER_SETTINGS_H
35