2 * Copyright © 2015 Canonical Ltd.
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,
6 * as published by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 * Authored by: Alberto Aguirre <alberto.aguirre@canonical.com>
19 #ifndef ANBOX_RPC_MAKE_PROTOBUF_OBJECT_H_
20 #define ANBOX_RPC_MAKE_PROTOBUF_OBJECT_H_
26 template <typename ProtobufType>
27 auto make_protobuf_object() {
28 return std::unique_ptr<ProtobufType>{ProtobufType::default_instance().New()};
31 template <typename ProtobufType>
32 auto make_protobuf_object(ProtobufType const& from) {
33 auto object = make_protobuf_object<ProtobufType>();
34 object->CopyFrom(from);