OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
RangeRep.cpp
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2// $RCSfile: RangeRep.cpp,v $
3// ------------------------------------------------------------------------
4// $Revision: 1.2 $
5// ------------------------------------------------------------------------
6// Copyright: see Copyright.readme
7// ------------------------------------------------------------------------
8//
9// Class: RangeRep
10// A class used to represent a range specification.
11//
12// ------------------------------------------------------------------------
13//
14// $Date: 2001/08/13 15:05:47 $
15// $Author: jowett $
16//
17// ------------------------------------------------------------------------
18
20#include <iostream>
22
23// Class RangeRep
24// ------------------------------------------------------------------------
25
26RangeRep::RangeRep() : first(), last(), fullRange(true) {}
27
29 : first(rep.first), last(rep.last), fullRange(rep.fullRange) {}
30
31RangeRep::RangeRep(PlaceRep& fst, PlaceRep& lst) : first(fst), last(lst), fullRange(false) {}
32
34
36 first = rep.first;
37 last = rep.last;
38 fullRange = rep.fullRange;
39 return *this;
40}
41
43 if (!fullRange) {
46 status = false;
47 } else {
48 status = true;
49 }
50}
51
52bool RangeRep::isActive() const { return status; }
53
54void RangeRep::enter(const FlaggedElmPtr& fep) const {
55 if (!fullRange) {
56 // Enter range, if we are in first element.
57 first.enter(fep);
58 if (first.isActive()) status = true;
59 last.enter(fep);
60 }
61}
62
63void RangeRep::leave(const FlaggedElmPtr& fep) const {
64 if (!fullRange) {
65 // Leave range, if we are in last element.
66 if (last.isActive()) status = false;
67 first.leave(fep);
68 last.leave(fep);
69 }
70}
71
72void RangeRep::print(std::ostream& os) const {
73 if (fullRange) {
74 os << "FULL";
75 } else {
76 first.print(os);
77 os << '/';
78 last.print(os);
79 }
80
81 return;
82}
A section of a beam line.
Representation of a place within a beam line or sequence.
Definition PlaceRep.h:40
bool isActive() const
Return status.
Definition PlaceRep.cpp:78
void print(std::ostream &os) const
Print in input format.
Definition PlaceRep.cpp:82
void initialize()
Initialise data for search.
Definition PlaceRep.cpp:51
void enter(const FlaggedElmPtr &) const
Enter an element or line.
Definition PlaceRep.cpp:56
void leave(const FlaggedElmPtr &) const
Leave an element or line.
Definition PlaceRep.cpp:67
Representation of a range within a beam line or sequence.
Definition RangeRep.h:33
PlaceRep first
Definition RangeRep.h:67
bool isActive() const
Test for active range.
Definition RangeRep.cpp:52
const RangeRep & operator=(const RangeRep &)
Definition RangeRep.cpp:35
void initialize()
Initialise data for search.
Definition RangeRep.cpp:42
PlaceRep last
Definition RangeRep.h:68
bool fullRange
Definition RangeRep.h:71
void print(std::ostream &os) const
Print in input format.
Definition RangeRep.cpp:72
void leave(const FlaggedElmPtr &) const
Leave an element or line.
Definition RangeRep.cpp:63
bool status
Definition RangeRep.h:74
RangeRep()
Default constructor.
Definition RangeRep.cpp:26
void enter(const FlaggedElmPtr &) const
Enter an element or line.
Definition RangeRep.cpp:54