/
connectionInfo.h
96 lines (73 loc) · 2.4 KB
/
connectionInfo.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//////////////////////////////////////////////////////////////////////////////
// Program Name: connectionInfo.h
// Created : Jan. 15, 2010
//
// Copyright (c) 2010 David Blain <dblain@mythtv.org>
//
// Licensed under the GPL v2 or later, see COPYING for details
//
//////////////////////////////////////////////////////////////////////////////
#ifndef CONNECTIONINFO_H_
#define CONNECTIONINFO_H_
#include "serviceexp.h"
#include "datacontracthelper.h"
#include "versionInfo.h"
#include "databaseInfo.h"
#include "wolInfo.h"
namespace DTC
{
class SERVICE_PUBLIC ConnectionInfo : public QObject
{
Q_OBJECT
Q_CLASSINFO( "version" , "1.1" );
Q_PROPERTY( QObject* Version READ Version )
Q_PROPERTY( QObject* Database READ Database )
Q_PROPERTY( QObject* WOL READ WOL )
PROPERTYIMP_PTR( VersionInfo , Version )
PROPERTYIMP_PTR( DatabaseInfo, Database )
PROPERTYIMP_PTR( WOLInfo , WOL )
public:
static inline void InitializeCustomTypes();
public:
ConnectionInfo(QObject *parent = 0)
: QObject ( parent ),
m_Version ( NULL ),
m_Database ( NULL ),
m_WOL ( NULL )
{
}
ConnectionInfo( const ConnectionInfo &src )
: m_Version ( NULL ),
m_Database ( NULL ),
m_WOL ( NULL )
{
Copy( src );
}
void Copy( const ConnectionInfo &src )
{
// We always need to make sure the child object is
// created with the correct parent *
if (src.m_Version)
Version()->Copy( src.m_Version );
if (src.m_Database)
Database()->Copy( src.m_Database );
if (src.m_WOL)
WOL ()->Copy( src.m_WOL );
}
};
typedef ConnectionInfo* ConnectionInfoPtr;
} // namespace DTC
Q_DECLARE_METATYPE( DTC::ConnectionInfo )
Q_DECLARE_METATYPE( DTC::ConnectionInfo* )
namespace DTC
{
inline void ConnectionInfo::InitializeCustomTypes()
{
qRegisterMetaType< ConnectionInfo >();
qRegisterMetaType< ConnectionInfo* >();
VersionInfo ::InitializeCustomTypes();
DatabaseInfo::InitializeCustomTypes();
WOLInfo ::InitializeCustomTypes();
}
}
#endif