QEloquent
1.1.0
Qt most flexible ORM.
Loading...
Searching...
No Matches
itemproxy.h
1
#ifndef QELOQUENT_ITEMPROXY_H
2
#define QELOQUENT_ITEMPROXY_H
3
4
#include <QEloquent/global.h>
5
6
namespace
QEloquent {
7
8
template
<
typename
T>
9
class
AbstractItemProxy
10
{
11
public
:
12
virtual
~AbstractItemProxy() =
default
;
13
14
const
T &operator*()
const
{
return
*constItem(); }
15
T &operator*() {
return
*mutableItem(); }
16
17
const
T *operator->()
const
{
return
constItem(); }
18
T *operator->() {
return
mutableItem(); }
19
20
operator
const
T&()
const
{
return
*constItem(); }
21
operator
T&() {
return
*mutableItem(); }
22
23
protected
:
24
virtual
const
T *constItem()
const
= 0;
25
virtual
T *mutableItem() = 0;
26
};
27
28
template
<
typename
T>
29
class
ItemProxy :
public
AbstractItemProxy<T>
30
{
31
public
:
32
const
T *constItem()
const
{
return
&m_proxy; }
33
T *mutableItem() {
return
&m_proxy; }
34
35
private
:
36
T m_proxy;
37
};
38
39
}
// namespace QEloquent
40
41
#endif
// QELOQUENT_ITEMPROXY_H
src
utils
itemproxy.h
Generated by
1.9.8