Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
tcpmessagecodec.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
22
#include "
io/memorystream.h
"
23
#include "
io/binaryreader.h
"
24
25
//------------------------------------------------------------------------------
26
namespace
Net
27
{
28
class
TcpMessageCodec
29
{
30
public
:
32
TcpMessageCodec
();
34
virtual
~TcpMessageCodec
();
35
37
void
EncodeToMessage
(
const
Ptr<IO::Stream>
& stream,
const
Ptr<IO::Stream>
&output);
39
void
DecodeStream
(
const
Ptr<IO::Stream>
& stream);
41
bool
HasMessages
();
43
Util::Array<Ptr<IO::Stream>
>
DequeueMessages
();
44
45
private
:
47
enum
ReceiveState
48
{
49
HeaderData
,
50
MessageData
51
};
52
53
ReceiveState
receiveState
;
54
Ptr<IO::Stream>
headerStream
;
55
Ptr<IO::Stream>
messageStream
;
56
SizeT
messageSize
;
57
IndexT
headerPosition
;
58
IndexT
messagePostition
;
59
Util::Array<Ptr<IO::Stream>
>
completedMessages
;
60
};
61
//------------------------------------------------------------------------------
62
}
// namespace Net
binaryreader.h
Net::TcpMessageCodec::TcpMessageCodec
TcpMessageCodec()
Constructor.
Definition
tcpmessagecodec.cc:22
Net::TcpMessageCodec::HasMessages
bool HasMessages()
Returns true, if there are messages in the internal message queue.
Definition
tcpmessagecodec.cc:184
Net::TcpMessageCodec::DequeueMessages
Util::Array< Ptr< IO::Stream > > DequeueMessages()
Gets the list of all created messages since the last call of this function.
Definition
tcpmessagecodec.cc:195
Net::TcpMessageCodec::receiveState
ReceiveState receiveState
Definition
tcpmessagecodec.h:53
Net::TcpMessageCodec::messageStream
Ptr< IO::Stream > messageStream
Definition
tcpmessagecodec.h:55
Net::TcpMessageCodec::messageSize
SizeT messageSize
Definition
tcpmessagecodec.h:56
Net::TcpMessageCodec::DecodeStream
void DecodeStream(const Ptr< IO::Stream > &stream)
Decodes a given Stream. Check for HasMessages() if this completes a message.
Definition
tcpmessagecodec.cc:94
Net::TcpMessageCodec::ReceiveState
ReceiveState
what data is currently expected from the decoder
Definition
tcpmessagecodec.h:48
Net::TcpMessageCodec::MessageData
@ MessageData
Definition
tcpmessagecodec.h:50
Net::TcpMessageCodec::HeaderData
@ HeaderData
Definition
tcpmessagecodec.h:49
Net::TcpMessageCodec::~TcpMessageCodec
virtual ~TcpMessageCodec()
Destructor.
Definition
tcpmessagecodec.cc:34
Net::TcpMessageCodec::headerStream
Ptr< IO::Stream > headerStream
Definition
tcpmessagecodec.h:54
Net::TcpMessageCodec::completedMessages
Util::Array< Ptr< IO::Stream > > completedMessages
Definition
tcpmessagecodec.h:59
Net::TcpMessageCodec::headerPosition
IndexT headerPosition
Definition
tcpmessagecodec.h:57
Net::TcpMessageCodec::EncodeToMessage
void EncodeToMessage(const Ptr< IO::Stream > &stream, const Ptr< IO::Stream > &output)
Attachs header information to the stream and returns a copy with header.
Definition
tcpmessagecodec.cc:61
Net::TcpMessageCodec::messagePostition
IndexT messagePostition
Definition
tcpmessagecodec.h:58
Ptr
Nebula's smart pointer class which manages the life time of RefCounted objects.
Definition
ptr.h:38
Util::Array
Nebula's dynamic array class.
Definition
array.h:61
memorystream.h
Net
Definition
debugmessage.h:20
SizeT
int SizeT
Definition
types.h:42
IndexT
int IndexT
Definition
types.h:41
code
foundation
net
tcpmessagecodec.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.