Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
amdis
amdis-core
Commits
d85f4695
Commit
d85f4695
authored
Jun 06, 2019
by
Praetorius, Simon
Browse files
make capabilities a compile-time test whether backup-restore functionality can be used
parent
c2cb20a7
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/amdis/ProblemStat.inc.hpp
View file @
d85f4695
...
...
@@ -479,16 +479,26 @@ writeFiles(AdaptInfo& adaptInfo, bool force)
}
template
<
class
Grid
,
class
GridView
,
class
=
decltype
(
Dune
::
BackupRestoreFacility
<
Grid
>
::
backup
(
std
::
declval
<
Grid
>
(),
std
::
string
(
""
)))
>
void
backup_impl
(
Grid
const
&
grid
,
GridView
const
&
gv
,
std
::
string
filename
,
std
::
true_type
)
{
Dune
::
BackupRestoreFacility
<
Grid
>::
backup
(
grid
,
filename
);
}
template
<
class
Grid
,
class
GridView
,
bool
B
,
class
=
decltype
(
BackupRestoreByGridFactory
<
Grid
>
::
backup
(
std
::
declval
<
GridView
>
(),
std
::
string
(
""
)))
>
void
backup_impl
(
Grid
const
&
grid
,
GridView
const
&
gv
,
std
::
string
filename
,
bool_t
<
B
>
)
{
warning
(
"Falling back to backup of gridview."
);
BackupRestoreByGridFactory
<
Grid
>::
backup
(
gv
,
filename
);
}
template
<
class
Traits
>
void
ProblemStat
<
Traits
>::
backup
(
std
::
string
const
&
filename
)
const
{
if
(
Dune
::
Capabilities
::
hasBackupRestoreFacilities
<
Grid
>::
v
)
Dune
::
BackupRestoreFacility
<
Grid
>::
backup
(
*
grid_
,
filename
);
else
{
warning
(
"Falling back to backup of gridview."
);
BackupRestoreByGridFactory
<
Grid
>::
backup
(
gridView
(),
filename
);
}
backup_impl
(
*
grid_
,
gridView
(),
filename
,
bool_t
<
Dune
::
Capabilities
::
hasBackupRestoreFacilities
<
Grid
>::
v
>
{});
}
...
...
@@ -510,16 +520,26 @@ backup(AdaptInfo& adaptInfo)
}
template
<
class
Grid
,
class
=
decltype
(
Dune
::
BackupRestoreFacility
<
Grid
>
::
restore
(
std
::
string
(
""
)))
>
auto
restore_impl
(
std
::
string
filename
,
std
::
true_type
)
{
return
Dune
::
BackupRestoreFacility
<
Grid
>::
restore
(
filename
);
}
template
<
class
Grid
,
bool
B
,
class
=
decltype
(
BackupRestoreByGridFactory
<
Grid
>
::
restore
(
std
::
string
(
""
)))
>
auto
restore_impl
(
std
::
string
filename
,
bool_t
<
B
>
)
{
return
BackupRestoreByGridFactory
<
Grid
>::
restore
(
filename
);
}
template
<
class
Traits
>
auto
ProblemStat
<
Traits
>::
restore
(
std
::
string
const
&
filename
)
{
// restore grid from file
std
::
unique_ptr
<
Grid
>
grid
;
if
(
Dune
::
Capabilities
::
hasBackupRestoreFacilities
<
Grid
>::
v
)
grid
.
reset
(
Dune
::
BackupRestoreFacility
<
Grid
>::
restore
(
filename
));
else
grid
.
reset
(
BackupRestoreByGridFactory
<
Grid
>::
restore
(
filename
));
std
::
unique_ptr
<
Grid
>
grid
(
restore_impl
<
Grid
>
(
filename
,
bool_t
<
Dune
::
Capabilities
::
hasBackupRestoreFacilities
<
Grid
>::
v
>
{}));
return
std
::
move
(
grid
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment