Turi Create  4.0
unity_sarray_builder_interface.hpp
1 /* Copyright © 2017 Apple Inc. All rights reserved.
2  *
3  * Use of this source code is governed by a BSD-3-clause license that can
4  * be found in the LICENSE.txt file or at https://opensource.org/licenses/BSD-3-Clause
5  */
6 #ifndef TURI_UNITY_SARRAY_BUILDER_INTERFACE_HPP
7 #define TURI_UNITY_SARRAY_BUILDER_INTERFACE_HPP
8 #include <vector>
9 #include <core/data/flexible_type/flexible_type.hpp>
10 #include <core/system/cppipc/magic_macros.hpp>
11 
12 namespace turi {
13 
14 class unity_sarray_base;
15 
16 GENERATE_INTERFACE_AND_PROXY(unity_sarray_builder_base, unity_sarray_builder_proxy,
17  (void, init, (size_t)(size_t)(flex_type_enum))
18  (void, append, (const flexible_type&)(size_t))
19  (void, append_multiple, (const std::vector<flexible_type>&)(size_t))
20  (flex_type_enum, get_type, )
21  (std::vector<flexible_type>, read_history, (size_t)(size_t))
22  (std::shared_ptr<unity_sarray_base>, close, )
23  )
24 
25 } // namespace turi
26 
27 #endif //TURI_UNITY_SARRAY_BUILDER_INTERFACE_HPP
28 #include <model_server/lib/api/unity_sarray_interface.hpp>
#define GENERATE_INTERFACE_AND_PROXY(base_name, proxy_name, functions)