LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
dict_base.h
Go to the documentation of this file.
1// Copyright 2021 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
6#ifndef DEEPLIMA_SRC_STATIC_GRAPH_DICT_BASE_H
7#define DEEPLIMA_SRC_STATIC_GRAPH_DICT_BASE_H
8
9#include <ATen/core/ivalue.h>
10
11namespace deeplima
12{
13
15{
16public:
17 virtual ~DictBase() = default;
18 virtual uint64_t size() const = 0;
19 virtual c10::IValue toIValue() const = 0;
20 virtual void fromIValue(const c10::IValue& v) = 0;
21 virtual const std::string& get_class_id() const = 0;
22};
23
24template <class D=std::shared_ptr<DictBase>>
25class DictsHolderImpl : public std::vector<D>
26{
27public:
28 virtual ~DictsHolderImpl() = default;
29 std::vector<uint32_t> get_counters() const
30 {
31 std::vector<uint32_t> v(this->size());
32 for (size_t i = 0; i < this->size(); ++i)
33 {
34 v[i] = (*this)[i]->size();
35 }
36
37 return v;
38 }
39
40};
41
43
44} // namespace deeplima
45
46#endif
virtual uint64_t size() const =0
virtual const std::string & get_class_id() const =0
virtual void fromIValue(const c10::IValue &v)=0
virtual ~DictBase()=default
virtual c10::IValue toIValue() const =0
virtual ~DictsHolderImpl()=default
std::vector< uint32_t > get_counters() const
Definition dict_base.h:29
DictsHolderImpl DictsHolder
Definition dict_base.h:42