LSST Applications 30.0.7,g0e76e35be5+e8e946ae08,g19811a7679+138f7293ba,g199a45376c+5e234f8357,g1fd858c14a+2f48dbc4c4,g262e1987ae+fb36cac54d,g29ae962dfc+d9108a0941,g2c21b0017a+4f59a27f16,g31e44d4a5c+b0138be388,g33ac35c1f1+28b9f72785,g35bb328faa+b0138be388,g40c9b15c53+823ad735c1,g47891489e3+bcc48a0b46,g53246c7159+b0138be388,g64539dfbff+e8e946ae08,g67b6fd64d1+bcc48a0b46,g74acd417e5+422380537a,g76965917b2+a5ca99c4d9,g786e29fd12+796b79145d,g7aefaa3e3d+dc0c200193,g86b635cae8+734fe384f0,g87389fa792+d8b5378923,g89139ef638+bcc48a0b46,g8bbb235e95+3f4f7f9447,g8ea07a8fe4+78a4c88802,g9290983e33+ffdc83c6f7,g92c671f44c+e8e946ae08,gaa753fd333+03f406da14,gbf99507273+b0138be388,gc49b57b85e+8df26ee1f0,gca7fc764a6+bcc48a0b46,gd7ef33dd92+bcc48a0b46,gdab6d2f7ff+422380537a,ge1c02a5578+b0138be388,ge410e46f29+bcc48a0b46,ge80df9fc40+e6db5413d1,geaed405ab2+1de65a85c6,gf5dcc679e7+35a0ce2edd,gf5f1c85443+e8e946ae08
LSST Data Management Base Package
Loading...
Searching...
No Matches
ParallelMap.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_PARALLELMAP_H
23#define ASTSHIM_PARALLELMAP_H
24
25#include <memory>
26#include <sstream>
27#include <stdexcept>
28
29#include "astshim/base.h"
30#include "astshim/CmpMap.h"
31
32namespace ast {
33
53class ParallelMap : public CmpMap {
54 friend class Object;
55
56public:
69 explicit ParallelMap(Mapping const &map1, Mapping const &map2, std::string const &options = "")
70 : CmpMap(map1, map2, false, options) {}
71
72 virtual ~ParallelMap() {}
73
75 ParallelMap(ParallelMap const &) = default;
76 ParallelMap(ParallelMap &&) = default;
77 ParallelMap &operator=(ParallelMap const &) = delete;
79
84
85protected:
86 virtual std::shared_ptr<Object> copyPolymorphic() const override {
88 }
89
92 explicit ParallelMap(AstCmpMap *rawptr) : CmpMap(rawptr) {
93 if (getSeries()) {
94 throw std::runtime_error("Compound mapping is in series");
95 }
96 }
97};
98
99} // namespace ast
100
101#endif
bool getSeries()
Return True if the map is in series.
Definition CmpMap.h:104
CmpMap(Mapping const &map1, Mapping const &map2, bool series, std::string const &options="")
Construct a CmpMap.
Definition CmpMap.h:77
An abstract base class for objects which transform one set of coordinates to another.
Definition Mapping.h:59
std::shared_ptr< T > copyImpl() const
Implementation of deep copy.
Definition Object.h:320
friend class Object
Definition ParallelMap.h:54
ParallelMap(ParallelMap const &)=default
Copy constructor: make a deep copy.
ParallelMap(ParallelMap &&)=default
virtual ~ParallelMap()
Definition ParallelMap.h:72
std::shared_ptr< ParallelMap > copy() const
Return a deep copy of this object.
Definition ParallelMap.h:81
virtual std::shared_ptr< Object > copyPolymorphic() const override
Return a deep copy of this object.
Definition ParallelMap.h:86
ParallelMap & operator=(ParallelMap &&)=default
ParallelMap(Mapping const &map1, Mapping const &map2, std::string const &options="")
Construct a ParallelMap.
Definition ParallelMap.h:69
ParallelMap & operator=(ParallelMap const &)=delete
ParallelMap(AstCmpMap *rawptr)
Construct a ParallelMap from a raw AST pointer.
Definition ParallelMap.h:92
AST wrapper classes and functions.
T static_pointer_cast(T... args)