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