00001
00002 #if !defined(oagFpgaOccRef_P)
00003 #define oagFpgaOccRef_P
00004
00005 #include <stdlib.h>
00006
00007 #include "oaDesignDB.h"
00008 #include "oagFpgaModRef.h"
00009 #include "oagFpgaRtlGraph.h"
00010
00011 namespace oagFpga {
00012
00013
00014
00015
00019
00020
00021
00022 class OccRef {
00023 public:
00024 OccRef() {
00025 ref = 0; occurrence = NULL;
00026 }
00027 OccRef(const OccRef ©) {
00028 ref = copy.ref; occurrence = copy.occurrence;
00029 }
00030 OccRef(BBRef a, oa::oaOccurrence *o) {
00031 ref = a; occurrence = o;
00032 }
00033
00034 oagAi::Ref ref;
00035 oa::oaOccurrence *occurrence;
00036
00037 bool operator<(const OccRef &comp) const {
00044
00045 if (occurrence != comp.occurrence)
00046 return occurrence<comp.occurrence;
00047 else
00048 return ref<comp.ref;
00049 }
00050 bool operator==(const OccRef &comp) const {
00051 return occurrence == comp.occurrence && ref == comp.ref;
00052 }
00053 bool operator!=(const OccRef &comp) const {
00054 return occurrence != comp.occurrence || ref != comp.ref;
00055 }
00056
00057 ModRef getModRef() {
00059 return ModRef(ref, occurrence->getModule());
00060 }
00061
00062 void printName(bool lineFeed = true);
00063 void print(bool lineFeed = true);
00064 };
00065
00066 }
00067
00068 #endif