lsst.astshim
gf5dcc679e7+7aca86229d
Toggle main menu visibility
Loading...
Searching...
No Matches
include
astshim
Table.h
Go to the documentation of this file.
1
/*
2
* LSST Data Management System
3
* Copyright 2017 AURA/LSST.
4
*
5
* This product includes software developed by the
6
* LSST Project (http://www.lsst.org/).
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the LSST License Statement and
19
* the GNU General Public License along with this program. If not,
20
* see <https://www.lsstcorp.org/LegalNotices/>.
21
*/
22
#ifndef ASTSHIM_TABLE_H
23
#define ASTSHIM_TABLE_H
24
25
#include <complex>
26
#include <string>
27
#include <vector>
28
29
#include "
astshim/base.h
"
30
#include "
astshim/Object.h
"
31
#include "
astshim/KeyMap.h
"
32
33
namespace
ast
{
34
35
class
Table
:
public
KeyMap
{
36
friend
class
Object
;
37
38
public
:
39
explicit
Table
(
std::string
const
&options =
""
)
40
:
KeyMap
(reinterpret_cast<AstKeyMap *>(astTable(
"%s"
, options.c_str()))) {
41
assertOK
();;
42
}
43
44
virtual
~Table
(){};
45
46
Table
(
Table
const
&) =
default
;
47
Table
(
Table
&&) =
default
;
48
Table
&
operator=
(
Table
const
&) =
delete
;
49
Table
&
operator=
(
Table
&&) =
default
;
50
51
std::string
columnName
(
int
index)
const
{
52
std::string
name = astColumnName(
getRawPtr
(), index);
53
assertOK
();
54
return
name;
55
}
56
57
DataType
columnType
(
std::string
const
&column)
const
{
58
int
retVal =
Object::getI
(
"ColumnType("
+ column +
")"
);
59
assertOK
();
60
return
static_cast<
DataType
>
(retVal);
61
}
62
63
int
columnLength
(
std::string
const
&column)
const
{
64
int
retVal =
Object::getI
(
"ColumnLength("
+ column +
")"
);
65
assertOK
();
66
return
retVal;
67
}
68
69
int
columnLenC
(
std::string
const
&column)
const
{
70
int
retVal =
Object::getI
(
"ColumnLenC("
+ column +
")"
);
71
assertOK
();
72
return
retVal;
73
}
74
75
int
columnNdim
(
std::string
const
&column)
const
{
76
int
retVal =
Object::getI
(
"ColumnNdim("
+ column +
")"
);
77
assertOK
();
78
return
retVal;
79
}
80
81
std::string
columnUnit
(
std::string
const
&column)
const
{
82
std::string
retVal =
Object::getC
(
"ColumnUnit("
+ column +
")"
);
83
assertOK
();
84
return
retVal;
85
}
86
87
std::vector<int>
columnShape
(
std::string
const
&column) {
88
int
const
mxdim =
columnNdim
(column);
89
std::vector<int>
dims(mxdim);
90
if
(mxdim > 0) {
91
int
ndim;
92
astColumnShape(
getRawPtr
(), column.
c_str
(), mxdim, &ndim, dims.
data
());
93
}
94
assertOK
();
95
return
dims;
96
}
97
101
int
getNColumn
()
const
{
return
Object::getI
(
"NColumn"
); }
102
106
int
getNRow
()
const
{
return
Object::getI
(
"NRow"
); }
107
108
protected
:
109
113
explicit
Table
(AstTable *rawTable) :
KeyMap
(reinterpret_cast<AstKeyMap *>(rawTable)) {
114
if
(!astIsATable(
getRawPtr
())) {
115
std::ostringstream
os;
116
os <<
"this is a "
<<
getClassName
() <<
", which is not a Table"
;
117
throw
std::invalid_argument
(os.
str
());
118
}
119
assertOK
();
120
}
121
122
};
123
124
}
// namespace ast
125
126
#endif
KeyMap.h
Object.h
base.h
std::ostringstream
std::string
std::string::c_str
T c_str(T... args)
ast::KeyMap::KeyMap
KeyMap(std::string const &options="")
Construct an empty KeyMap.
Definition
KeyMap.h:93
ast::Object::getC
std::string const getC(std::string const &attrib) const
Get the value of an attribute as a string.
Definition
Object.h:361
ast::Object::getClassName
std::string getClassName() const
Get Class: the name of the class (e.g.
Definition
Object.h:139
ast::Object::getI
int getI(std::string const &attrib) const
Get the value of an attribute as an int.
Definition
Object.cc:180
ast::Object::getRawPtr
AstObject const * getRawPtr() const
Get the raw AST pointer.
Definition
Object.h:292
ast::Table::Object
friend class Object
Definition
Table.h:36
ast::Table::Table
Table(AstTable *rawTable)
Construct a Table from a raw AstTable.
Definition
Table.h:113
ast::Table::operator=
Table & operator=(Table const &)=delete
ast::Table::columnShape
std::vector< int > columnShape(std::string const &column)
Definition
Table.h:87
ast::Table::columnType
DataType columnType(std::string const &column) const
Definition
Table.h:57
ast::Table::operator=
Table & operator=(Table &&)=default
ast::Table::~Table
virtual ~Table()
Definition
Table.h:44
ast::Table::columnNdim
int columnNdim(std::string const &column) const
Definition
Table.h:75
ast::Table::columnLenC
int columnLenC(std::string const &column) const
Definition
Table.h:69
ast::Table::columnName
std::string columnName(int index) const
Definition
Table.h:51
ast::Table::columnLength
int columnLength(std::string const &column) const
Definition
Table.h:63
ast::Table::columnUnit
std::string columnUnit(std::string const &column) const
Definition
Table.h:81
ast::Table::Table
Table(Table &&)=default
ast::Table::getNRow
int getNRow() const
Get NRow: The number of rows currently in the Table.
Definition
Table.h:106
ast::Table::getNColumn
int getNColumn() const
Get NColumn: The number of columns currently in the Table.
Definition
Table.h:101
ast::Table::Table
Table(std::string const &options="")
Definition
Table.h:39
ast::Table::Table
Table(Table const &)=default
std::vector::data
T data(T... args)
std::invalid_argument
ast
AST wrapper classes and functions.
Definition
attributes_channel.dox:1
ast::DataType
DataType
Data types held by a KeyMap.
Definition
base.h:62
ast::assertOK
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Throw std::runtime_error if AST's state is bad.
Definition
base.cc:49
std::ostringstream::str
T str(T... args)
std::vector
Generated on
for lsst.astshim by
1.17.0