blob: 95e516178b5b8eae5efa3e3d00d5b050e24bf2db (
plain)
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
|
// file : common/id/auto/test.hxx
// license : GNU GPL v2; see accompanying LICENSE file
#include <map>
#include <vector>
#ifdef ODB_COMPILER
# if defined(ODB_DATABASE_PGSQL)
# define BLOB_TYPE "BYTEA"
# elif defined(ODB_DATABASE_MSSQL)
# define BLOB_TYPE "VARBINARY(max)"
# else
# define BLOB_TYPE "BLOB"
# endif
#endif
#pragma db value
struct value_cont
{
int n;
std::vector<int> v;
};
#pragma db value
struct value_blob
{
int n;
#pragma db type(BLOB_TYPE)
std::vector<char> v;
};
#pragma db object
struct object
{
#pragma db id
int id;
//std::vector<std::vector<int> > vv;
std::vector<value_cont> vc;
std::map<int, value_cont> mc;
std::vector<value_blob> vb;
std::map<int, value_blob> mb;
};
/*
#include <array>
#include <vector>
using float3 = std::array<float, 3>;
#pragma db value(float3) transient
#pragma db member(float3::e1) virtual(float) get(this[0]) set(this[0])
#pragma db member(float3::e2) virtual(float) get(this[1]) set(this[1])
#pragma db member(float3::e3) virtual(float) get(this[2]) set(this[2])
#pragma db object
struct object
{
#pragma db id
int id;
std::vector<float3> vf3;
};
*/
|