|
KiCad PCB EDA Suite
|
#include <kiid.h>
Public Member Functions | |
| KIID () | |
| KIID (int null) | |
| KIID (const std::string &aString) | |
| KIID (const char *aString) | |
| KIID (const wxString &aString) | |
| KIID (timestamp_t aTimestamp) | |
| void | Clone (const KIID &aUUID) |
| size_t | Hash () const |
| bool | IsLegacyTimestamp () const |
| timestamp_t | AsLegacyTimestamp () const |
| wxString | AsString () const |
| wxString | AsLegacyTimestampString () const |
| std::string | AsStdString () const |
| void | ConvertTimestampToUuid () |
| Change an existing time stamp based UUID into a true UUID. | |
| void | Increment () |
| Generates a deterministic replacement for a given ID. | |
| bool | operator== (KIID const &rhs) const |
| bool | operator!= (KIID const &rhs) const |
| bool | operator< (KIID const &rhs) const |
| bool | operator> (KIID const &rhs) const |
Static Public Member Functions | |
| static bool | SniffTest (const wxString &aCandidate) |
| Returns true if a string has the correct formatting to be a KIID. | |
| static void | CreateNilUuids (bool aNil=true) |
| A performance optimization which disables/enables the generation of pseudo-random UUIDs. | |
| static void | SeedGenerator (unsigned int aSeed) |
| Re-initialize the UUID generator with a given seed (for testing or QA purposes) | |
| static KIID | Combine (const KIID &aFirst, const KIID &aSecond) |
| Creates a deterministic KIID from two input KIIDs by XORing their underlying UUIDs. | |
Private Attributes | |
| boost::uuids::uuid | m_uuid |
| KIID::KIID | ( | ) |
Definition at line 77 of file kiid.cpp.
References g_createNilUuids, m_uuid, nilGenerator, randomGenerator, and rng_mutex.
Referenced by Clone(), Combine(), KIID(), KIID(), operator!=(), operator<(), operator==(), and operator>().
| KIID::KIID | ( | int | null | ) |
Definition at line 105 of file kiid.cpp.
References m_uuid, and nilGenerator.
| KIID::KIID | ( | const std::string & | aString | ) |
| KIID::KIID | ( | timestamp_t | aTimestamp | ) |
| timestamp_t KIID::AsLegacyTimestamp | ( | ) | const |
Definition at line 222 of file kiid.cpp.
References m_uuid.
Referenced by AsLegacyTimestampString(), BOOST_AUTO_TEST_CASE(), SCH_IO_KICAD_LEGACY::saveSheet(), and SCH_IO_KICAD_LEGACY::saveSymbol().
| wxString KIID::AsLegacyTimestampString | ( | ) | const |
Definition at line 259 of file kiid.cpp.
References AsLegacyTimestamp().
Referenced by BOOST_AUTO_TEST_CASE(), and SCH_IO_KICAD_LEGACY::saveSymbol().
| std::string KIID::AsStdString | ( | ) | const |
Definition at line 253 of file kiid.cpp.
References m_uuid.
Referenced by API_HANDLER_PCB::handleCreateUpdateItemsInternal(), API_HANDLER_SCH::handleCreateUpdateItemsInternal(), and API_HANDLER_PCB::handleInjectDrcError().
| wxString KIID::AsString | ( | ) | const |
Definition at line 247 of file kiid.cpp.
References m_uuid.
Referenced by KIID_PATH::AsString(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_DATA_TEST_CASE_F(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), SCH_SHEET_LIST::BuildSheetList(), SCH_SHEET_PATH::CheckForMissingSymbolInstances(), LIB_FIELDS_EDITOR_GRID_DATA_MODEL::CreateDerivedSymbol(), KIGFX::SCH_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), MULTICHANNEL_TOOL::findOtherItemsInRuleArea(), MULTICHANNEL_TOOL::findRoutingInRuleArea(), SCH_EDITOR_CONTROL::FindSymbolAndItem(), formatArc(), formatBezier(), formatCircle(), formatPoly(), formatRect(), KICAD_FORMAT::FormatUuid(), from_json(), SCH_PIN::GetDefaultNetName(), RC_ITEM::GetJsonViolation(), GetMsgPanelDisplayUuid(), PROJECT::GetSheetName(), DRC_ENGINE::loadImplicitRules(), NETLIST_EXPORTER_XML::makeSymbols(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_SHEET_PATH::PathAsString(), DIALOG_GENERATORS::RebuildModels(), PCB_IO_KICAD_SEXPR_PARSER::resolveGroups(), SCH_MARKER::SerializeToString(), testGroupEqual(), to_json(), to_json(), DIALOG_LIB_FIELDS_TABLE::TransferDataFromWindow(), SCH_EDITOR_CONTROL::updatePastedSymbol(), and NETLIST_EXPORTER_ORCADPCB2::WriteNetlist().
| void KIID::Clone | ( | const KIID & | aUUID | ) |
Creates a deterministic KIID from two input KIIDs by XORing their underlying UUIDs.
This is useful for generating stable IDs for derived objects (like teardrops) that are created from the combination of two parent objects.
Definition at line 289 of file kiid.cpp.
References KIID(), m_uuid, and result.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), TEARDROP_MANAGER::createTeardrop(), and TEARDROP_MANAGER::createTeardropMask().
| void KIID::ConvertTimestampToUuid | ( | ) |
Change an existing time stamp based UUID into a true UUID.
If this is not a time stamp based UUID, then no change is made.
Definition at line 265 of file kiid.cpp.
References IsLegacyTimestamp(), m_uuid, and randomGenerator.
|
static |
A performance optimization which disables/enables the generation of pseudo-random UUIDs.
NB: uses a global. Not thread safe!
Definition at line 300 of file kiid.cpp.
References g_createNilUuids.
Referenced by KIID_NIL_SET_RESET::KIID_NIL_SET_RESET(), and KIID_NIL_SET_RESET::~KIID_NIL_SET_RESET().
| size_t KIID::Hash | ( | ) | const |
Definition at line 235 of file kiid.cpp.
References m_uuid.
Referenced by BOOST_AUTO_TEST_CASE(), and std::hash< KIID >::operator()().
| void KIID::Increment | ( | ) |
Generates a deterministic replacement for a given ID.
NB: destroys uniform distribution! But it's the only thing we have when a deterministic replacement for a duplicate ID is required.
Definition at line 274 of file kiid.cpp.
References m_uuid.
Referenced by BOOST_AUTO_TEST_CASE(), and TEARDROP_MANAGER::createTeardropMask().
| bool KIID::IsLegacyTimestamp | ( | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
Re-initialize the UUID generator with a given seed (for testing or QA purposes)
WARNING: Do not call this function from within KiCad or via a Python action plugin. It is only to be used inside QA tests or in external Python scripts. Resetting the UUID generator in the middle of a KiCad GUI run will potentially have harmful effects on file integrity.
| aSeed | is a seed to pass to the boost::mt19937 pseudo-random number generator |
Definition at line 306 of file kiid.cpp.
References randomGenerator, and rng.
Referenced by BOOST_AUTO_TEST_CASE().
|
static |
Returns true if a string has the correct formatting to be a KIID.
Definition at line 179 of file kiid.cpp.
References niluuid.
Referenced by searchAreas().
|
private |
Definition at line 140 of file kiid.h.
Referenced by AsLegacyTimestamp(), AsStdString(), AsString(), Clone(), Combine(), ConvertTimestampToUuid(), Hash(), Increment(), IsLegacyTimestamp(), KIID(), KIID(), KIID(), KIID(), operator!=(), operator<(), operator==(), and operator>().