diff -r 000000000000 -r 6474c204b198 xpcom/ds/nsHashPropertyBag.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xpcom/ds/nsHashPropertyBag.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef nsHashPropertyBag_h___ +#define nsHashPropertyBag_h___ + +#include "nsIVariant.h" +#include "nsIWritablePropertyBag.h" +#include "nsIWritablePropertyBag2.h" +#include "nsInterfaceHashtable.h" + +class nsHashPropertyBag : public nsIWritablePropertyBag + , public nsIWritablePropertyBag2 +{ +public: + nsHashPropertyBag() { } + virtual ~nsHashPropertyBag() {} + + NS_DECL_THREADSAFE_ISUPPORTS + + NS_DECL_NSIPROPERTYBAG + + NS_DECL_NSIPROPERTYBAG2 + + NS_DECL_NSIWRITABLEPROPERTYBAG + + NS_DECL_NSIWRITABLEPROPERTYBAG2 + +protected: + // a hash table of string -> nsIVariant + nsInterfaceHashtable mPropertyHash; +}; + +#undef IMETHOD_VISIBILITY +#define IMETHOD_VISIBILITY NS_VISIBILITY_HIDDEN + +// Note: NS_NewHashPropertyBag returns a HPB that +// uses a non-thread-safe internal hash +extern "C" nsresult +NS_NewHashPropertyBag(nsIWritablePropertyBag* *_retval); + +#endif /* nsHashPropertyBag_h___ */