lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
afw
table
IdFactory.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
#ifndef AFW_TABLE_IdFactory_h_INCLUDED
3
#define AFW_TABLE_IdFactory_h_INCLUDED
4
5
#include <memory>
6
7
#include "
lsst/base.h
"
8
#include "
lsst/afw/table/misc.h
"
9
10
namespace
lsst
{
11
namespace
afw
{
12
namespace
table
{
13
21
class
IdFactory
{
22
public
:
24
virtual
RecordId
operator()
() = 0;
25
27
virtual
void
notify
(
RecordId
id
) = 0;
28
30
virtual
std::shared_ptr<IdFactory>
clone
()
const
= 0;
31
37
static
std::shared_ptr<IdFactory>
makeSimple
();
38
49
static
std::shared_ptr<IdFactory>
makeSource
(
RecordId
expId,
int
reserved);
50
57
static
int
computeReservedFromMaxBits
(
int
maxBits) {
58
// Subtract one for signed integers to avoid the sign bit.
59
return
sizeof
(
RecordId
)*8 -
std::is_signed<RecordId>::value
- maxBits;
60
}
61
62
IdFactory
() =
default
;
63
IdFactory
(
IdFactory
const
&) =
default
;
64
IdFactory
(
IdFactory
&&) =
default
;
65
66
// Protected to prevent slicing.
67
IdFactory
&
operator=
(
IdFactory
const
&other) =
delete
;
68
IdFactory
&
operator=
(
IdFactory
&&other) =
delete
;
69
virtual
~IdFactory
() =
default
;
70
71
private
:
72
};
73
}
// namespace table
74
}
// namespace afw
75
}
// namespace lsst
76
77
#endif
// !AFW_TABLE_IdFactory_h_INCLUDED
base.h
lsst::afw::table::IdFactory::operator()
virtual RecordId operator()()=0
Return a new unique RecordId.
lsst::afw::table::IdFactory::IdFactory
IdFactory(IdFactory &&)=default
lsst::afw::table::IdFactory::~IdFactory
virtual ~IdFactory()=default
lsst::afw::table::IdFactory::computeReservedFromMaxBits
static int computeReservedFromMaxBits(int maxBits)
Return the number to pass as the 'reserved' argument to makeSource for an exposure ID with the given ...
Definition
IdFactory.h:57
lsst::afw::table::IdFactory::makeSimple
static std::shared_ptr< IdFactory > makeSimple()
Return a simple IdFactory that simply counts from 1.
Definition
IdFactory.cc:70
lsst::afw::table::IdFactory::notify
virtual void notify(RecordId id)=0
Notify the IdFactory that the given ID has been used and must not be returned by operator().
lsst::afw::table::IdFactory::clone
virtual std::shared_ptr< IdFactory > clone() const =0
Deep-copy the IdFactory.
lsst::afw::table::IdFactory::operator=
IdFactory & operator=(IdFactory const &other)=delete
lsst::afw::table::IdFactory::operator=
IdFactory & operator=(IdFactory &&other)=delete
lsst::afw::table::IdFactory::IdFactory
IdFactory()=default
lsst::afw::table::IdFactory::IdFactory
IdFactory(IdFactory const &)=default
lsst::afw::table::IdFactory::makeSource
static std::shared_ptr< IdFactory > makeSource(RecordId expId, int reserved)
Return an IdFactory that includes another, fixed ID in the higher-order bits.
Definition
IdFactory.cc:72
std::is_signed
misc.h
lsst::afw::table
Definition
table.dox:3
lsst::afw::table::RecordId
std::int64_t RecordId
Type used for unique IDs for records.
Definition
misc.h:21
lsst::afw
Definition
imageAlgorithm.dox:1
lsst
std::shared_ptr
Generated on
for lsst.afw by
1.17.0