mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-15 21:36:20 +00:00
Bug 659913 part.2 Implement AddObservers and RemoveObservers r=roc
This commit is contained in:
parent
5e271dcc08
commit
8e93a5852c
@ -193,6 +193,17 @@ public:
|
||||
static nsresult AddWeakObserver(nsIObserver* aObserver, const char* aPref);
|
||||
static nsresult RemoveObserver(nsIObserver* aObserver, const char* aPref);
|
||||
|
||||
/**
|
||||
* Adds/Removes two or more observers for the root pref branch.
|
||||
* Pass to aPrefs an array of const char* whose last item is NULL.
|
||||
*/
|
||||
static nsresult AddStrongObservers(nsIObserver* aObserver,
|
||||
const char** aPrefs);
|
||||
static nsresult AddWeakObservers(nsIObserver* aObserver,
|
||||
const char** aPrefs);
|
||||
static nsresult RemoveObservers(nsIObserver* aObserver,
|
||||
const char** aPrefs);
|
||||
|
||||
protected:
|
||||
nsresult NotifyServiceObservers(const char *aSubject);
|
||||
nsresult UseDefaultPrefFile();
|
||||
|
@ -1197,4 +1197,40 @@ Preferences::RemoveObserver(nsIObserver* aObserver,
|
||||
return sPreferences->mRootBranch->RemoveObserver(aPref, aObserver);
|
||||
}
|
||||
|
||||
// static
|
||||
nsresult
|
||||
Preferences::AddStrongObservers(nsIObserver* aObserver,
|
||||
const char** aPrefs)
|
||||
{
|
||||
for (PRUint32 i = 0; aPrefs[i]; i++) {
|
||||
nsresult rv = AddStrongObserver(aObserver, aPrefs[i]);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// static
|
||||
nsresult
|
||||
Preferences::AddWeakObservers(nsIObserver* aObserver,
|
||||
const char** aPrefs)
|
||||
{
|
||||
for (PRUint32 i = 0; aPrefs[i]; i++) {
|
||||
nsresult rv = AddWeakObserver(aObserver, aPrefs[i]);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// static
|
||||
nsresult
|
||||
Preferences::RemoveObservers(nsIObserver* aObserver,
|
||||
const char** aPrefs)
|
||||
{
|
||||
for (PRUint32 i = 0; aPrefs[i]; i++) {
|
||||
nsresult rv = RemoveObserver(aObserver, aPrefs[i]);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
} // namespace mozilla
|
||||
|
Loading…
x
Reference in New Issue
Block a user