Fixed: - Removed trailing whitespace. - Removed out of date TODO's. - Added #include<algorithm> to DataManager.cpp - Reordered includes to include C system headers before C++ system headers. - Added username to TODO's - Renamed include guards to use full project name as prefix. - Made methods and parameters const where possible. - Made UDPSocket constructor explicit. Won't Fix: - snprintf is introduced in C++11. - Trailing comments at the end of namespace & header guards - Did not re-inlude headers already included by the matching XPC header. - localtime is fine since X-Plane is not multithreaded at all on the plugin side. - Linter confuses #elif with parens as a function call. - namespace indentation
57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
//Copyright (c) 2013-2015 United States Government as represented by the Administrator of the
|
|
//National Aeronautics and Space Administration. All Rights Reserved.
|
|
#ifndef XPCPLUGIN_MESSAGE_H_
|
|
#define XPCPLUGIN_MESSAGE_H_
|
|
|
|
#include "UDPSocket.h"
|
|
|
|
namespace XPC
|
|
{
|
|
/// Represents a message received from an XPC client.
|
|
///
|
|
/// \author Jason Watkins
|
|
/// \version 1.0
|
|
/// \since 1.0
|
|
/// \date Intial Version: 2015-04-11
|
|
/// \date Last Updated: 2015-04-11
|
|
class Message
|
|
{
|
|
public:
|
|
/// Reads a datagram from the specified socket and interprets it as a
|
|
/// message.
|
|
///
|
|
/// \param sock The socket to read from.
|
|
/// \returns A message parsed from the data read from sock. If no
|
|
/// data was read or an error occurs, returns a message
|
|
/// with the size set to 0.
|
|
static Message ReadFrom(const UDPSocket& sock);
|
|
|
|
/// Gets the message header in binary form.
|
|
unsigned long GetMagicNumber() const;
|
|
|
|
/// Gets the message header.
|
|
std::string GetHead() const;
|
|
|
|
/// Gets the buffer underlying the message.
|
|
const unsigned char* GetBuffer() const;
|
|
|
|
/// Gets the size of the message in bytes.
|
|
std::size_t GetSize() const;
|
|
|
|
/// Gets the address this message was read from.
|
|
struct sockaddr GetSource() const;
|
|
|
|
/// Prints the contents of the message to the XPC log.
|
|
void PrintToLog() const;
|
|
|
|
private:
|
|
Message();
|
|
|
|
static const std::size_t bufferSize = 4096;
|
|
unsigned char buffer[bufferSize];
|
|
std::size_t size;
|
|
struct sockaddr source;
|
|
};
|
|
}
|
|
#endif
|