OpenBarnyard
 
Loading...
Searching...
No Matches
Toshi::T2NamedPipeServer Class Reference

#include <T2NamedPipeServer_Win.h>

Public Types

using UpdateStreamCallback_t = void ( * )( void*& a_rMemoryStream, TUINT& a_rDataSize, void* a_pUserData )
 

Public Member Functions

 T2NamedPipeServer ()
 
 ~T2NamedPipeServer ()
 
TBOOL Start (const TCHAR *a_szName, TUINT a_uiSendInterval, TUINT a_uiOutBufferSize=1, TUINT a_uiInBufferSize=64 *1024)
 
void Stop ()
 
void SetMemoryStreamUpdateCallback (UpdateStreamCallback_t a_fnUpdateCallback)
 
void SetMemoryStream (void *a_pMemory, TUINT a_uiSize)
 
void SetUserData (void *a_pUserData)
 
TBOOL HasConnectedClient () const
 

Public Attributes

friend T2NamedPipeServerThread
 

Detailed Description

Definition at line 26 of file T2NamedPipeServer_Win.h.

Member Typedef Documentation

◆ UpdateStreamCallback_t

using Toshi::T2NamedPipeServer::UpdateStreamCallback_t = void ( * )( void*& a_rMemoryStream, TUINT& a_rDataSize, void* a_pUserData )

Definition at line 31 of file T2NamedPipeServer_Win.h.

Constructor & Destructor Documentation

◆ T2NamedPipeServer()

Toshi::T2NamedPipeServer::T2NamedPipeServer ( )

Definition at line 72 of file T2NamedPipeServer_Win.cpp.

73 : m_pThread( TNULL ), m_pMemory( TNULL ), m_fnUpdateStream( TNULL ), m_uiMemorySize( 0 ), m_hPipe( INVALID_HANDLE_VALUE ), m_bHasClient( TFALSE ), m_bStarted( TFALSE ), m_pUserData( TNULL )
74{
75}
#define TNULL
Definition Typedefs.h:23
#define TFALSE
Definition Typedefs.h:24

◆ ~T2NamedPipeServer()

Toshi::T2NamedPipeServer::~T2NamedPipeServer ( )

Definition at line 77 of file T2NamedPipeServer_Win.cpp.

Member Function Documentation

◆ HasConnectedClient()

TBOOL Toshi::T2NamedPipeServer::HasConnectedClient ( ) const
inline

Definition at line 46 of file T2NamedPipeServer_Win.h.

46{ return m_bHasClient; }

◆ SetMemoryStream()

void Toshi::T2NamedPipeServer::SetMemoryStream ( void * a_pMemory,
TUINT a_uiSize )

Definition at line 132 of file T2NamedPipeServer_Win.cpp.

133{
134 m_pMemory = a_pMemory;
135 m_uiMemorySize = a_uiSize;
136}

◆ SetMemoryStreamUpdateCallback()

void Toshi::T2NamedPipeServer::SetMemoryStreamUpdateCallback ( UpdateStreamCallback_t a_fnUpdateCallback)

Definition at line 127 of file T2NamedPipeServer_Win.cpp.

128{
129 m_fnUpdateStream = a_fnUpdateCallback;
130}

◆ SetUserData()

void Toshi::T2NamedPipeServer::SetUserData ( void * a_pUserData)
inline

Definition at line 44 of file T2NamedPipeServer_Win.h.

44{ m_pUserData = a_pUserData; }

◆ Start()

TBOOL Toshi::T2NamedPipeServer::Start ( const TCHAR * a_szName,
TUINT a_uiSendInterval,
TUINT a_uiOutBufferSize = 1,
TUINT a_uiInBufferSize = 64 * 1024 )

Definition at line 82 of file T2NamedPipeServer_Win.cpp.

83{
84 TASSERT( TNULL != a_szName );
85 TASSERT( TFALSE == m_bStarted );
86
87 m_uiSendInterval = a_uiSendInterval;
88 m_szName = a_szName;
89
90 T2FormatString256 pipeName;
91 pipeName.Format( "\\\\.\\pipe\\%s", a_szName );
92
93 m_hPipe = CreateNamedPipeA(
94 pipeName.Get(),
95 PIPE_ACCESS_OUTBOUND,
96 PIPE_TYPE_MESSAGE,
97 1,
98 a_uiOutBufferSize,
99 a_uiInBufferSize,
100 0,
101 NULL
102 );
103
104 TASSERT( INVALID_HANDLE_VALUE != m_hPipe );
105
106 m_pThread = new T2NamedPipeServerThread( this );
107 m_bStarted = m_pThread->Create( 0, TThread::THREAD_PRIORITY_LOWEST, 0 );
108
109 TTRACE( "Started named pipe '%s'\n", m_szName );
110
111 TASSERT( TTRUE == m_bStarted );
112 return m_bStarted;
113}
#define TASSERT(X,...)
Definition Defines.h:138
#define TTRACE(...)
Definition Defines.h:155
T2FormatString< 256, T2StringTraits< TCHAR > > T2FormatString256
Definition T2String.h:243
#define TTRUE
Definition Typedefs.h:25
@ THREAD_PRIORITY_LOWEST
Definition TThread_Win.h:31
void Format(const CharType *a_szFormat,...)
Definition T2String.h:172
constexpr CharType * Get()
Definition T2String.h:204

◆ Stop()

void Toshi::T2NamedPipeServer::Stop ( )

Definition at line 115 of file T2NamedPipeServer_Win.cpp.

116{
117 if ( m_bStarted && m_pThread )
118 {
119 m_pThread->Destroy();
120
121 delete m_pThread;
122 m_pThread = TNULL;
123 m_bStarted = TFALSE;
124 }
125}

Member Data Documentation

◆ T2NamedPipeServerThread

friend Toshi::T2NamedPipeServer::T2NamedPipeServerThread

Definition at line 29 of file T2NamedPipeServer_Win.h.


The documentation for this class was generated from the following files: