ProteoWizard
Main Page
Namespaces
Classes
Files
File List
File Members
pwiz
utility
misc
IterationListener.hpp
Go to the documentation of this file.
1
//
2
// $Id: IterationListener.hpp 2626 2011-04-12 15:18:16Z chambm $
3
//
4
//
5
// Original author: Darren Kessner <darren@proteowizard.org>
6
//
7
// Copyright 2008 Spielberg Family Center for Applied Proteomics
8
// Cedars Sinai Medical Center, Los Angeles, California 90048
9
//
10
// Licensed under the Apache License, Version 2.0 (the "License");
11
// you may not use this file except in compliance with the License.
12
// You may obtain a copy of the License at
13
//
14
// http://www.apache.org/licenses/LICENSE-2.0
15
//
16
// Unless required by applicable law or agreed to in writing, software
17
// distributed under the License is distributed on an "AS IS" BASIS,
18
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
// See the License for the specific language governing permissions and
20
// limitations under the License.
21
//
22
23
24
#ifndef _ITERATIONLISTENER_HPP_
25
#define _ITERATIONLISTENER_HPP_
26
27
28
#include "
pwiz/utility/misc/Export.hpp
"
29
#include "boost/shared_ptr.hpp"
30
#include <string>
31
32
33
namespace
pwiz {
34
namespace
util {
35
36
37
/// interface to be implemented by clients who want progress callbacks
38
class
PWIZ_API_DECL
IterationListener
39
{
40
public
:
41
42
enum
Status
{
Status_Ok
, Status_Cancel};
43
44
struct
UpdateMessage
45
{
46
size_t
iterationIndex
;
47
size_t
iterationCount
;
// 0 == unknown
48
const
std::string&
message
;
49
50
UpdateMessage
(
size_t
index,
size_t
count,
const
std::string& message = std::string())
51
: iterationIndex(index), iterationCount(count), message(message)
52
{}
53
};
54
55
virtual
Status
update
(
const
UpdateMessage
& updateMessage) {
return
Status_Ok
;}
56
57
virtual
~IterationListener
(){}
58
};
59
60
typedef
boost::shared_ptr<IterationListener>
IterationListenerPtr
;
61
62
63
/// handles registration of IterationListeners and broadcast of update messages
64
class
PWIZ_API_DECL
IterationListenerRegistry
65
{
66
public
:
67
68
IterationListenerRegistry
();
69
void
addListener(
const
IterationListenerPtr
& listener,
size_t
iterationPeriod);
70
void
addListenerWithTimer(
const
IterationListenerPtr
& listener,
double
timePeriod);
// seconds
71
void
removeListener(
const
IterationListenerPtr
& listener);
72
73
IterationListener::Status
broadcastUpdateMessage(
74
const
IterationListener::UpdateMessage
& updateMessage)
const
;
75
76
private
:
77
class
Impl;
78
boost::shared_ptr<Impl>
impl_
;
79
IterationListenerRegistry
(
IterationListenerRegistry
&);
80
IterationListenerRegistry
& operator=(
IterationListenerRegistry
&);
81
};
82
83
84
}
// namespace util
85
}
// namespace pwiz
86
87
88
#endif // _ITERATIONLISTENER_HPP_
89
Generated on Mon Nov 26 2012 18:05:49 for ProteoWizard by
1.8.1.1