From 5762e1da785fcff4f8d04cd3802caf781e98e37c Mon Sep 17 00:00:00 2001 From: "alecf%netscape.com" Date: Tue, 7 Mar 2000 01:14:22 +0000 Subject: [PATCH] first cut at new prefservice. forward the root prefbranch to an internal member variable not part of build git-svn-id: svn://10.0.0.236/trunk@62281 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/modules/libpref/src/nsPrefService.cpp | 86 +++++++++++++++++++ mozilla/modules/libpref/src/nsPrefService.h | 43 ++++++++++ 2 files changed, 129 insertions(+) create mode 100644 mozilla/modules/libpref/src/nsPrefService.cpp create mode 100644 mozilla/modules/libpref/src/nsPrefService.h diff --git a/mozilla/modules/libpref/src/nsPrefService.cpp b/mozilla/modules/libpref/src/nsPrefService.cpp new file mode 100644 index 00000000000..08bfc9e7be1 --- /dev/null +++ b/mozilla/modules/libpref/src/nsPrefService.cpp @@ -0,0 +1,86 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * Alec Flett + */ + +#include "nsPrefService.h" +#include "nsPrefBranch.h" + + +nsPrefService::nsPrefService() +{ + nsPrefBranch *rootBranch = new nsPrefBranch(""); + + mRootBranch = (nsIPrefBranch*)rootBranch; +} + +nsPrefService::~nsPrefService() +{ + + +} + +NS_IMPL_ISUPPORTS2(nsPrefService, nsIPrefService, nsIPrefBranch); + +NS_IMETHODIMP +nsPrefService::GetBranch(const char *root, nsIPrefBranch ** aResult) +{ + nsresult rv; + + // XXX todo - cache this stuff and allow consumers to share + // branches (hold weak references I think) + nsPrefBranch* prefBranch = new nsPrefBranch(root); + + rv = prefBranch->QueryInterface(NS_GET_IID(nsIPrefBranch), + (void **)aResult); + + return rv; +} + +NS_IMETHODIMP +nsPrefService::StartUp(void) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +nsPrefService::ReadUserPrefs(void) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +nsPrefService::ReadUserPrefsFrom(nsIFileSpec *) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +nsPrefService::ShutDown(void) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + +NS_IMETHODIMP +nsPrefService::ReadUserJSFile(nsIFileSpec *) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} diff --git a/mozilla/modules/libpref/src/nsPrefService.h b/mozilla/modules/libpref/src/nsPrefService.h new file mode 100644 index 00000000000..c87152dc32c --- /dev/null +++ b/mozilla/modules/libpref/src/nsPrefService.h @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * Alec Flett + */ + +#include "nsIPrefService.h" +#include "nsIPrefBranch.h" +#include "nsCOMPtr.h" + +class nsPrefService : public nsIPrefService, + public nsIPrefBranch +{ +public: + nsPrefService(); + virtual ~nsPrefService(); + + NS_DECL_ISUPPORTS + NS_DECL_NSIPREFSERVICE + NS_FORWARD_NSIPREFBRANCH(mRootBranch->) + +private: + nsCOMPtr mRootBranch; + +}; +