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