]> granicus.if.org Git - icinga2/blob - lib/db_ido/dbvalue.cpp
Merge pull request #7124 from Icinga/bugfix/namespace-thread-safe
[icinga2] / lib / db_ido / dbvalue.cpp
1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
2
3 #include "db_ido/dbvalue.hpp"
4
5 using namespace icinga;
6
7 DbValue::DbValue(DbValueType type, Value value)
8         : m_Type(type), m_Value(std::move(value))
9 { }
10
11 Value DbValue::FromTimestamp(const Value& ts)
12 {
13         if (ts.IsEmpty() || ts == 0)
14                 return Empty;
15
16         return new DbValue(DbValueTimestamp, ts);
17 }
18
19 Value DbValue::FromValue(const Value& value)
20 {
21         return value;
22 }
23
24 Value DbValue::FromObjectInsertID(const Value& value)
25 {
26         return new DbValue(DbValueObjectInsertID, value);
27 }
28
29 bool DbValue::IsTimestamp(const Value& value)
30 {
31         if (!value.IsObjectType<DbValue>())
32                 return false;
33
34         DbValue::Ptr dbv = value;
35         return dbv->GetType() == DbValueTimestamp;
36 }
37
38 bool DbValue::IsObjectInsertID(const Value& value)
39 {
40         if (!value.IsObjectType<DbValue>())
41                 return false;
42
43         DbValue::Ptr dbv = value;
44         return dbv->GetType() == DbValueObjectInsertID;
45 }
46
47 Value DbValue::ExtractValue(const Value& value)
48 {
49         if (!value.IsObjectType<DbValue>())
50                 return value;
51
52         DbValue::Ptr dbv = value;
53         return dbv->GetValue();
54 }
55
56 DbValueType DbValue::GetType() const
57 {
58         return m_Type;
59 }
60
61 Value DbValue::GetValue() const
62 {
63         return m_Value;
64 }
65
66 void DbValue::SetValue(const Value& value)
67 {
68         m_Value = value;
69 }