7#include <boost/asio/ip/address.hpp>
8#include <boost/asio/ip/address_v6.hpp>
9#include <boost/asio/ip/address_v4.hpp>
30class AvailableModuleBase;
48 typedef std::array<char, 32> mac_t;
51 Identify(
const std::string &name =
"");
54 Identity identity()
const;
55 const char *name()
const;
58 int boost_archive_version()
const;
60 void setNumRanks(
int size);
63 bool verifyMac(
bool compareSessionData =
true)
const;
70 int m_boost_archive_version;
71 session_data_t m_session_data;
81 AddHub(
int id,
const std::string &name);
83 const char *name()
const;
84 const char *loginName()
const;
85 const char *realName()
const;
87 unsigned short port()
const;
88 unsigned short dataPort()
const;
89 AddressType addressType()
const;
90 bool hasAddress()
const;
91 std::string host()
const;
92 boost::asio::ip::address address()
const;
93 boost::asio::ip::address_v6 addressV6()
const;
94 boost::asio::ip::address_v4 addressV4()
const;
96 void setNumRanks(
int size);
97 void setPort(
unsigned short port);
98 void setDataPort(
unsigned short port);
99 void setAddress(boost::asio::ip::address addr);
100 void setAddress(boost::asio::ip::address_v6 addr);
101 void setAddress(boost::asio::ip::address_v4 addr);
103 void setLoginName(
const std::string &login);
104 void setRealName(
const std::string &real);
106 bool hasUserInterface()
const;
107 void setHasUserInterface(
bool ui);
116 unsigned short m_port;
117 unsigned short m_dataPort;
118 AddressType m_addrType;
120 bool m_hasUserInterface;
138 char getCharacter()
const;
141 const char character;
149 char getCharacter()
const;
150 int getDestination()
const;
153 const char character;
160 Spawn(
int hubId,
const std::string &name,
int size = -1,
int baserank = -1,
int rankskip = -1);
162 void setMigrateId(
int id);
163 int migrateId()
const;
164 void setMirroringId(
int id);
165 int mirroringId()
const;
167 void setHubId(
int id);
169 void setSpawnId(
int id);
170 const char *getName()
const;
171 int getMpiSize()
const;
172 int getBaseRank()
const;
173 int getRankSkip()
const;
187 int m_migrateId = Id::Invalid;
189 int m_mirroringId = Id::Invalid;
202 const char *getName()
const;
216 Started(
const std::string &name);
218 const char *getName()
const;
230 int getModule()
const;
252 int getModule()
const;
264 bool isForwarded()
const;
284 int getModule() const;
285 void setExecutionCount(
int count);
286 int getExecutionCount() const;
288 bool allRanks() const;
289 void setAllRanks(
bool allRanks);
292 void setWhat(What r);
294 double animationRealTime() const;
295 double animationStepDuration() const;
303 double m_animationStepDuration;
311 int getModule()
const;
337 Port getPort()
const;
350 Port getPort()
const;
368 void setSenderPort(
const std::string &sendPort);
369 const char *getSenderPort()
const;
370 void setDestPort(
const std::string &destPort);
371 const char *getDestPort()
const;
372 const char *objectName()
const;
377 const Meta &meta()
const;
380 bool handleValid()
const;
383 bool isBlocker()
const;
384 void setUnblocking();
385 bool isUnblocking()
const;
395 mutable bool m_handleValid =
false;
396 bool m_blocker =
false;
397 bool m_unblock =
false;
403 const char *objectName()
const;
404 int originalDestination()
const;
405 const char *originalDestPort()
const;
416 Connect(
const int moduleIDA,
const std::string &portA,
const int moduleIDB,
const std::string &portB);
418 const char *getPortAName()
const;
419 const char *getPortBName()
const;
421 void setModuleA(
int id);
422 int getModuleA()
const;
423 void setModuleB(
int id);
424 int getModuleB()
const;
439 Disconnect(
const int moduleIDA,
const std::string &portA,
const int moduleIDB,
const std::string &portB);
441 const char *getPortAName()
const;
442 const char *getPortBName()
const;
444 void setModuleA(
int id);
445 int getModuleA()
const;
446 void setModuleB(
int id);
447 int getModuleB()
const;
464 const char *getName()
const;
465 const char *moduleName()
const;
466 const char *description()
const;
467 const char *group()
const;
468 int getParameterType()
const;
469 int getPresentation()
const;
470 std::shared_ptr<Parameter>
471 getParameter()
const;
487 const char *getName()
const;
488 const char *moduleName()
const;
489 int getParameterType()
const;
490 std::shared_ptr<Parameter>
491 getParameter()
const;
504 SetParameter(
int module,
const std::string &name,
const std::shared_ptr<Parameter> param,
513 bool isInitialization()
const;
515 bool isDelayed()
const;
517 int getModule()
const;
520 void setRangeType(
int rt);
521 int rangeType()
const;
523 const char *getName()
const;
524 int getParameterType()
const;
527 std::string getString()
const;
528 Float getFloat()
const;
532 bool apply(std::shared_ptr<Parameter> param)
const;
557 Payload(
const std::vector<std::string> &choices);
562 template<
class Archive>
571 const char *getName()
const;
574 bool apply(std::shared_ptr<Parameter> param,
const Payload &payload)
const;
613 Payload(
const std::string &text);
618 template<
class Archive>
629 TextType textType()
const;
630 Type referenceType()
const;
631 uuid_t referenceUuid()
const;
639 Type m_referenceType;
651 Payload(
const std::string &status);
656 template<
class Archive>
665 const char *text()
const;
667 Importance importance()
const;
668 Type statusType()
const;
674 Importance m_importance;
686 Policy policy()
const;
703 Schedule policy()
const;
719 (PerTimestepZeroFirst)
723 Reduce policy()
const;
743 Progress stage() const;
744 void setStage(Progress stage);
745 void setExecutionCount(
int count);
746 int getExecutionCount() const;
750 int m_executionCount;
759 Type messageType()
const;
772 const char *name()
const;
773 const char *path()
const;
811 RequestTunnel(
unsigned short srcPort, const std::
string &destHost,
unsigned short destPort);
813 RequestTunnel(
unsigned short srcPort, const
boost::asio::ip::address_v4 destHost,
unsigned short destPort);
815 RequestTunnel(
unsigned short srcPort, const
boost::asio::ip::address_v6 destHost,
unsigned short destPort);
817 RequestTunnel(
unsigned short srcPort,
unsigned short destPort);
821 void setDestAddr(
boost::asio::ip::address_v6 addr);
822 void setDestAddr(
boost::asio::ip::address_v4 addr);
823 unsigned short srcPort() const;
824 unsigned short destPort() const;
825 AddressType destType() const;
826 bool destIsAddress() const;
827 std::
string destHost() const;
828 boost::asio::ip::address destAddr() const;
829 boost::asio::ip::address_v6 destAddrV6() const;
830 boost::asio::ip::address_v4 destAddrV4() const;
834 unsigned short m_srcPort;
835 AddressType m_destType;
837 unsigned short m_destPort;
845 RequestObject(
int destId,
int destRank,
const std::string &objId,
const std::string &referrer);
846 RequestObject(
int destId,
int destRank,
const std::string &arrayId,
int type,
const std::string &referrer);
847 const char *objectId()
const;
848 const char *referrer()
const;
849 bool isArray()
const;
850 int arrayType()
const;
864 const char *objectId()
const;
865 const char *referrer()
const;
866 const Meta &meta()
const;
868 Meta objectMeta()
const;
869 bool isArray()
const;
877 int32_t m_block, m_numBlocks;
878 int32_t m_timestep, m_numTimesteps;
879 int32_t m_animationstep, m_numAnimationsteps;
881 int32_t m_executionCount;
891 FileQuery(
int moduleId, const std::
string &path, Command cmd,
size_t payloadsize = 0);
892 Command command() const;
893 int moduleId() const;
894 const
char *path() const;
895 void setFilebrowserId(
int id);
896 int filebrowserId() const;
901 int m_filebrowser = -1;
909 const
char *path() const;
911 Status status() const;
912 int filebrowserId() const;
924 size_t numTransferring()
const;
927 long m_numTransferring;
933 Cover(
int mirror,
int subtype);
936 int mirrorId()
const;
944template<
class Payload>
946template<
class Payload>
964 const char *reason()
const;
#define ARCHIVE_ACCESS
Definition: archives_config.h:465
Definition: availablemodule.h:19
std::shared_ptr< const Object > const_ptr
Definition: object.h:68
Type
Definition: object.h:84
@ UNKNOWN
Definition: object.h:89
Definition: paramvector.h:18
Definition: parameter.h:26
Minimum() Value(Maximum)) Parameter(int moduleId
announce that a (slave) hub has connected
Definition: messages.h:77
Definition: messages.h:400
add an object to the input queue of an input port
Definition: messages.h:359
notification that a module has created a parameter
Definition: messages.h:460
notification that a module has created an input/output port
Definition: messages.h:334
Definition: messages.h:586
Definition: messages.h:581
indicate that a module has started computing
Definition: messages.h:318
trigger execution of a module function
Definition: messages.h:308
terminate a socket connection
Definition: messages.h:961
connect an output port to an input port of another module
Definition: messages.h:414
wrap a COVISE message sent by COVER
Definition: messages.h:931
Definition: messages.h:790
Definition: messages.h:921
request a module to quit
Definition: messages.h:248
disconnect an output port from an input port of another module
Definition: messages.h:437
trigger execution of a module function
Definition: messages.h:271
DEFINE_ENUM_WITH_STRING_CONVERSIONS(What,(Prepare)(ComputeExecute)(ComputeObject)(Reduce)) Execute(What what
steer execution stages
Definition: messages.h:736
DEFINE_ENUM_WITH_STRING_CONVERSIONS(Progress,(Start)(Finish)) ExecutionProgress(Progress stage
Definition: messages.h:905
DEFINE_ENUM_WITH_STRING_CONVERSIONS(Status,(Ok)(Error)(DoesNotExist)(NoPermission)) FileQueryResult(const FileQuery &request
Definition: messages.h:886
DEFINE_ENUM_WITH_STRING_CONVERSIONS(Command,(SystemInfo)(LookUpFiles)(ReadDirectory)(MakeDirectory)) FileQuery(int moduleId
indicate the kind of a communication partner
Definition: messages.h:34
Identify(const Identify &request, Identity id, const std::string &name="")
DEFINE_ENUM_WITH_STRING_CONVERSIONS(Identity,(UNKNOWN)(REQUEST)(UI)(MANAGER)(HUB)(SLAVEHUB)(LOCALBULKDATA)(REMOTEBULKDATA)(RENDERSERVER)(RENDERCLIENT)) typedef std typedef std::array< char, 64 > session_data_t
Definition: messages.h:36
indicate that a module has finished computing
Definition: messages.h:326
request a module to quit
Definition: messages.h:226
lock UI (block user interaction)
Definition: messages.h:797
Definition: message.h:327
Definition: message.h:157
static const size_t MESSAGE_SIZE
Definition: message.h:161
announce availability of a module to UI
Definition: messages.h:783
notify that a module has quit
Definition: messages.h:260
control where AddObject messages are sent
Definition: messages.h:682
DEFINE_ENUM_WITH_STRING_CONVERSIONS(Policy,(Local)(Master)(Distribute)) ObjectReceivePolicy(Policy pol)
debug: request a reply containing character 'c'
Definition: messages.h:134
debug: reply to pong
Definition: messages.h:145
request all modules to quit for terminating the session
Definition: messages.h:238
control whether/when prepare() and reduce() are called
Definition: messages.h:711
DEFINE_ENUM_WITH_STRING_CONVERSIONS(Reduce,(Never)(Locally)(PerTimestep)(PerTimestepOrdered)(PerTimestepZeroFirst)(OverAll)) ReducePolicy(Reduce red)
request that a slave hub be deleted
Definition: messages.h:124
notification that a module has removed a parameter
Definition: messages.h:483
notification that a module has destroyed an input/output port
Definition: messages.h:347
Definition: messages.h:601
request remote data object
Definition: messages.h:842
request hub to listen on TCP port and forward incoming connections
Definition: messages.h:807
DEFINE_ENUM_WITH_STRING_CONVERSIONS(AddressType,(Hostname)(IPv4)(IPv6)(Unspecified)) RequestTunnel(unsigned short srcPort
establish tunnel - let hub forward incoming connections to srcPort to destHost::destPort
Definition: messages.h:693
DEFINE_ENUM_WITH_STRING_CONVERSIONS(Schedule,(Ignore)(Single)(Gang)(LazyGang)) SchedulingPolicy(Schedule pol)
header for data object transmission
Definition: messages.h:860
send text messages to user interfaces
Definition: messages.h:607
DEFINE_ENUM_WITH_STRING_CONVERSIONS(TextType,(Cout)(Cerr)(Clog)(Info)(Warning)(Error)) struct V_COREEXPORT Payload
Definition: messages.h:609
Definition: messages.h:591
set list of choice descriptions for a choice parameter
Definition: messages.h:553
int getNumChoices() const
request parameter value update or notify that a parameter value has been changed
Definition: messages.h:501
notification of manager that spawning is possible (i.e. shmem has been set up)
Definition: messages.h:195
spawn a module
Definition: messages.h:158
acknowledge that a module has been spawned
Definition: messages.h:214
enable/disable message tracing for a module
Definition: messages.h:755
update status of a module (or other entity)
Definition: messages.h:644
UpdateStatus(const std::string &text, Importance prio=Low)
UpdateStatus(Type type, const std::string &text)
DEFINE_ENUM_WITH_STRING_CONVERSIONS(Importance,(Bulk)(Low)(Medium)(High)) DEFINE_ENUM_WITH_STRING_CONVERSIONS(Type
#define V_COREEXPORT
Definition: export.h:9
#define V_ENUM_OUTPUT_OP(name, scope)
Definition: enum.h:72
void serialize(Archive &ar, vistle::Vector1 &v, const unsigned int version)
Definition: vector.h:105
Definition: serialize.h:35
bool initialize(size_t secret_size)
Definition: crypto.cpp:40
std::string module(const std::string &prefix)
Definition: directory.cpp:61
std::array< char, 350 > description_t
Definition: message.h:150
std::array< char, 500 > path_t
Definition: message.h:152
std::array< char, 200 > address_t
Definition: message.h:151
@ Broadcast
Definition: messagerouter.h:36
V_COREEXPORT std::ostream & operator<<(std::ostream &s, const Message &msg)
Definition: messages.cpp:1718
boost::uuids::uuid uuid_t
Definition: message.h:154
buffer addPayload(Message &message, const Payload &payload)
Definition: messagepayloadtemplates.h:9
std::array< char, 32 > param_name_t
Definition: message.h:146
std::array< char, 256 > param_value_t
Definition: message.h:147
Payload getPayload(const buffer &data)
Definition: messagepayloadtemplates.h:38
std::array< char, ModuleNameLength > module_name_t
Definition: message.h:144
std::array< char, 300 > shmsegname_t
Definition: message.h:149
std::array< char, 32 > port_name_t
Definition: message.h:145
DEFINE_ENUM_WITH_STRING_CONVERSIONS(CompressionMode,(CompressionNone)(CompressionLz4)(CompressionZstd)(CompressionSnappy)) DEFINE_ENUM_WITH_STRING_CONVERSIONS(Type
Definition: allobjects.cpp:30
std::vector< char, allocator< char > > buffer
Definition: buffer.h:9
double Float
Definition: scalar.h:18
const int MaxDimension
Definition: dimensions.h:11
managed_shm::handle_t shm_handle_t
Definition: object.h:40
bool operator<(const ParameterVector< S > &v1, const ParameterVector< S > &v2)
Definition: paramvector_impl.h:243
int64_t Integer
Definition: scalar.h:19
Definition: filequery.h:15
Definition: messages.h:769
ModuleBaseMessage(const AvailableModuleBase &mod)
Definition: messages.cpp:1408
Definition: messages.h:555
std::vector< std::string > choices
Definition: messages.h:559
ARCHIVE_ACCESS void serialize(Archive &ar)
Definition: messages.h:563