added chat_message.hpp to represent messages
This commit is contained in:
		@@ -1,36 +0,0 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <boost/asio.hpp>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
enum class message
 | 
			
		||||
{
 | 
			
		||||
    HELLO = 1, NEPTUN = 2, PASSW = 3,
 | 
			
		||||
    SERVER_DIRECTION = 4, MESSAGE = 5,
 | 
			
		||||
    PING = 6, PONG = 7, BYE = 8,
 | 
			
		||||
    LOGIN = 9, LOGOUT = 10
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class chat_message
 | 
			
		||||
{
 | 
			
		||||
protected:
 | 
			
		||||
    virtual message get_command() = 0;
 | 
			
		||||
    virtual std::string get_content() = 0;
 | 
			
		||||
public:
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class client_message : public chat_message
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    void send(boost::asio::ip::tcp::socket& socket);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class server_message : public chat_message
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    void receive(boost::asio::ip::tcp::socket& socket);
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										30
									
								
								chat_messages.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								chat_messages.hpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <type_traits>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
enum class message
 | 
			
		||||
{
 | 
			
		||||
    HELLO = 1, NEPTUN = 2, PASSW = 3,
 | 
			
		||||
    SERVER_DIRECTION = 4, MESSAGE = 5,
 | 
			
		||||
    PING = 6, PONG = 7, BYE = 8,
 | 
			
		||||
    LOGIN = 9, LOGOUT = 10
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class chat_message
 | 
			
		||||
{
 | 
			
		||||
    message _header;
 | 
			
		||||
    std::string _content;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    chat_message(message header, std::string content)
 | 
			
		||||
    :_header(header), _content(content) {}
 | 
			
		||||
 | 
			
		||||
    chat_message(std::underlying_type<message>::type header_integral, std::string content)
 | 
			
		||||
    :_header(static_cast<message>(header_integral)), _content(content) {}
 | 
			
		||||
 | 
			
		||||
    std::string get()
 | 
			
		||||
    { return std::to_string(static_cast<std::underlying_type<message>::type>(_header)) + _content; }
 | 
			
		||||
};
 | 
			
		||||
		Reference in New Issue
	
	Block a user