blob: c904eb35642b5bb599d704fa616c29beb22d2980 (
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
|
.import Qt.test 1.0 as JsQtTest
function importScarceResource(scarceResourceProvider) {
// the scarce resource should be automatically released
// after the binding is evaluated if preserve is not
// called.
return scarceResourceProvider.scarceResource;
}
function importPreservedScarceResource(scarceResourceProvider) {
// the scarce resource is manually preserved
// during the evaluation of the binding.
// it should not be released.
var scarceResource = scarceResourceProvider.scarceResource;
scarceResource.preserve();
return scarceResource;
}
function importReleasedScarceResource(scarceResourceProvider) {
// release the scarce resource during the
// evaluation of the binding. The returned
// variant will therefore be invalid.
var scarceResource = scarceResourceProvider.scarceResource;
scarceResource.destroy();
return scarceResource;
}
function importPreservedScarceResourceFromMultiple(scarceResourceProvider) {
// some scarce resources are manually preserved,
// some of them are manually destroyed,
// and some are automatically managed.
// We return a preserved resource
var sr1 = scarceResourceProvider.scarceResource; // preserved/destroyed.
sr1.preserve();
var sr2 = scarceResourceProvider.scarceResource; // preserved/destroyed
sr2.preserve();
var sr3 = scarceResourceProvider.scarceResource; // automatic.
var sr4 = scarceResourceProvider.scarceResource; // automatic and returned.
var sr5 = scarceResourceProvider.scarceResource; // destroyed
sr5.destroy();
sr2.destroy();
var sr6 = scarceResourceProvider.scarceResource; // destroyed
var sr7 = scarceResourceProvider.scarceResource; // automatic
sr1.destroy();
sr6.destroy();
return sr4;
}
|