sbServiceManager.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set sw=2 :miv */
3 /*
4  *=BEGIN SONGBIRD GPL
5  *
6  * This file is part of the Songbird web player.
7  *
8  * Copyright(c) 2005-2010 POTI, Inc.
9  * http://www.songbirdnest.com
10  *
11  * This file may be licensed under the terms of of the
12  * GNU General Public License Version 2 (the ``GPL'').
13  *
14  * Software distributed under the License is distributed
15  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
16  * express or implied. See the GPL for the specific language
17  * governing rights and limitations.
18  *
19  * You should have received a copy of the GPL along with this
20  * program. If not, go to http://www.gnu.org/licenses/gpl.html
21  * or write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23  *
24  *=END SONGBIRD GPL
25  */
26 
27 #ifndef SB_SERVICE_MANAGER_H_
28 #define SB_SERVICE_MANAGER_H_
29 
30 //------------------------------------------------------------------------------
31 //------------------------------------------------------------------------------
32 //
33 // Songbird service manager defs.
34 //
35 //------------------------------------------------------------------------------
36 //------------------------------------------------------------------------------
37 
43 //------------------------------------------------------------------------------
44 //
45 // Songbird service manager imported services.
46 //
47 //------------------------------------------------------------------------------
48 
49 // Songbird imports.
50 #include <sbIServiceManager.h>
51 
52 // Mozilla imports.
53 #include <nsDataHashtable.h>
54 #include <nsIObserverService.h>
55 
56 
57 //------------------------------------------------------------------------------
58 //
59 // Songbird service manager definitions.
60 //
61 //------------------------------------------------------------------------------
62 
63 //
64 // Songbird service manager XPCOM component definitions.
65 //
66 
67 #define SB_SERVICE_MANAGER_CLASSNAME "sbServiceManager"
68 #define SB_SERVICE_MANAGER_DESCRIPTION "Songbird Service Manager"
69 #define SB_SERVICE_MANAGER_CID \
70 { \
71  0xf162173e, \
72  0x1dd1, \
73  0x11b2, \
74  { 0xac, 0x46, 0x96, 0x10, 0x81, 0x18, 0x91, 0x9e } \
75 }
76 
77 
78 //------------------------------------------------------------------------------
79 //
80 // Songbird service manager classes.
81 //
82 //------------------------------------------------------------------------------
83 
89 {
90  //----------------------------------------------------------------------------
91  //
92  // Public interface.
93  //
94  //----------------------------------------------------------------------------
95 
96 public:
97 
98  //
99  // Implemented interfaces.
100  //
101 
103  NS_DECL_SBISERVICEMANAGER
104 
105 
106  //
107  // Public services.
108  //
109 
114 
118  virtual ~sbServiceManager();
119 
123  nsresult Initialize();
124 
125 
126  //----------------------------------------------------------------------------
127  //
128  // Private interface.
129  //
130  //----------------------------------------------------------------------------
131 
132 private:
133 
134  //
135  // mInitialized True if initialized.
136  // mReadyServiceTable Table of ready services.
137  // mObserverService Observer service.
138  //
139 
140  PRBool mInitialized;
141  nsDataHashtableMT<nsStringHashKey, PRBool>
142  mReadyServiceTable;
143  nsCOMPtr<nsIObserverService> mObserverService;
144 };
145 
146 #endif // SB_SERVICE_MANAGER_H_
147 
NS_DECL_ISUPPORTS NS_DECL_SBISERVICEMANAGER sbServiceManager()