sbDeviceProgressListener.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_DEVICE_PROGRESS_LISTENER_H_
28 #define _SB_DEVICE_PROGRESS_LISTENER_H_
29 
30 //------------------------------------------------------------------------------
31 //------------------------------------------------------------------------------
32 //
33 // Device progress listener defs.
34 //
35 //------------------------------------------------------------------------------
36 //------------------------------------------------------------------------------
37 
43 //------------------------------------------------------------------------------
44 //
45 // Device progress listener imported services.
46 //
47 //------------------------------------------------------------------------------
48 
49 // Songbird imports.
50 #include <sbIJobProgress.h>
51 
52 // Mozilla imports.
53 #include <prmon.h>
54 
55 
56 //------------------------------------------------------------------------------
57 //
58 // Device progress listener classes.
59 //
60 //------------------------------------------------------------------------------
61 
62 // Used class declarations.
64 
71 {
72  //----------------------------------------------------------------------------
73  //
74  // Public interface.
75  //
76  //----------------------------------------------------------------------------
77 
78 public:
79 
80  //
81  // Implemented interfaces.
82  //
83 
85  NS_DECL_SBIJOBPROGRESSLISTENER
86 
87 
88  //
89  // Public services.
90  //
91 
103  static nsresult
104  New(sbDeviceProgressListener** aDeviceProgressListener,
105  PRMonitor* aCompleteNotifyMonitor = nsnull,
106  sbDeviceStatusHelper* aDeviceStatusHelper = nsnull);
107 
108 
113  PRBool IsComplete();
114 
115 
125  sbDeviceProgressListener(PRMonitor* aCompleteNotifyMonitor,
126  sbDeviceStatusHelper* aDeviceStatusHelper);
127 
128 
133  virtual ~sbDeviceProgressListener();
134 
135 
136  //----------------------------------------------------------------------------
137  //
138  // Private interface.
139  //
140  //----------------------------------------------------------------------------
141 
142 private:
143 
144  //
145  // mCompleteNotifyMonitor Monitor to notify upon job completion.
146  // mDeviceStatusHelper Helper to update device status.
147  // mIsComplete True if job has completed.
148  //
149 
150  PRMonitor* mCompleteNotifyMonitor;
151  sbDeviceStatusHelper* mDeviceStatusHelper;
152  PRInt32 mIsComplete;
153 };
154 
155 
156 #endif /* _SB_DEVICE_PROGRESS_LISTENER_H_ */
157 
NS_DECL_ISUPPORTS static NS_DECL_SBIJOBPROGRESSLISTENER nsresult New(sbDeviceProgressListener **aDeviceProgressListener, PRMonitor *aCompleteNotifyMonitor=nsnull, sbDeviceStatusHelper *aDeviceStatusHelper=nsnull)
sbDeviceProgressListener(PRMonitor *aCompleteNotifyMonitor, sbDeviceStatusHelper *aDeviceStatusHelper)
Implemented to receive notifications from sbIJobProgress interfaces.