xref: /haiku/src/servers/media/AppManager.h (revision 1299bfb29f6155daaa6117fec04f9054e0dc24b6)
1*1299bfb2Sbeveloper /*
2*1299bfb2Sbeveloper  * Copyright 2002, Marcus Overhagen. All rights reserved.
3*1299bfb2Sbeveloper  * Distributed under the terms of the MIT License.
4*1299bfb2Sbeveloper  */
552a38012Sejakowatz 
652a38012Sejakowatz #include <List.h>
752a38012Sejakowatz #include <Locker.h>
852a38012Sejakowatz 
952a38012Sejakowatz class AppManager
1052a38012Sejakowatz {
1152a38012Sejakowatz public:
1252a38012Sejakowatz 	AppManager();
1352a38012Sejakowatz 	~AppManager();
1452a38012Sejakowatz 	bool HasTeam(team_id);
1552a38012Sejakowatz 	status_t RegisterTeam(team_id, BMessenger);
1652a38012Sejakowatz 	status_t UnregisterTeam(team_id);
1752a38012Sejakowatz 	void BroadcastMessage(BMessage *msg, bigtime_t timeout);
1852a38012Sejakowatz 	void HandleBroadcastError(BMessage *, BMessenger &, team_id team, bigtime_t timeout);
1952a38012Sejakowatz 	status_t LoadState();
2052a38012Sejakowatz 	status_t SaveState();
2152a38012Sejakowatz private:
2252a38012Sejakowatz 	struct ListItem {
2352a38012Sejakowatz 		team_id team;
2452a38012Sejakowatz 		BMessenger messenger;
2552a38012Sejakowatz 	};
2652a38012Sejakowatz 	BList 	mList;
2752a38012Sejakowatz 	BLocker	mLocker;
2852a38012Sejakowatz };
29