Line data Source code
1 : /*! @brief This file have the implementation for VarValue class.
2 : @file varvalue.cc
3 : @author Alvaro Denis <denisacostaq@gmail.com>
4 : @date 7/13/2019
5 :
6 : @copyright
7 : @attention <h1><center><strong>COPYRIGHT © 2019 </strong>
8 : [<strong>denisacostaq</strong>][denisacostaq-URL].
9 : All rights reserved.</center></h1>
10 : @attention This file is part of [<strong>DAQs</strong>][DAQs-URL].
11 :
12 : Redistribution and use in source and binary forms, with or without
13 : modification, are permitted provided that the following conditions
14 : are met:
15 : - 1. Redistributions of source code must retain the above copyright
16 : notice, this list of conditions and the following disclaimer.
17 : - 2. Redistributions in binary form must reproduce the above copyright
18 : notice, this list of conditions and the following disclaimer in the
19 : documentation and/or other materials provided with the distribution.
20 : - 3. Neither the name of the University nor the names of its contributors
21 : may be used to endorse or promote products derived from this software
22 : without specific prior written permission.
23 :
24 : THIS PRODUCT IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 : AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 : IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 : ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
28 : DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29 : (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 : LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31 : ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32 : (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33 : THIS PRODUCT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 :
35 : [denisacostaq-URL]: https://about.me/denisacostaq "Alvaro Denis Acosta"
36 : [DAQs-URL]: https://github.com/denisacostaq/DAQs "DAQs"
37 : */
38 : #include "src/database-server/data-model/varvalue.h"
39 :
40 : #include <utility>
41 :
42 1042 : VarValue::VarValue(const Variable &variable, double val, std::uint64_t ts)
43 1042 : : variable_{variable}, val_{val}, timestamp_{ts} {}
44 :
45 0 : VarValue::VarValue(Variable &&variable, double &&val, std::uint64_t &&ts)
46 0 : : variable_{variable}, val_{val}, timestamp_{ts} {}
47 :
48 734 : VarValue::VarValue(VarValue &&var) noexcept
49 : : variable_{var.variable_},
50 734 : val_{std::move(var.val_)},
51 1468 : timestamp_{std::move(var.timestamp_)} {}
52 :
53 0 : const Variable &VarValue::variable() const noexcept { return variable_; }
54 :
55 0 : void VarValue::set_vaiable(const Variable &var) noexcept { variable_ = var; }
56 :
57 1176 : double VarValue::val() const noexcept { return val_; }
58 :
59 350 : void VarValue::set_val(double val) noexcept { val_ = val; }
60 :
61 100 : std::uint64_t VarValue::timestamp() const noexcept { return timestamp_; }
62 :
63 320 : void VarValue::set_timestamp(std::uint64_t ts) noexcept { timestamp_ = ts; }
64 :
65 586 : const std::string &VarValue::name() const noexcept { return variable_.name(); }
|