8#ifndef CO_VRMSController_H
9#define CO_VRMSController_H
27typedef void pthread_barrier_t;
35#include <util/coTypes.h>
39#define CLUSTER_MARK() \
41 coVRMSController::msController->checkMark(__FILE__, __LINE__);
43#define CLUSTER_MARK() ;
45#define UDP_MESSAGE_HEADER_SIZE 3 *sizeof(int)
53#define MAX_NUMBER_OF_SLAVES 256
114 coVRMSController(
const MPI_Comm *comm, pthread_barrier_t *shmBarrier =
nullptr);
130 return (numSlaves > 0);
187 return numSlaves + 1;
192 return this->numSlaves;
195 void heartBeat(
const std::string &name =
"unnamed",
bool draw =
false);
201 MPI_Comm getAppCommunicator()
const
203 return this->appComm;
208 bool debugLevel(
int l)
const;
219 bool m_drawStatistics;
221 int multicastDebugLevel;
222 std::string multicastAddress;
224 std::string multicastInterface;
228 unsigned int multicastBufferSpace;
229 int multicastBlockSize;
230 int multicastNumParity;
231 unsigned int multicastTxCacheSize;
232 int multicastTxCacheMin;
233 int multicastTxCacheMax;
235 double multicastBackoffFactor;
236 int multicastSockBuffer;
237 int multicastClientTimeout;
238 int multicastServerTimeout;
239 int multicastRetryTimeout;
240 int multicastMaxLength;
243 covise::Socket *socket;
244 covise::Socket *socketDraw;
253 std::vector<int> drawRank;
254 pthread_barrier_t *pthreadShmBarrier =
nullptr;
257 int heartBeatCounter, heartBeatCounterDraw;
#define MAX_NUMBER_OF_SLAVES
Definition: coVRMSController.h:53
Definition: ARToolKit.h:33
Definition: coTabletUI.h:51
Definition: coClusterStat.h:63
Definition: coVRMSController.h:61
bool drawStatistics() const
void connectToMaster(const char *addr, int port)
int readSlavesDraw(void *c, int n)
void checkMark(const char *file, int line)
void waitForParallelJoin()
int readMaster(covise::Message *msg)
int readMaster(covise::UdpMessage *msg)
bool isMaster() const
Definition: coVRMSController.h:120
void syncApp(int frameNum)
void heartBeat(const std::string &name="unnamed", bool draw=false)
void syncStringStop(std::string name)
static coVRMSController * instance()
void sendSlaves(const void *c, int n)
bool isSlave() const
Definition: coVRMSController.h:124
int readMasterDraw(void *c, int n)
coVRMSController(int AmyID=-1, const char *addr=NULL, int port=0)
@ SYNC_TCP_SERIAL
Definition: coVRMSController.h:68
@ SYNC_SERIAL
Definition: coVRMSController.h:67
@ SYNC_MULTICAST
Definition: coVRMSController.h:70
@ SYNC_UDP
Definition: coVRMSController.h:66
@ SYNC_MPI
Definition: coVRMSController.h:71
@ SYNC_PARA
Definition: coVRMSController.h:69
void sendSlaves(const covise::UdpMessage *msg)
void setDrawStatistics(bool enable)
bool isCluster() const
Definition: coVRMSController.h:128
std::string syncString(const std::string &s)
int getID()
Definition: coVRMSController.h:152
void sendSlaves(const SlaveData &c)
int readMaster(void *c, int n)
int readSlaves(SlaveData *c)
void sendMaster(const covise::Message *msg)
int syncMessage(covise::Message *msg)
void sendMasterDraw(const void *c, int n)
void sendMaster(const void *c, int n)
int clusterSize()
Definition: coVRMSController.h:185
void sendSlavesDraw(const void *c, int n)
int readMasterDraw(void *c, int n, bool mcastOverTCP)
void loadFile(const char *filename)
int readMaster(void *c, int n, bool mcastOverTCP)
void syncFloat(float value)
@ AppTag
Definition: coVRMSController.h:82
int readSlave(int slaveNum, void *data, int num)
void sendSlaves(const covise::Message *msg)
void sendMaster(const std::string &s)
void sendSlave(int i, const void *c, int n)
void readSlave(int i, std::string &s)
int syncData(void *data, int size)
int getNumSlaves() const
Definition: coVRMSController.h:190
Definition: coVRMSController.h:87
int size() const
Definition: coVRMSController.h:99
std::vector< void * > data
Definition: coVRMSController.h:96
Definition: coVRSlave.h:38
Definition: rel_mcast-old.h:198