OpenADFortTk (including Open64 and OpenAnalysis references)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
LocFieldSubSet.hpp
Go to the documentation of this file.
1 
14 #ifndef LocFieldSubSet_H
15 #define LocFieldSubSet_H
16 
17 #include "LocSubSet.hpp"
18 
19 namespace OA {
20 
27 class LocFieldSubSet : public LocSubSet {
28  public:
30  : LocSubSet(loc), mFieldName(fieldName) { }
31 
34  : LocSubSet(other), mFieldName(other.mFieldName) {}
35 
37 
38  void acceptVisitor(LocationVisitor& pVisitor);
39 
40  //*****************************************************************
41  // LocSubSet subclass type methods
42  //*****************************************************************
43  bool isaFieldSubSet() { return true; }
44 
45  //*****************************************************************
46  // Info methods
47  //*****************************************************************
48  bool isFull() { return false; }
49  string getFieldName() { return mFieldName;}
50 
51  //*****************************************************************
52  // Relationship methods, will be defined in subclasses
53  //*****************************************************************
54  bool operator<(Location & other);
55  bool operator==(Location& other);
56 
57  bool mayOverlap(Location& other);
58 
59  bool mustOverlap(Location& other);
60 
61  bool subSetOf(Location& other);
62 
63  //*****************************************************************
64  // Annotation Interface
65  //*****************************************************************
66  void output(IRHandlesIRInterface& ir);
67 
68  //*****************************************************************
69  // Debugging
70  //*****************************************************************
71  void dump(std::ostream& os);
72  void dump(std::ostream& os, OA_ptr<IRHandlesIRInterface> pIR);
73 
75 
76  virtual int getOrder() { return sOrder; }
77 
78  private:
79  string mFieldName;
80  static const int sOrder = 500;
81 };
82 
83 } // end namespace
84 #endif