ProteoWizard
pwiz
utility
misc
IterationListener.hpp
Go to the documentation of this file.
1
//
2
// $Id$
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
static
std::string
no_message
;
44
45
struct
UpdateMessage
46
{
47
size_t
iterationIndex
;
48
size_t
iterationCount
;
// 0 == unknown
49
const
std::string&
message
;
50
51
UpdateMessage
(
size_t
index,
size_t
count,
const
std::string& message = no_message)
52
: iterationIndex(index), iterationCount(count), message(message)
53
{}
54
};
55
56
virtual
Status
update
(
const
UpdateMessage
& updateMessage) {
return
Status_Ok
;}
57
58
virtual
~IterationListener
(){}
59
};
60
61
typedef
boost::shared_ptr<IterationListener>
IterationListenerPtr
;
62
63
64
/// handles registration of IterationListeners and broadcast of update messages
65
class
PWIZ_API_DECL
IterationListenerRegistry
66
{
67
public
:
68
69
IterationListenerRegistry
();
70
void
addListener(
const
IterationListenerPtr
& listener,
size_t
iterationPeriod);
71
void
addListenerWithTimer(
const
IterationListenerPtr
& listener,
double
timePeriod);
// seconds
72
void
removeListener(
const
IterationListenerPtr
& listener);
73
74
IterationListener::Status
broadcastUpdateMessage(
75
const
IterationListener::UpdateMessage
& updateMessage)
const
;
76
77
private
:
78
class
Impl;
79
boost::shared_ptr<Impl>
impl_
;
80
IterationListenerRegistry
(
IterationListenerRegistry
&);
81
IterationListenerRegistry
& operator=(
IterationListenerRegistry
&);
82
};
83
84
85
}
// namespace util
86
}
// namespace pwiz
87
88
89
#endif // _ITERATIONLISTENER_HPP_
90
pwiz::util::IterationListener::update
virtual Status update(const UpdateMessage &updateMessage)
Definition:
IterationListener.hpp:56
pwiz::util::IterationListener::no_message
static std::string no_message
Definition:
IterationListener.hpp:43
pwiz::util::IterationListener::UpdateMessage
Definition:
IterationListener.hpp:45
pwiz
Definition:
ChromatogramList_Filter.hpp:36
pwiz::util::IterationListener::UpdateMessage::message
const std::string & message
Definition:
IterationListener.hpp:49
pwiz::util::IterationListener::UpdateMessage::UpdateMessage
UpdateMessage(size_t index, size_t count, const std::string &message=no_message)
Definition:
IterationListener.hpp:51
pwiz::util::IterationListener::UpdateMessage::iterationIndex
size_t iterationIndex
Definition:
IterationListener.hpp:47
pwiz::util::IterationListenerRegistry::impl_
boost::shared_ptr< Impl > impl_
Definition:
IterationListener.hpp:78
PWIZ_API_DECL
#define PWIZ_API_DECL
Definition:
Export.hpp:32
Export.hpp
pwiz::util::IterationListener::Status_Ok
@ Status_Ok
Definition:
IterationListener.hpp:42
pwiz::util::IterationListenerRegistry
handles registration of IterationListeners and broadcast of update messages
Definition:
IterationListener.hpp:65
pwiz::util::IterationListener::Status
Status
Definition:
IterationListener.hpp:42
pwiz::util::IterationListener::~IterationListener
virtual ~IterationListener()
Definition:
IterationListener.hpp:58
pwiz::util::IterationListener::UpdateMessage::iterationCount
size_t iterationCount
Definition:
IterationListener.hpp:48
Status_Ok
Status_Ok
Definition:
MSDataAnalyzer.hpp:164
pwiz::util::IterationListenerPtr
boost::shared_ptr< IterationListener > IterationListenerPtr
Definition:
IterationListener.hpp:61
pwiz::util::IterationListener
interface to be implemented by clients who want progress callbacks
Definition:
IterationListener.hpp:38
Generated by
1.8.17