sbArticlesData.h
Go to the documentation of this file.
1 /*
2 //
3 // BEGIN SONGBIRD GPL
4 //
5 // This file is part of the Songbird web player.
6 //
7 // Copyright(c) 2005-2008 POTI, Inc.
8 // http://songbirdnest.com
9 //
10 // This file may be licensed under the terms of of the
11 // GNU General Public License Version 2 (the "GPL").
12 //
13 // Software distributed under the License is distributed
14 // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
15 // express or implied. See the GPL for the specific language
16 // governing rights and limitations.
17 //
18 // You should have received a copy of the GPL along with this
19 // program. If not, go to http://www.gnu.org/licenses/gpl.html
20 // or write to the Free Software Foundation, Inc.,
21 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 //
23 // END SONGBIRD GPL
24 //
25 */
26 
27 #ifndef __SB_ARTICLESDATA_H__
28 #define __SB_ARTICLESDATA_H__
29 
30 #include <nsAutoPtr.h>
31 #include <nsTArray.h>
32 #include <nsIObserver.h>
33 #include <nsStringGlue.h>
34 
36 {
38 public:
40 
41  nsresult Init();
42 
43  static nsresult RemoveArticles(const nsAString & aInput,
44  const nsAString & aLanguage,
45  nsAString &_retval);
46 
47  static nsresult EnsureLoaded();
48 
49 protected:
51 
52  nsresult LoadArticles();
53  nsresult UnloadArticles();
54 
55 private:
56  class sbArticle : public nsISupports {
57  public:
58  sbArticle(const nsAString &aPrefix,
59  const nsAString &aSuffix) :
60  mPrefix(aPrefix),
61  mSuffix(aSuffix) {}
62  virtual ~sbArticle() {}
64  nsString mPrefix;
65  nsString mSuffix;
66  };
67  class sbArticleLanguageData : public nsISupports {
68  public:
69  sbArticleLanguageData(const nsAString &aLanguage,
70  const nsTArray<nsRefPtr<sbArticle> > &aArticles) :
71  mLanguage(aLanguage),
72  mArticles(aArticles) {}
73  ~sbArticleLanguageData() {}
75  nsString mLanguage;
76  nsTArray<nsRefPtr<sbArticle> > mArticles;
77  };
78  static nsresult AddObserver();
79  static nsresult RemoveObserver();
80  nsresult ParsePattern(const nsAString &aPattern,
81  nsAString &aPrefix,
82  nsAString &aSuffix);
83 
84  nsresult _RemoveArticles(const nsAString & aInput,
85  const nsAString & aLanguage,
86  nsAString &_retval);
87 
88  nsresult RemoveArticle(const nsAString & aInput,
89  const sbArticle * aArticle,
90  nsAString &_retval);
91 
92  PRBool mArticlesLoaded;
93  nsTArray<nsRefPtr<sbArticleLanguageData> > mLanguages;
94 };
95 
97 {
98 public:
101 
103  NS_DECL_NSIOBSERVER
104 
105 private:
106 };
107 
108 #endif /* __SB_ARTICLESDATA_H__ */
static nsresult EnsureLoaded()
virtual ~sbArticlesDataObserver()
nsresult LoadArticles()
nsresult UnloadArticles()
static nsresult RemoveArticles(const nsAString &aInput, const nsAString &aLanguage, nsAString &_retval)