1/*
2 * Copyright 2015, Rene Gollent, rene@gollent.com.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef TEAM_SIGNAL_SETTINGS_H
6#define TEAM_SIGNAL_SETTINGS_H
7
8#include <Message.h>
9
10#include "SignalDispositionTypes.h"
11
12
13class TeamSignalSettings {
14public:
15								TeamSignalSettings();
16	virtual						~TeamSignalSettings();
17
18			TeamSignalSettings&
19								operator=(
20									const TeamSignalSettings& other);
21									// throws std::bad_alloc;
22
23			const char*			ID() const;
24			status_t			SetTo(const BMessage& archive);
25			status_t			WriteTo(BMessage& archive) const;
26			void				Unset();
27
28			void				SetDefaultSignalDisposition(int32 disposition);
29			int32				DefaultSignalDisposition() const;
30
31			int32				CountCustomSignalDispositions() const;
32			status_t			AddCustomSignalDisposition(int32 signal,
33									int32 disposition);
34			status_t			RemoveCustomSignalDispositionAt(int32 index);
35			status_t			GetCustomSignalDispositionAt(int32 index,
36									int32& signal, int32& disposition) const;
37
38	virtual	TeamSignalSettings*
39								Clone() const;
40
41private:
42	BMessage					fValues;
43};
44
45
46#endif	// TEAM_SIGNAL_SETTINGS_H
47