COAR
1.0
COAR - DMS system
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
documentstr.h
Go to the documentation of this file.
1
//
2
// C++ Interface: documentstr
3
//
4
// Description: struktury dokumentu COARu tak ako budu ukladane do storage_DOCDATA a
5
// storage_DOCINFO
6
//
7
//
8
// Author: laco.domin <laco.domin@dominanz.sk>, (C) 2012
9
//
10
// Copyright: See COPYING file that comes with this distribution
11
//
12
//
13
21
#ifndef DOCUMENTSTR_H
22
#define DOCUMENTSTR_H
23
#include "
coartypes.h
"
24
#include "
coar.h
"
25
26
29
#define DOCHDR_IDENT "DOCUMENT"
30
33
#define DOC_STATE_HIDDEN 0x01
34
35
36
#define DOC_STATE_LOCKED 0x02
37
38
39
#define DOC_STATE_FINAL 0x04
40
41
42
#define DOC_STATE_WORKINGCOPY 0x08
43
44
45
#define DOC_STATE_DELETED 0x10
46
47
48
#define DOC_STATE_TOBEDELETEDREC 0x20
49
50
51
#define DOC_STATE_TOBEDELETED 0x40
52
53
54
#define DOC_STATE_SAVED 0x80
55
58
#define DOC_STATE_TRACKVERSIONS 0x200000
59
60
61
#define DOC_STATE_MULTCHECKOUT 0x400000
62
63
64
#define DOC_STATE_TRACKCHANGES 0x800000
65
66
69
#define DOC_STATE_TAGINDEX 0x000100
70
71
72
#define DOC_STATE_NOINDEX 0x000200
73
74
75
#define DOC_STATE_MDINDEX 0x000400
76
77
78
#define DOC_STATE_RTINDEX 0x000800
79
80
81
#define DOC_STATE_DATAINDEX 0x001000
82
83
84
#define DOC_STATE_VERUDMINDEX 0x002000
85
86
#define DOC_DATA_BASEDATA 0x01
87
#define DOC_DATA_TAGS 0x02
88
#define DOC_DATA_RTDATA 0x04
89
#define DOC_DATA_FILEDATA 0x08
90
#define DOC_DATA_METADATA 0x10
91
#define DOC_DATA_VUDATA 0x20
92
#define DOC_DATA_CHANGELOG 0x40
93
#define DOC_DATA_ALL 0x7F
94
100
typedef
struct
101
{
102
coaruserid_t
userid
;
103
time_t
time
;
104
docid_t
pwcid
;
105
version_t
fromVersion
;
106
}
checkoutent
;
//TODO packed?
107
113
typedef
struct
114
{
115
protected
:
118
char
ident[8];
119
120
// identifikatory dokumentu
125
docid_t
docid
;
128
coar_uuid_t
docuuid
;
131
fldid_t
folderId_toBeSaved
;
134
fldid_t
folderId_actual
;
137
char
userdocid[80];
140
docid_t
parentdocid
;
143
docid_t
docRootDocid
;
146
docid_t
firstversiondocid
;
149
docid_t
lastversiondocid
;
150
151
152
// Stav dokumentu
155
_uint_t
docstate
;
156
159
coaruserid_t
lock_uid
;
160
161
// Casy
164
time_t
created
;
167
time_t
updated
;
170
time_t
accessed
;
173
time_t
usertime
;
176
time_t
locktime
;
177
178
// Popisne data dokumentu
181
wchar_t
docname_w[100];
184
wchar_t
docdesc_w[256];
187
wchar_t
md_w[512];
190
wchar_t
tags_w[256];
191
192
193
// uzivatelia a pristupove prava k dokumentu
196
coaruserid_t
owner_uid
;
199
coaruserid_t
document_gid
;
202
_uint_t
owner_rights
;
205
_uint_t
group_rights
;
208
_uint_t
others_rights
;
211
permission
acl0_user[50];
214
permission
acl0_group[20];
217
docid_t
nesteddocs0[100];
218
219
220
// udaje o datach dokumentu
223
entity_id_t
snapshotsID
;
226
entity_id_t
indexLocationsEntID
;
229
entity_id_t
docdataEntID
;
232
offset_t
doclen
;
235
offset_t
doclen_compr
;
238
entity_id_t
rtdataID
;
241
offset_t
rtdlen
;
244
char
mimeDocData[50];
247
char
mimeRTData[50];
248
249
// verzionovanie dokumentu
252
wchar_t
versionComment[256];
255
char
userVersionId[20];
258
_uint_t
version
;
261
docid_t
prevVersionDocid
;
264
docid_t
nextVersionDocid
;
267
_uint_t
newestVersion
;
268
273
checkoutent
checkoutentries[20];
274
275
// atributy dynamickych dat dokumentu , dlzky su v Bytoch
278
_uint_t
aclusrlen
;
281
_uint_t
aclgrplen
;
284
size_t
nestdocslen
;
287
size_t
mdlen
;
290
size_t
tagslen
;
293
size_t
changeloglen
;
296
size_t
elsignlen
;
299
size_t
totalLength
;
300
303
version_t
headerVersion
;
306
version_t
rtdataVersion
;
309
version_t
docdataVersion
;
310
311
bool
dirtyHeader
;
312
bool
dirtyDocData
;
313
bool
dirtyRTData
;
314
bool
dirtyMetaData
;
315
bool
dirtyTags
;
316
unsigned
long
long
changes
;
317
318
char
reserved[500];
319
320
private
:
321
friend
class
aclobject
;
322
friend
class
document
;
323
324
325
}
/*TODO __attribute__ ((packed))*/
document_static_header
;
326
327
330
typedef
struct
DOC_FULL_HDR
331
{
332
335
document_static_header
shdr
;
336
337
// udaje ktorych dlzka je dynamicka
340
permission
*
acl_user
;
341
permission
*
acl_group
;
344
docid_t
*
nesteddocs
;
347
wiostream*
md
;
350
wiostream*
tags
;
353
iostream*
log
;
356
iostream*
elsign
;
357
358
DOC_FULL_HDR
()
359
{
360
memset(&
shdr
, 0,
sizeof
(
document_static_header
));
361
362
acl_user
= NULL;
363
acl_group
= NULL;
364
nesteddocs
= NULL;
365
md
= NULL;
366
tags
= NULL;
367
log
= NULL;
368
elsign
= NULL;
369
}
370
371
~DOC_FULL_HDR
()
372
{
373
if
(
acl_group
)
374
free(
acl_group
);
375
376
if
(
acl_user
)
377
free(
acl_user
);
378
379
if
(
elsign
)
380
delete
elsign
;
381
382
if
(
log
)
383
delete
log
;
384
385
if
(
md
)
386
delete
md
;
387
388
if
(
nesteddocs
)
389
free(
nesteddocs
);
390
391
if
(
tags
)
392
delete
tags
;
393
};
394
395
}
/*TODO __attribute__ ((packed))*/
document_full_header
;
396
397
398
#endif
coarlib
documentstr.h
Generated on Fri Sep 25 2015 14:53:56 for COAR by
1.8.1.1