LeechCraft
0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
utilitytypes.h
Go to the documentation of this file.
1
/**********************************************************************
2
* LeechCraft - modular cross-platform feature rich internet client.
3
* Copyright (C) 2006-2014 Georg Rudoy
4
*
5
* Distributed under the Boost Software License, Version 1.0.
6
* (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7
**********************************************************************/
8
9
#pragma once
10
11
#include <utility>
12
#include <QDataStream>
13
#include <QByteArray>
14
15
namespace
LC::Util::oral
16
{
17
template
<
typename
T>
18
struct
AsDataStream
19
{
20
using
BaseType
=
QByteArray
;
21
22
T
Val_
;
23
24
operator
T ()
const
&
25
{
26
return
Val_
;
27
}
28
29
operator
T&& () &&
30
{
31
return
std::move (
Val_
);
32
}
33
34
AsDataStream
() =
default
;
35
AsDataStream
(
const
AsDataStream
&) =
default
;
36
AsDataStream
(
AsDataStream
&&) =
default
;
37
38
AsDataStream
&
operator=
(
const
AsDataStream
&) =
default
;
39
AsDataStream
&
operator=
(
AsDataStream
&&) =
default
;
40
41
template
<
typename
...
Args
>
42
AsDataStream
(
Args
&&...
args
)
43
:
Val_
{
std
::
forward
<
Args
> (
args
)... }
44
{
45
}
46
47
template
<
typename
U>
48
AsDataStream
&
operator=
(
U
&&
val
)
49
{
50
Val_
= std::forward<U> (
val
);
51
return
*
this
;
52
}
53
54
BaseType
ToBaseType
()
const
55
{
56
QByteArray
ba
;
57
{
58
QDataStream
out
{ &
ba
, QIODevice::WriteOnly };
59
out
<<
Val_
;
60
}
61
return
ba
;
62
}
63
64
static
AsDataStream
FromBaseType
(
const
QByteArray
&
ba
)
65
{
66
QDataStream
in
{
ba
};
67
68
AsDataStream
res
;
69
in
>>
res
.
Val_
;
70
return
res
;
71
}
72
};
73
74
}
LC::Util::oral
Definition
migrate.h:15
LC::Util::Filter
Container< T > Filter(const Container< T > &c, F f)
Definition
prelude.h:118
std
STL namespace.
LC::Util::oral::AsDataStream
Definition
utilitytypes.h:19
LC::Util::oral::AsDataStream::AsDataStream
AsDataStream(const AsDataStream &)=default
LC::Util::oral::AsDataStream::FromBaseType
static AsDataStream FromBaseType(const QByteArray &ba)
Definition
utilitytypes.h:64
LC::Util::oral::AsDataStream::AsDataStream
AsDataStream(AsDataStream &&)=default
LC::Util::oral::AsDataStream::Val_
T Val_
Definition
utilitytypes.h:22
LC::Util::oral::AsDataStream::AsDataStream
AsDataStream()=default
LC::Util::oral::AsDataStream::AsDataStream
AsDataStream(Args &&... args)
Definition
utilitytypes.h:42
LC::Util::oral::AsDataStream::operator=
AsDataStream & operator=(const AsDataStream &)=default
LC::Util::oral::AsDataStream::ToBaseType
BaseType ToBaseType() const
Definition
utilitytypes.h:54
LC::Util::oral::AsDataStream::BaseType
QByteArray BaseType
Definition
utilitytypes.h:20
src
util
db
oral
utilitytypes.h
Generated by
1.10.0