xref: /haiku/src/add-ons/kernel/file_systems/userlandfs/server/UserlandFSServer.h (revision 2f1f4f54d64e2d0a04015de5c3788fabc1989aa0)
183812f67SIngo Weinhold // UserlandFSServer.h
283812f67SIngo Weinhold 
383812f67SIngo Weinhold #ifndef USERLAND_FS_SERVER_H
483812f67SIngo Weinhold #define USERLAND_FS_SERVER_H
583812f67SIngo Weinhold 
683812f67SIngo Weinhold #include <Application.h>
74ed322c6SIngo Weinhold #include <image.h>
883812f67SIngo Weinhold 
9ca6faf49SIngo Weinhold namespace UserlandFSUtil {
10ca6faf49SIngo Weinhold 	class RequestPort;
11ca6faf49SIngo Weinhold }
12ca6faf49SIngo Weinhold using UserlandFSUtil::RequestPort;
13ca6faf49SIngo Weinhold 
1483812f67SIngo Weinhold namespace UserlandFS {
1583812f67SIngo Weinhold 
165d3147f6SIngo Weinhold class FileSystem;
1783812f67SIngo Weinhold class RequestThread;
1883812f67SIngo Weinhold 
1983812f67SIngo Weinhold class UserlandFSServer : public BApplication {
2083812f67SIngo Weinhold public:
2183812f67SIngo Weinhold 								UserlandFSServer(const char* signature);
2283812f67SIngo Weinhold 	virtual						~UserlandFSServer();
2383812f67SIngo Weinhold 
24*2f1f4f54SIngo Weinhold 			status_t			Init(const char* fileSystem, port_id port);
2583812f67SIngo Weinhold 
2683812f67SIngo Weinhold 	static	RequestPort*		GetNotificationRequestPort();
275d3147f6SIngo Weinhold 	static	FileSystem*			GetFileSystem();
2883812f67SIngo Weinhold 
2983812f67SIngo Weinhold private:
30*2f1f4f54SIngo Weinhold 			status_t			_Announce(const char* fsName, port_id port);
314ed322c6SIngo Weinhold 
3283812f67SIngo Weinhold private:
3383812f67SIngo Weinhold 			image_id			fAddOnImage;
345d3147f6SIngo Weinhold 			FileSystem*			fFileSystem;
3583812f67SIngo Weinhold 			RequestPort*		fNotificationRequestPort;
3683812f67SIngo Weinhold 			RequestThread*		fRequestThreads;
3783812f67SIngo Weinhold };
3883812f67SIngo Weinhold 
3983812f67SIngo Weinhold }	// namespace UserlandFS
4083812f67SIngo Weinhold 
415d3147f6SIngo Weinhold using UserlandFS::FileSystem;
4283812f67SIngo Weinhold using UserlandFS::RequestThread;
4383812f67SIngo Weinhold using UserlandFS::UserlandFSServer;
4483812f67SIngo Weinhold 
4583812f67SIngo Weinhold #endif	// USERLAND_FS_SERVER_H
46