OpenCOVER
coVRSlave.h
Go to the documentation of this file.
1/* This file is part of COVISE.
2
3 You can use it under the terms of the GNU Lesser General Public License
4 version 2.1 or later, see lgpl-2.1.txt.
5
6 * License: LGPL 2+ */
7
8#ifndef CO_VRSlave_H
9#define CO_VRSlave_H
10
24#ifdef HAS_MPI
25#include <mpi.h>
26#endif
27
28namespace covise
29{
30class Socket;
31class Message;
32}
33#include <util/coTypes.h>
34
35namespace opencover
36{
37class COVEREXPORT coVRSlave
38{
39public:
40 coVRSlave(int ID);
41 virtual ~coVRSlave();
42
43 int getID()
44 {
45 return myID;
46 }
47
48 virtual void start() = 0;
49 virtual void accept() = 0;
50 virtual int read(void *c, int n) = 0;
51 virtual int send(const void *c, int n) = 0;
52 virtual int readDraw(void *c, int n) = 0;
53 virtual int sendDraw(const void *c, int n) = 0;
54
55 virtual int readMessage(covise::Message *msg);
56 virtual int sendMessage(const covise::Message *msg);
57
58 virtual void sendMessage(const covise::UdpMessage* msg);
59 virtual int readMessage(covise::UdpMessage* msg);
60
61protected:
62 int myID;
63};
64
65class COVEREXPORT coVRTcpSlave : public coVRSlave
66{
67public:
68 coVRTcpSlave(int ID);
69 virtual ~coVRTcpSlave();
70 virtual void start();
71 virtual void accept();
72 virtual int read(void *c, int n);
73 virtual int send(const void *c, int n);
74 virtual int readDraw(void *c, int n);
75 virtual int sendDraw(const void *c, int n);
76
77private:
78 int port;
79 int port2;
80 covise::Socket *socket;
81 covise::Socket *socketDraw;
82};
83
84#ifdef HAS_MPI
85class COVEREXPORT coVRMpiSlave : public coVRSlave
86{
87public:
88 coVRMpiSlave(int ID, MPI_Comm appComm, int drawRank, MPI_Comm drawComm);
89 virtual ~coVRMpiSlave();
90 virtual void start();
91 virtual void accept();
92 virtual int read(void *c, int n);
93 virtual int send(const void *c, int n);
94 virtual int readDraw(void *c, int n);
95 virtual int sendDraw(const void *c, int n);
96
97 virtual int readMessage(covise::Message *msg);
98 virtual int sendMessage(const covise::Message *msg);
99
100private:
101 MPI_Comm appComm;
102 MPI_Comm drawComm;
103 int drawRank = -1;
104};
105#endif
106}
107#endif
Definition: ARToolKit.h:33
Definition: coTabletUI.h:51
Definition: coVRSlave.h:38
virtual int sendMessage(const covise::Message *msg)
virtual int readMessage(covise::UdpMessage *msg)
virtual int readDraw(void *c, int n)=0
virtual int send(const void *c, int n)=0
virtual void sendMessage(const covise::UdpMessage *msg)
int getID()
Definition: coVRSlave.h:43
virtual int readMessage(covise::Message *msg)
virtual void accept()=0
int myID
Definition: coVRSlave.h:62
virtual int sendDraw(const void *c, int n)=0
virtual void start()=0
virtual int read(void *c, int n)=0
Definition: coVRSlave.h:66
virtual void accept()
virtual void start()
virtual int send(const void *c, int n)
virtual int read(void *c, int n)
virtual int readDraw(void *c, int n)
virtual int sendDraw(const void *c, int n)