@@ -73,6 +73,14 @@ IE_CORE_DEFINERUNTIMETYPED( DisplayDriverServer );
73
73
namespace
74
74
{
75
75
76
+ struct MergeDriverInfo
77
+ {
78
+ DisplayDriverPtr mergeDriver = nullptr ;
79
+ int mergeCount = 0 ;
80
+ };
81
+
82
+ using MergeMap = std::map<int , MergeDriverInfo>;
83
+
76
84
/* Set the FD_CLOEXEC flag for the given socket descriptor, so that it will not exist on child processes.*/
77
85
static void fixSocketFlags ( int socketDesc )
78
86
{
@@ -98,7 +106,7 @@ class DisplayDriverServer::Session : public RefCounted
98
106
{
99
107
public:
100
108
101
- Session ( boost::asio::io_service& io_service, DisplayDriverServer:: MergeMap& mergeMap );
109
+ Session ( boost::asio::io_service& io_service, MergeMap& mergeMap );
102
110
~Session () override ;
103
111
104
112
boost::asio::ip::tcp::socket& socket ();
@@ -117,7 +125,7 @@ class DisplayDriverServer::Session : public RefCounted
117
125
DisplayDriverPtr m_displayDriver;
118
126
DisplayDriverServerHeader m_header;
119
127
CharVectorDataPtr m_buffer;
120
- DisplayDriverServer:: MergeMap& m_mergeMap;
128
+ MergeMap& m_mergeMap;
121
129
std::optional<int > m_mergeId;
122
130
};
123
131
@@ -130,6 +138,7 @@ class DisplayDriverServer::PrivateData : public RefCounted
130
138
boost::asio::io_service m_service;
131
139
boost::asio::ip::tcp::acceptor m_acceptor;
132
140
std::thread m_thread;
141
+ MergeMap m_mergeMap;
133
142
134
143
PrivateData ( DisplayDriverServer::Port portNumber ) :
135
144
m_service (),
@@ -201,7 +210,7 @@ DisplayDriverServer::DisplayDriverServer( DisplayDriverServer::Port portNumber )
201
210
{
202
211
m_data = new DisplayDriverServer::PrivateData ( portNumber );
203
212
204
- DisplayDriverServer::SessionPtr newSession ( new DisplayDriverServer::Session ( m_data->m_service , m_mergeMap ) );
213
+ DisplayDriverServer::SessionPtr newSession ( new DisplayDriverServer::Session ( m_data->m_service , m_data-> m_mergeMap ) );
205
214
m_data->m_acceptor .async_accept ( newSession->socket (),
206
215
boost::bind ( &DisplayDriverServer::handleAccept, this , newSession,
207
216
boost::asio::placeholders::error));
@@ -285,7 +294,7 @@ void DisplayDriverServer::handleAccept( DisplayDriverServer::SessionPtr session,
285
294
{
286
295
if (!error)
287
296
{
288
- DisplayDriverServer::SessionPtr newSession ( new DisplayDriverServer::Session ( m_data->m_service , m_mergeMap ) );
297
+ DisplayDriverServer::SessionPtr newSession ( new DisplayDriverServer::Session ( m_data->m_service , m_data-> m_mergeMap ) );
289
298
m_data->m_acceptor .async_accept ( newSession->socket (),
290
299
boost::bind ( &DisplayDriverServer::handleAccept, this , newSession,
291
300
boost::asio::placeholders::error));
@@ -297,7 +306,7 @@ void DisplayDriverServer::handleAccept( DisplayDriverServer::SessionPtr session,
297
306
* DisplayDriverServer::Session functions
298
307
*/
299
308
300
- DisplayDriverServer::Session::Session ( boost::asio::io_service& io_service, DisplayDriverServer:: MergeMap& mergeMap ) :
309
+ DisplayDriverServer::Session::Session ( boost::asio::io_service& io_service, MergeMap& mergeMap ) :
301
310
m_socket( io_service ), m_displayDriver(nullptr ), m_buffer( new CharVectorData( ) ), m_mergeMap( mergeMap )
302
311
{
303
312
}
0 commit comments