Horizon
via_padstack_provider.hpp
1 #pragma once
2 #include "common/common.hpp"
3 #include "nlohmann/json_fwd.hpp"
4 #include "pool/padstack.hpp"
5 #include "util/uuid.hpp"
6 #include <fstream>
7 #include <map>
8 #include <sqlite3.h>
9 #include <vector>
10 
11 namespace horizon {
12 
13 class ViaPadstackProvider {
14 public:
15  ViaPadstackProvider(const std::string &p, class IPool &po);
16  const Padstack *get_padstack(const UUID &uu);
17  void update_available();
18  class PadstackEntry {
19  public:
20  PadstackEntry(const std::string &p, const std::string &n) : path(p), name(n)
21  {
22  }
23 
24  std::string path;
25  std::string name;
26  };
27  const std::map<UUID, PadstackEntry> &get_padstacks_available() const;
28 
29 private:
30  std::string base_path;
31  class IPool &pool;
32 
33  std::map<UUID, Padstack> padstacks;
34  std::map<UUID, PadstackEntry> padstacks_available;
35 };
36 } // namespace horizon