sbTemporaryFileService.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_TEMPORARY_FILE_SERVICE_H_
28 #define _SB_TEMPORARY_FILE_SERVICE_H_
29 
30 //------------------------------------------------------------------------------
31 //------------------------------------------------------------------------------
32 //
33 // Songbird temporary file service defs.
34 //
35 //------------------------------------------------------------------------------
36 //------------------------------------------------------------------------------
37 
43 //------------------------------------------------------------------------------
44 //
45 // Songbird temporary file service imported services.
46 //
47 //------------------------------------------------------------------------------
48 
49 // Songbird imports.
50 #include <sbITemporaryFileFactory.h>
51 #include <sbITemporaryFileService.h>
52 
53 // Mozilla imports.
54 #include <nsCOMPtr.h>
55 #include <nsIObserver.h>
56 #include <nsIObserverService.h>
57 
58 
59 //------------------------------------------------------------------------------
60 //
61 // Songbird temporary file service definitions.
62 //
63 //------------------------------------------------------------------------------
64 
65 //
66 // Songbird temporary file service XPCOM component definitions.
67 //
68 
69 #define SB_TEMPORARYFILESERVICE_CLASSNAME "sbTemporaryFileService"
70 #define SB_TEMPORARYFILESERVICE_DESCRIPTION "Songbird Temporary File Service"
71 #define SB_TEMPORARYFILESERVICE_CID \
72 { \
73  0xa73256d2, \
74  0x1dd1, \
75  0x11b2, \
76  { 0x9f, 0xaa, 0xb9, 0x70, 0x98, 0x34, 0x17, 0x4c } \
77 }
78 
79 
80 //
81 // Songbird temporary file service configuration.
82 //
83 // SB_TEMPORARY_FILE_SERVICE_DIR_NAME
84 // Name of temporary file service root directory.
85 //
86 
87 #define SB_TEMPORARY_FILE_SERVICE_ROOT_DIR_NAME "sbTemporaryFileService"
88 
89 
90 //------------------------------------------------------------------------------
91 //
92 // Songbird temporary file service classes.
93 //
94 //------------------------------------------------------------------------------
95 
101  public nsIObserver
102 {
103  //----------------------------------------------------------------------------
104  //
105  // Public interface.
106  //
107  //----------------------------------------------------------------------------
108 
109 public:
110 
111  //
112  // Implemented interfaces.
113  //
114 
116  NS_DECL_SBITEMPORARYFILESERVICE
117  NS_DECL_NSIOBSERVER
118 
119 
120  //
121  // Public services.
122  //
123 
128 
132  virtual ~sbTemporaryFileService();
133 
137  nsresult Initialize();
138 
142  void Finalize();
143 
144 
145  //----------------------------------------------------------------------------
146  //
147  // Private interface.
148  //
149  //----------------------------------------------------------------------------
150 
151 private:
152 
153  //
154  // mInitialized True if initialized.
155  // mRootTemporaryFileFactory Root temporary file factory.
156  // mObserverService Observer service.
157  // mProfileAvailable If true, user profile is available.
158  //
159 
160  PRBool mInitialized;
161  nsCOMPtr<sbITemporaryFileFactory>
162  mRootTemporaryFileFactory;
163  nsCOMPtr<nsIObserverService> mObserverService;
164  PRBool mProfileAvailable;
165 };
166 
167 
168 #endif // _SB_TEMPORARY_FILE_SERVICE_H_
169 
NS_DECL_ISUPPORTS NS_DECL_SBITEMPORARYFILESERVICE NS_DECL_NSIOBSERVER sbTemporaryFileService()