1 /*
2  *  Copyright 2016 Bjango Pty Ltd. All rights reserved.
3  *  Copyright 2010 William Tisäter. All rights reserved.
4  *
5  *  Redistribution and use in source and binary forms, with or without
6  *  modification, are permitted provided that the following conditions are met:
7  *
8  *    1.  Redistributions of source code must retain the above copyright
9  *        notice, this list of conditions and the following disclaimer.
10  *
11  *    2.  Redistributions in binary form must reproduce the above copyright
12  *        notice, this list of conditions and the following disclaimer in the
13  *        documentation and/or other materials provided with the distribution.
14  *
15  *    3.  The name of the copyright holder may not be used to endorse or promote
16  *        products derived from this software without specific prior written
17  *        permission.
18  *
19  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY
20  *  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21  *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22  *  DISCLAIMED. IN NO EVENT SHALL WILLIAM TISÄTER BE LIABLE FOR ANY
23  *  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24  *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  *
30  */
31 
32 #include "StatBase.h"
33 
34 #ifndef _STATSLOAD_H
35 #define _STATSLOAD_H
36 
37 class StatsLoad : public StatsBase
38 {
39 	public:
40 		void update(long long sampleID);
41 		void addSample(load_data data, long long sampleID);
42 	   	std::deque<load_data> samples[8];
43 
44 		void init();
45 		#ifdef USE_SQLITE
46 		void updateHistory();
47 		load_data historyItemAtIndex(int index);
48 		void loadPreviousSamples();
49 		void loadPreviousSamplesAtIndex(int index);
50 		#endif
51 
52 		#ifdef HAVE_LIBKSTAT
53 		kstat_ctl_t *ksh;
54 		#endif
55 	};
56 #endif
57