tahoma2d/toonz/sources/include/tipcmsg.h
Shinya Kitaoka d1f6c4e95b REFACTORING: Add final specifiers (#537)
* add final specifiers

* apply clang-format

* fix for macOS
2016-06-29 15:17:12 +09:00

99 lines
1.8 KiB
C++

#pragma once
#ifndef TIPC_MESSAGE_H
#define TIPC_MESSAGE_H
// Toonz includes
#include "tcommon.h"
// Qt includes
#include <QDataStream>
#include <QLocalSocket>
#include "tipc.h"
#undef DVAPI
#undef DVVAR
#ifdef TNZCORE_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
namespace tipc {
//********************************************************
// TIPC Message Parser declaration
//********************************************************
class MessageParser {
friend class Server;
QLocalSocket *m_socket;
tipc::Stream *m_stream;
public:
virtual QString header() const = 0;
virtual void operator()(Message &msg) = 0;
QLocalSocket *socket() { return m_socket; }
tipc::Stream *stream() { return m_stream; }
};
//********************************************************
// Default Message Types declaration
//********************************************************
enum DefMsgEnum {
SHMEM_REQUEST,
SHMEM_RELEASE,
TMPFILE_REQUEST,
TMPFILE_RELEASE,
QUIT_ON_ERROR
};
template <DefMsgEnum msgType>
class DVAPI DefaultMessageParser final : public MessageParser {
public:
QString header() const override;
void operator()(Message &msg) override;
};
//------------------------------------------------------------------------------
/* Default commands syntaxes:
SHMEM_REQUEST
Syntax: $shmem_request <shmem id> <nbytes>
Reply: ok | err
SHMEM_RELEASE
Syntax: $shmem_release <shmem id>
Reply: ok | err
TMPFILE_REQUEST
Syntax: $tmpfile_request <file id>
Reply: ok <file path>\n | err
TMPFILE_RELEASE
Syntax: $tmpfile_release <file id>
Reply: ok | err
QUIT_ON_ERROR
Syntax: $quit_on_error
Reply: ok
*/
//------------------------------------------------------------------------------
} // namespace tipc
#endif // TIPC_MESSAGE_H