Go to the documentation of this file.
13 #include "MemoryClustering.h"
38 mClusterAddress.HThread = 0,
39 mClusterAddress.Reserved = 0,
40 mClusterAddress.Rack= 0,
41 mClusterAddress.Topology= 0,
42 mClusterAddress.Card= 0,
43 mClusterAddress.Cluster = MAX_CLUSTERS_LIMIT,
46 mClusterAddress.Status = CS;
67 YPosition_Get(
void){
return Y*2 +moduloN(X,2); }
79 if(!(GP))
return false;
81 if( (X == GP->
X) && (abs(YPosition_Get() - GP->YPosition_Get()) == 2))
return true;
83 return( (abs(X - GP->
X) == 1) && (abs(YPosition_Get() - GP->YPosition_Get()) == 1) );
95 if(!(GP))
return false;
98 if( (abs(X - GP->
X)== 0) && (abs(YPosition_Get() - GP->YPosition_Get()) == 4))
return true;
100 if( (abs(X - GP->
X)== 2) && (abs(YPosition_Get() - GP->YPosition_Get()) == 0))
return true;
102 if( (abs(X - GP->
X) == 1) && (abs(YPosition_Get() - GP->YPosition_Get()) == 3) )
return true;
104 if( (abs(X - GP->
X) == 2) && (abs(YPosition_Get() - GP->YPosition_Get()) == 2) )
return true;
116 if(!GP)
return false;
127 if(!GP)
return false;
137 StringOfProxy_Get(
void
141 if(CA.
Proxy) {oss <<
":" << ClusterMembers[CA.
Proxy].name;}
169 oss <<
'{' << (int16_t)X <<
',' << (int16_t)YPosition_Get() <<
'}' <<
'=';
173 if(CA.
Proxy) {oss <<
":" << ClusterMembers[CA.
Proxy].name;}
175 if(CA.
HThread) oss <<
'/' << StringOfThread_Get();
181 #endif // GRIDPOINT_H
bool Is2ndNeighborOf(GridPoint *GP)
Return true if we are a second neighbor of GP.
Definition: GridPoint.h:93
int8_t Y
The Y index of the gridpont.
Definition: GridPoint.h:63
void ClusterAddressHThread_Set(int H)
Set the cluster address of the gridpoint.
Definition: GridPoint.h:57
This class handles the topological information for the modules. Provides a lot of math-only utility f...
Definition: GridPoint.h:33
string StringOfClusterAddressName_Get(void)
Return the string form of our cluster address.
Definition: GridPoint.h:166
The scHThread class.
Definition: scHThread.h:138
string StringOfThread_Get()
Return the string describing the actual thread.
Definition: GridPoint.h:150
ClusterStatus ClusterStatus_Get(void)
Return the status of the gridpoint.
Definition: GridPoint.h:59
ClusterAddress_t mClusterAddress
The ClusterAddress_t address of the gridpoint.
Definition: GridPoint.h:65
uint32_t Cluster
The sequence number of the cluster.
Definition: Clustering.h:62
A GridPoint can be addressed also by its cluster address of type ClusterAddress_t....
Definition: Clustering.h:58
@ cs_NONE
not specified (untouched)
Definition: Clustering.h:25
ClusterAddress_t ClusterAddress_Get(void)
< Return the cluster address of the gridpoint, stored in the matrix
Definition: GridPoint.h:53
uint32_t Proxy
Reachable through this neighbor (Relative to the core)
Definition: Clustering.h:61
bool IsNeighborOf(GridPoint *GP)
Return true if we are an immediate neighbor of GP.
Definition: GridPoint.h:77
void ClusterAddress_Set(ClusterAddress_t CA)
Set the cluster address of the gridpoint.
Definition: GridPoint.h:55
bool IsTheSameAs(GridPoint *GP)
Return true if GridPoint GP is identical with us.
Definition: GridPoint.h:114
bool IsInTheSameClusterAs(GridPoint *GP)
Return true if we and GridPoint GP are in the same cluster.
Definition: GridPoint.h:125
@ cm_Head
The central gridpoint.
Definition: Clustering.h:35
uint32_t HThread
The 'hardware thread' the module handles.
Definition: Clustering.h:59
int8_t X
The X index of the gridpont.
Definition: GridPoint.h:62
ClusterStatus
The gridpoints can be the head of the cluster, a member of a cluster, or neither (stand-alone)
Definition: Clustering.h:24
void ClusterStatus_Set(ClusterStatus CS)
Set the cstatus of the gridpoint.
Definition: GridPoint.h:61
uint32_t Member
Definition: Clustering.h:60