Time-of-Flight-SDK
storage_interface.h
1 /*
2  * BSD 3-Clause License
3  *
4  * Copyright (c) 2019, Analog Devices, Inc.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright notice, this
11  * list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright notice,
14  * this list of conditions and the following disclaimer in the documentation
15  * and/or other materials provided with the distribution.
16  *
17  * 3. Neither the name of the copyright holder nor the names of its
18  * contributors may be used to endorse or promote products derived from
19  * this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 #ifndef STORAGE_INTERFACE_H
33 #define STORAGE_INTERFACE_H
34 
35 #include <aditof/status_definitions.h>
36 #include <cstddef>
37 #include <cstdint>
38 #include <string>
39 
40 namespace aditof {
41 
48  public:
52  virtual ~StorageInterface() = default;
53 
59  virtual aditof::Status open(void *handle) = 0;
60 
68  virtual aditof::Status read(const uint32_t address, uint8_t *data,
69  const size_t bytesCount) = 0;
70 
78  virtual aditof::Status write(const uint32_t address, const uint8_t *data,
79  const size_t bytesCount) = 0;
80 
85  virtual aditof::Status close() = 0;
86 
92  virtual aditof::Status getName(std::string &name) const = 0;
93 };
94 
95 } // namespace aditof
96 
97 #endif // STORAGE_INTERFACE_H
Namespace aditof.
Definition: frame.h:43
virtual aditof::Status open(void *handle)=0
Open the communication channel with the storage.
virtual aditof::Status write(const uint32_t address, const uint8_t *data, const size_t bytesCount)=0
Write data to storage.
virtual ~StorageInterface()=default
Destructor.
virtual aditof::Status read(const uint32_t address, uint8_t *data, const size_t bytesCount)=0
Read data from storage.
virtual aditof::Status getName(std::string &name) const =0
Retrieves the name of the storage.
Interface for storage of data. For example: EEPROM, Flash, file on disk, etc.
virtual aditof::Status close()=0
Close the communication channel with the storage.
Status
Status of any operation that the TOF sdk performs.