KiCad PCB EDA Suite
pns_logger.h
Go to the documentation of this file.
1 /*
2  * KiRouter - a push-and-(sometimes-)shove PCB router
3  *
4  * Copyright (C) 2013-2014 CERN
5  * Copyright (C) 2016-2021 KiCad Developers, see AUTHORS.txt for contributors.
6  * Author: Tomasz Wlostowski <[email protected]>
7  *
8  * This program is free software: you can redistribute it and/or modify it
9  * under the terms of the GNU General Public License as published by the
10  * Free Software Foundation, either version 3 of the License, or (at your
11  * option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License along
19  * with this program. If not, see <http://www.gnu.org/licenses/>.
20  */
21 
22 #ifndef __PNS_LOGGER_H
23 #define __PNS_LOGGER_H
24 
25 #include <cstdio>
26 #include <vector>
27 #include <string>
28 #include <sstream>
29 
30 #include <math/vector2d.h>
31 
32 class SHAPE_LINE_CHAIN;
33 class SHAPE;
34 
35 namespace PNS {
36 
37 class ITEM;
38 
39 class LOGGER
40 {
41 public:
42 
43  enum EVENT_TYPE {
49  };
50 
51  struct EVENT_ENTRY {
54  wxString uuid;
55  };
56 
57  LOGGER();
58  ~LOGGER();
59 
60  void Save( const std::string& aFilename );
61  void Clear();
62  void Log( EVENT_TYPE evt, const VECTOR2I& pos, const ITEM* item = nullptr );
63 
64  const std::vector<EVENT_ENTRY>& GetEvents()
65  {
66  return m_events;
67  }
68 
69 private:
70  std::vector<EVENT_ENTRY> m_events;
71 };
72 
73 }
74 
75 #endif
Base class for PNS router board items.
Definition: pns_item.h:55
wxString uuid
Definition: pns_logger.h:54
std::vector< EVENT_ENTRY > m_events
Definition: pns_logger.h:70
Definition: pns_logger.h:51
An abstract shape on 2D plane.
Definition: shape.h:116
EVENT_TYPE type
Definition: pns_logger.h:53
void Clear()
Definition: pns_logger.cpp:40
void Save(const std::string &aFilename)
Definition: pns_logger.cpp:46
VECTOR2I p
Definition: pns_logger.h:52
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
Push and Shove diff pair dimensions (gap) settings dialog.
void Log(EVENT_TYPE evt, const VECTOR2I &pos, const ITEM *item=nullptr)
Definition: pns_logger.cpp:64
const std::vector< EVENT_ENTRY > & GetEvents()
Definition: pns_logger.h:64