LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
|
A polymorphic functor base class for generating record IDs for a table. More...
#include <IdFactory.h>
Public Member Functions | |
virtual RecordId | operator() ()=0 |
Return a new unique RecordId. | |
virtual void | notify (RecordId id)=0 |
Notify the IdFactory that the given ID has been used and must not be returned by operator(). | |
virtual std::shared_ptr< IdFactory > | clone () const =0 |
Deep-copy the IdFactory. | |
IdFactory ()=default | |
IdFactory (IdFactory const &)=default | |
IdFactory (IdFactory &&)=default | |
IdFactory & | operator= (IdFactory const &other)=delete |
IdFactory & | operator= (IdFactory &&other)=delete |
virtual | ~IdFactory ()=default |
Static Public Member Functions | |
static std::shared_ptr< IdFactory > | makeSimple () |
Return a simple IdFactory that simply counts from 1. | |
static std::shared_ptr< IdFactory > | makeSource (RecordId expId, int reserved) |
Return an IdFactory that includes another, fixed ID in the higher-order bits. | |
static int | computeReservedFromMaxBits (int maxBits) |
Return the number to pass as the 'reserved' argument to makeSource for an exposure ID with the given maximum number of bits. | |
A polymorphic functor base class for generating record IDs for a table.
The IDs produced by an IdFactory need not be sequential, but they must be unique, both with respect to the IDs it generates itself and those passed to it via the notify() member function. Valid IDs must be nonzero, as zero is used to indicate null in some contexts.
Definition at line 21 of file IdFactory.h.
|
default |
|
default |
|
virtualdefault |
|
pure virtual |
Deep-copy the IdFactory.
|
inlinestatic |
Return the number to pass as the 'reserved' argument to makeSource for an exposure ID with the given maximum number of bits.
[in] | maxBits | The maximum number of bits an exposure ID can have. |
Definition at line 57 of file IdFactory.h.
|
static |
Return a simple IdFactory that simply counts from 1.
This is used when an empty pointer is passed to the BaseTable constructor.
Definition at line 70 of file IdFactory.cc.
|
static |
Return an IdFactory that includes another, fixed ID in the higher-order bits.
[in] | expId | ID to include in the upper bits via a bitwise OR. |
[in] | reserved | How many bits to reserve for the part of the ID that is unique. |
The final record ID will be:
(upper << reserved) | sequence
Definition at line 72 of file IdFactory.cc.
Notify the IdFactory that the given ID has been used and must not be returned by operator().
Return a new unique RecordId.