Initial
This commit is contained in:
105
CapServer/hold/SocketHeader.hpp
Normal file
105
CapServer/hold/SocketHeader.hpp
Normal file
@@ -0,0 +1,105 @@
|
||||
#ifndef _CAPSERVER_SOCKET_HEADER_HPP_
|
||||
#define _CAPSERVER_SOCKET_HEADER_HPP_
|
||||
#ifndef _COMMON_WINDOWS_HPP_
|
||||
#include <common/windows.hpp>
|
||||
#endif
|
||||
#ifndef _SOCKET_SOCKET_HPP_
|
||||
#include <socket/socket.hpp>
|
||||
#endif
|
||||
|
||||
class SocketHeader
|
||||
{
|
||||
public:
|
||||
typedef enum ContentType{Unknown,ImageJPG};
|
||||
SocketHeader();
|
||||
virtual ~SocketHeader();
|
||||
int getSizeHeader(void)const;
|
||||
int getVersion(void)const;
|
||||
void setVersion(int version);
|
||||
int getContentLength(void)const;
|
||||
void setContentLength(int contentLength);
|
||||
ContentType getContentType(void)const;
|
||||
void setContentType(int contentType);
|
||||
bool marshall(Socket &socket);
|
||||
bool unmarshall(Socket &socket);
|
||||
private:
|
||||
int mSizeHeader;
|
||||
int mVersion;
|
||||
int mContentLength;
|
||||
int mContentType;
|
||||
};
|
||||
|
||||
inline
|
||||
SocketHeader::SocketHeader()
|
||||
: mSizeHeader(sizeof(int)+sizeof(int)+sizeof(int)+sizeof(int)),
|
||||
mVersion(0), mContentLength(0), mContentType(Unknown)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
SocketHeader::~SocketHeader()
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
int SocketHeader::getSizeHeader(void)const
|
||||
{
|
||||
return mSizeHeader;
|
||||
}
|
||||
|
||||
inline
|
||||
int SocketHeader::getVersion(void)const
|
||||
{
|
||||
return mVersion;
|
||||
}
|
||||
|
||||
inline
|
||||
void SocketHeader::setVersion(int version)
|
||||
{
|
||||
mVersion=version;
|
||||
}
|
||||
|
||||
inline
|
||||
int SocketHeader::getContentLength(void)const
|
||||
{
|
||||
return mContentLength;
|
||||
}
|
||||
|
||||
inline
|
||||
void SocketHeader::setContentLength(int contentLength)
|
||||
{
|
||||
mContentLength=contentLength;
|
||||
}
|
||||
|
||||
inline
|
||||
SocketHeader::ContentType SocketHeader::getContentType(void)const
|
||||
{
|
||||
return (ContentType)mContentType;
|
||||
}
|
||||
|
||||
inline
|
||||
void SocketHeader::setContentType(int contentType)
|
||||
{
|
||||
mContentType=(ContentType)contentType;
|
||||
}
|
||||
|
||||
inline
|
||||
bool SocketHeader::marshall(Socket &socket)
|
||||
{
|
||||
if(!socket.send((char*)&mSizeHeader,sizeof(int)))return false;
|
||||
if(!socket.send((char*)&mVersion,sizeof(int)))return false;
|
||||
if(!socket.send((char*)&mContentLength,sizeof(int)))return false;
|
||||
if(!socket.send((char*)&mContentType,sizeof(int)))return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
inline
|
||||
bool SocketHeader::unmarshall(Socket &socket)
|
||||
{
|
||||
if(!socket.receive((char*)&mSizeHeader,sizeof(int)))return false;
|
||||
if(!socket.receive((char*)&mVersion,sizeof(int)))return false;
|
||||
if(!socket.receive((char*)&mContentLength,sizeof(int)))return false;
|
||||
if(!socket.receive((char*)&mContentType,sizeof(int)))return false;
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user