main page
modules
namespaces
classes
files
Gecode home
Generated on Sun Aug 9 2020 05:34:08 for Gecode by
doxygen
1.8.18
gecode
kernel
shared-space-data.hpp
Go to the documentation of this file.
1
/* -*- mode: C++; c-basic-offset: 2; indent-tabs-mode: nil -*- */
2
/*
3
* Main authors:
4
* Christian Schulte <schulte@gecode.org>
5
*
6
* Copyright:
7
* Christian Schulte, 2017
8
*
9
* This file is part of Gecode, the generic constraint
10
* development environment:
11
* http://www.gecode.org
12
*
13
* Permission is hereby granted, free of charge, to any person obtaining
14
* a copy of this software and associated documentation files (the
15
* "Software"), to deal in the Software without restriction, including
16
* without limitation the rights to use, copy, modify, merge, publish,
17
* distribute, sublicense, and/or sell copies of the Software, and to
18
* permit persons to whom the Software is furnished to do so, subject to
19
* the following conditions:
20
*
21
* The above copyright notice and this permission notice shall be
22
* included in all copies or substantial portions of the Software.
23
*
24
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31
*
32
*/
33
34
namespace
Gecode
{
namespace
Kernel {
35
37
class
SharedSpaceData
:
public
SharedHandle
{
38
public
:
40
class
Data
:
public
SharedHandle::Object
{
41
public
:
43
SharedMemory
sm
;
45
GPI
gpi
;
47
Data
(
void
);
49
virtual
~Data
(
void
);
50
};
52
SharedSpaceData
(
void
);
54
SharedSpaceData
(
const
SharedSpaceData
& ssd);
56
SharedSpaceData
&
operator =
(
const
SharedSpaceData
&
r
);
58
~SharedSpaceData
(
void
);
60
Data
&
data
(
void
)
const
;
61
};
62
63
64
65
forceinline
66
SharedSpaceData::Data::Data
(
void
) {}
67
68
forceinline
69
SharedSpaceData::Data::~Data
(
void
) {}
70
71
72
73
forceinline
74
SharedSpaceData::SharedSpaceData
(
void
)
75
:
SharedHandle
(new
Data
) {}
76
77
forceinline
78
SharedSpaceData::SharedSpaceData
(
const
SharedSpaceData
& ssd)
79
:
SharedHandle
(ssd) {}
80
81
forceinline
SharedSpaceData
&
82
SharedSpaceData::operator =
(
const
SharedSpaceData
& ssd) {
83
(void) SharedHandle::operator =(ssd);
84
return
*
this
;
85
}
86
87
forceinline
88
SharedSpaceData::~SharedSpaceData
(
void
) {}
89
90
forceinline
SharedSpaceData::Data
&
91
SharedSpaceData::data
(
void
)
const
{
92
return
static_cast<
Data
&
>
(*
object
());
93
}
94
95
}}
96
97
// STATISTICS: kernel-memory
Gecode::Kernel::SharedSpaceData::Data::~Data
virtual ~Data(void)
Destructor.
Definition:
shared-space-data.hpp:69
Gecode::Kernel::SharedSpaceData::SharedSpaceData
SharedSpaceData(void)
Initialize.
Definition:
shared-space-data.hpp:74
Gecode::Kernel::SharedSpaceData
Class to store data shared among several spaces.
Definition:
shared-space-data.hpp:37
Gecode::SharedHandle::object
SharedHandle::Object * object(void) const
Access to the shared object.
Definition:
shared-object.hpp:102
Gecode::Kernel::GPI
Global propagator information.
Definition:
gpi.hpp:39
Gecode::SharedHandle::Object
The shared object.
Definition:
shared-object.hpp:53
Gecode::Kernel::SharedSpaceData::Data
The shared data.
Definition:
shared-space-data.hpp:40
Gecode::Kernel::SharedSpaceData::Data::sm
SharedMemory sm
The shared memory area.
Definition:
shared-space-data.hpp:43
Gecode::Kernel::SharedSpaceData::~SharedSpaceData
~SharedSpaceData(void)
Delete.
Definition:
shared-space-data.hpp:88
Gecode
Gecode toplevel namespace
Gecode::Kernel::SharedMemory
Shared object for several memory areas.
Definition:
manager.hpp:60
Gecode::r
Post propagator for SetVar SetOpType SetVar SetRelType r
Definition:
set.hh:767
Gecode::Kernel::SharedSpaceData::data
Data & data(void) const
Provide access.
Definition:
shared-space-data.hpp:91
forceinline
#define forceinline
Definition:
config.hpp:185
Gecode::SharedHandle
The shared handle.
Definition:
shared-object.hpp:46
Gecode::Kernel::SharedSpaceData::Data::Data
Data(void)
Default constructor.
Definition:
shared-space-data.hpp:66
Gecode::Kernel::SharedSpaceData::Data::gpi
GPI gpi
The global propagator information.
Definition:
shared-space-data.hpp:45
Gecode::Kernel::SharedSpaceData::operator=
SharedSpaceData & operator=(const SharedSpaceData &r)
Assignment operator.
Definition:
shared-space-data.hpp:82