KiCad PCB EDA Suite
Loading...
Searching...
No Matches
KIID Class Reference

#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
 

Detailed Description

Definition at line 48 of file kiid.h.

Constructor & Destructor Documentation

◆ KIID() [1/6]

KIID::KIID ( )

◆ KIID() [2/6]

KIID::KIID ( int null)

Definition at line 105 of file kiid.cpp.

References m_uuid, and nilGenerator.

◆ KIID() [3/6]

KIID::KIID ( const std::string & aString)

Definition at line 112 of file kiid.cpp.

References m_uuid.

◆ KIID() [4/6]

KIID::KIID ( const char * aString)

Definition at line 167 of file kiid.cpp.

References KIID().

◆ KIID() [5/6]

KIID::KIID ( const wxString & aString)

Definition at line 173 of file kiid.cpp.

References KIID().

◆ KIID() [6/6]

KIID::KIID ( timestamp_t aTimestamp)

Definition at line 207 of file kiid.cpp.

References m_uuid.

Member Function Documentation

◆ AsLegacyTimestamp()

timestamp_t KIID::AsLegacyTimestamp ( ) const

◆ AsLegacyTimestampString()

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().

◆ AsStdString()

std::string KIID::AsStdString ( ) const

◆ AsString()

◆ Clone()

void KIID::Clone ( const KIID & aUUID)

Definition at line 241 of file kiid.cpp.

References KIID(), and m_uuid.

◆ Combine()

KIID KIID::Combine ( const KIID & aFirst,
const KIID & aSecond )
static

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.

Parameters
aFirstthe first KIID to combine
aSecondthe second KIID to combine
Returns
a new KIID that is the XOR combination of the two inputs

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().

◆ ConvertTimestampToUuid()

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.

◆ CreateNilUuids()

void KIID::CreateNilUuids ( bool aNil = true)
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().

◆ Hash()

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()().

◆ Increment()

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().

◆ IsLegacyTimestamp()

bool KIID::IsLegacyTimestamp ( ) const

Definition at line 216 of file kiid.cpp.

References m_uuid.

Referenced by ConvertTimestampToUuid().

◆ operator!=()

bool KIID::operator!= ( KIID const & rhs) const
inline

Definition at line 124 of file kiid.h.

References KIID(), and m_uuid.

◆ operator<()

bool KIID::operator< ( KIID const & rhs) const
inline

Definition at line 129 of file kiid.h.

References KIID(), and m_uuid.

◆ operator==()

bool KIID::operator== ( KIID const & rhs) const
inline

Definition at line 119 of file kiid.h.

References KIID(), and m_uuid.

◆ operator>()

bool KIID::operator> ( KIID const & rhs) const
inline

Definition at line 134 of file kiid.h.

References KIID(), and m_uuid.

◆ SeedGenerator()

void KIID::SeedGenerator ( unsigned int aSeed)
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.

Parameters
aSeedis 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().

◆ SniffTest()

bool KIID::SniffTest ( const wxString & aCandidate)
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().

Member Data Documentation

◆ m_uuid


The documentation for this class was generated from the following files: