xref: /haiku/src/add-ons/kernel/file_systems/userlandfs/server/UserlandFSServer.h (revision fac733d2f6e7cff3ea88d217fa99134735654acb)
1*fac733d2SIngo Weinhold /*
2*fac733d2SIngo Weinhold  * Copyright 2001-2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3*fac733d2SIngo Weinhold  * Distributed under the terms of the MIT License.
4*fac733d2SIngo Weinhold  */
583812f67SIngo Weinhold #ifndef USERLAND_FS_SERVER_H
683812f67SIngo Weinhold #define USERLAND_FS_SERVER_H
783812f67SIngo Weinhold 
883812f67SIngo Weinhold #include <Application.h>
94ed322c6SIngo Weinhold #include <image.h>
1083812f67SIngo Weinhold 
11ca6faf49SIngo Weinhold namespace UserlandFSUtil {
12ca6faf49SIngo Weinhold 	class RequestPort;
13ca6faf49SIngo Weinhold }
14ca6faf49SIngo Weinhold using UserlandFSUtil::RequestPort;
15ca6faf49SIngo Weinhold 
1683812f67SIngo Weinhold namespace UserlandFS {
1783812f67SIngo Weinhold 
185d3147f6SIngo Weinhold class FileSystem;
1983812f67SIngo Weinhold class RequestThread;
2083812f67SIngo Weinhold 
2183812f67SIngo Weinhold class UserlandFSServer : public BApplication {
2283812f67SIngo Weinhold public:
2383812f67SIngo Weinhold 								UserlandFSServer(const char* signature);
2483812f67SIngo Weinhold 	virtual						~UserlandFSServer();
2583812f67SIngo Weinhold 
262f1f4f54SIngo Weinhold 			status_t			Init(const char* fileSystem, port_id port);
2783812f67SIngo Weinhold 
2883812f67SIngo Weinhold 	static	RequestPort*		GetNotificationRequestPort();
295d3147f6SIngo Weinhold 	static	FileSystem*			GetFileSystem();
3083812f67SIngo Weinhold 
3183812f67SIngo Weinhold private:
322f1f4f54SIngo Weinhold 			status_t			_Announce(const char* fsName, port_id port);
334ed322c6SIngo Weinhold 
3483812f67SIngo Weinhold private:
3583812f67SIngo Weinhold 			image_id			fAddOnImage;
365d3147f6SIngo Weinhold 			FileSystem*			fFileSystem;
3783812f67SIngo Weinhold 			RequestPort*		fNotificationRequestPort;
3883812f67SIngo Weinhold 			RequestThread*		fRequestThreads;
3983812f67SIngo Weinhold };
4083812f67SIngo Weinhold 
4183812f67SIngo Weinhold }	// namespace UserlandFS
4283812f67SIngo Weinhold 
435d3147f6SIngo Weinhold using UserlandFS::FileSystem;
4483812f67SIngo Weinhold using UserlandFS::RequestThread;
4583812f67SIngo Weinhold using UserlandFS::UserlandFSServer;
4683812f67SIngo Weinhold 
4783812f67SIngo Weinhold #endif	// USERLAND_FS_SERVER_H
48