Equalizer  2.1.0
Parallel Rendering Framework
statisticSampler.h
1 
2 /* Copyright (c) 2009-2016, Stefan Eilemann <eile@equalizergraphics.com>
3  * Daniel Nachbaur <danielnachbaur@gmail.com>
4  *
5  * This library is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU Lesser General Public License version 2.1 as published
7  * by the Free Software Foundation.
8  *
9  * This library is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12  * details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this library; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #ifndef EQ_STATISTICSAMPLER_H
20 #define EQ_STATISTICSAMPLER_H
21 
22 #include <eq/fabric/statistic.h> // member
23 #include <eq/types.h>
24 
25 namespace eq
26 {
34 template <typename Owner>
36 {
37 public:
46  StatisticSampler(const Statistic::Type type, Owner* owner,
47  const uint32_t frameNumber = LB_UNDEFINED_UINT32)
48  : _owner(owner)
49  {
50  LBASSERT(owner);
51  LBASSERT(owner->getID() != 0);
52  LBASSERT(owner->getSerial() != CO_INSTANCE_INVALID);
53  statistic.type = type;
54  statistic.frameNumber = frameNumber;
55  statistic.resourceName[0] = '\0';
56  statistic.startTime = 0;
57  statistic.endTime = 0;
58 
59  if (statistic.frameNumber == LB_UNDEFINED_UINT32)
60  statistic.frameNumber = owner->getCurrentFrame();
61  }
62 
65  {
66  LBASSERTINFO(statistic.startTime <= statistic.endTime, statistic);
67  }
68 
69  Statistic statistic;
70 
71 protected:
72  Owner* const _owner;
73 };
74 }
75 
76 #endif // EQ_STATISTICSAMPLER_H
Utility to sample an statistics event.
Statistic statistic
The statistics event.
virtual ~StatisticSampler()
Destruct and finish statistics sampling.
The Equalizer client library.
Definition: eq/agl/types.h:23
StatisticSampler(const Statistic::Type type, Owner *owner, const uint32_t frameNumber=LB_UNDEFINED_UINT32)
Construct a new statistics sampler.