1// NetFSServerRoster.h
2
3#ifndef NETFS_SERVER_ROSTER_H
4#define NETFS_SERVER_ROSTER_H
5
6#include <Messenger.h>
7#include <OS.h>
8
9class NetFSServerRoster {
10public:
11								NetFSServerRoster();
12								~NetFSServerRoster();
13
14			// server
15			bool				IsServerRunning();
16			status_t			LaunchServer();
17			status_t			TerminateServer(bool force = false,
18									bigtime_t timeout = B_INFINITE_TIMEOUT);
19			status_t			SaveServerSettings();
20
21			// users
22			status_t			AddUser(const char* user, const char* password);
23			status_t			RemoveUser(const char* user);
24			status_t			GetUsers(BMessage* users);
25			status_t			GetUserStatistics(const char* user,
26									BMessage* statistics);
27
28			// shares
29			status_t			AddShare(const char* share, const char* path);
30			status_t			RemoveShare(const char* share);
31			status_t			GetShares(BMessage* shares);
32			status_t			GetShareUsers(const char* share,
33									BMessage* users);
34			status_t			GetShareStatistics(const char* share,
35									BMessage* statistics);
36
37			// permissions
38			status_t			SetUserPermissions(const char* share,
39									const char* user, uint32 permissions);
40			status_t			GetUserPermissions(const char* share,
41									const char* user, uint32* permissions);
42
43private:
44			status_t			_InitMessenger();
45			status_t			_SendRequest(BMessage* request,
46									BMessage* reply = NULL);
47
48private:
49			BMessenger			fServerMessenger;
50};
51
52#endif	// NETFS_SERVER_ROSTER_H
53