Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Tpetra_Access.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Tpetra: Templated Linear Algebra Services Package
4 //
5 // Copyright 2008 NTESS and the Tpetra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef TPETRA_ACCESS_HPP
11 #define TPETRA_ACCESS_HPP
12 
13 namespace Tpetra
14 {
15 namespace Access
16 {
17  // Structs for Access tags, these should not be used by user code
18  struct ReadOnlyStruct {};
19  struct OverwriteAllStruct {};
20  struct ReadWriteStruct {};
21 
22 
23  //Tag indicating intent to read up-to-date data, but not modify.
24  constexpr struct ReadOnlyStruct ReadOnly = ReadOnlyStruct();
25  //Tag indicating intent to completely overwrite existing data.
26  constexpr struct OverwriteAllStruct OverwriteAll = OverwriteAllStruct();
27  //Tag indicating intent to both read up-to-date data and modify it.
28  constexpr struct ReadWriteStruct ReadWrite = ReadWriteStruct();
29 }
30 }
31 
32 #endif
33