xref: /haiku/src/servers/media/AppManager.h (revision 52a380120846174213ccce9c4aab0dda17c72083)
1*52a38012Sejakowatz 
2*52a38012Sejakowatz #include <List.h>
3*52a38012Sejakowatz #include <Locker.h>
4*52a38012Sejakowatz 
5*52a38012Sejakowatz class AppManager
6*52a38012Sejakowatz {
7*52a38012Sejakowatz public:
8*52a38012Sejakowatz 	AppManager();
9*52a38012Sejakowatz 	~AppManager();
10*52a38012Sejakowatz 	bool HasTeam(team_id);
11*52a38012Sejakowatz 	status_t RegisterTeam(team_id, BMessenger);
12*52a38012Sejakowatz 	status_t UnregisterTeam(team_id);
13*52a38012Sejakowatz 	void BroadcastMessage(BMessage *msg, bigtime_t timeout);
14*52a38012Sejakowatz 	void HandleBroadcastError(BMessage *, BMessenger &, team_id team, bigtime_t timeout);
15*52a38012Sejakowatz 	status_t LoadState();
16*52a38012Sejakowatz 	status_t SaveState();
17*52a38012Sejakowatz private:
18*52a38012Sejakowatz 	struct ListItem {
19*52a38012Sejakowatz 		team_id team;
20*52a38012Sejakowatz 		BMessenger messenger;
21*52a38012Sejakowatz 	};
22*52a38012Sejakowatz 	BList 	mList;
23*52a38012Sejakowatz 	BLocker	mLocker;
24*52a38012Sejakowatz };
25