]> git.stg.codes - stg.git/blobdiff - include/stg/message.h
Public interfaces: part 1
[stg.git] / include / stg / message.h
index 49f8c7c6f43a0ed858ae6424fb29791d2359a9a2..e57102717102c6a6db7705fa34360917c43a31bb 100644 (file)
@@ -1,55 +1,60 @@
-#ifndef STG_MESSAGES_H
-#define STG_MESSAGES_H
-
 /*
  *    Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
  */
 
 /*
  *    Author : Boris Mikhailenko <stg34@stargazer.dp.ua>
  */
 
- /*
- $Revision: 1.3 $
- $Date: 2010/03/04 11:49:52 $
- */
+#pragma once
 
 
+#include <string>
 #include <ctime>
 #include <cstdint>
 #include <ctime>
 #include <cstdint>
-#include <string>
 
 
-//-----------------------------------------------------------------------------
-struct STG_MSG_HDR
+namespace STG
 {
 {
-STG_MSG_HDR()
-    : id(0),
-      ver(0),
-      type(0),
-      lastSendTime(0),
-      creationTime(0),
-      showTime(0),
-      repeat(0),
-      repeatPeriod(0)
-{}
-
-uint64_t    id;
-unsigned    ver;
-unsigned    type;
-unsigned    lastSendTime;
-unsigned    creationTime;
-unsigned    showTime;
-int         repeat;
-unsigned    repeatPeriod;
-};
-//-----------------------------------------------------------------------------
-struct STG_MSG
-{
-STG_MSG() : header(), text() {}
 
 
-time_t GetNextSendTime() const
+struct Message
 {
 {
-return header.lastSendTime + header.repeat * 60;
-}
-
-STG_MSG_HDR header;
-std::string text;
+    struct Header
+    {
+        Header() noexcept
+            : id(0),
+              ver(0),
+              type(0),
+              lastSendTime(0),
+              creationTime(0),
+              showTime(0),
+              repeat(0),
+              repeatPeriod(0)
+        {}
+
+        Header(const Header&) = default;
+        Header& operator=(const Header&) = default;
+        Header(Header&&) = default;
+        Header& operator=(Header&&) = default;
+
+        uint64_t    id;
+        unsigned    ver;
+        unsigned    type;
+        unsigned    lastSendTime;
+        unsigned    creationTime;
+        unsigned    showTime;
+        int         repeat;
+        unsigned    repeatPeriod;
+    };
+
+    Message() = default;
+
+    Message(const Message&) = default;
+    Message& operator=(const Message&) = default;
+    Message(Message&&) = default;
+    Message& operator=(Message&&) = default;
+
+    time_t GetNextSendTime() const
+    {
+        return header.lastSendTime + header.repeat * 60;
+    }
+
+    Header header;
+    std::string text;
 };
 };
-//-----------------------------------------------------------------------------
 
 
-#endif
+}