Changeset 244501 in webkit


Ignore:
Timestamp:
Apr 22, 2019 9:38:11 AM (5 years ago)
Author:
basuke.suzuki@sony.com
Message:

[PlayStation] Restructuring Remote Inspector classes to support multiple platform.
https://bugs.webkit.org/show_bug.cgi?id=197030

Reviewed by Don Olmstead.

Restructuring the PlayStation's RemoteInspector backend which uses native socket for the communication to be ready for WinCairo.

What we did is basically:

  • Renamed remote/playstation/ to remote/socket/. This directory is now platform independent implementation of socket backend.
  • Renamed RemoteInspectorSocket class to RemoteInspectorSocketEndpoint. This class is platform independent and core of the backend.
  • Merged RemoteInspectorSocket{Client|Server} classes into RemoteInspectorSocketEndpoint class because the differences are little.
  • Defined a new interface functions in Inspector::Socket (new) namespace.
  • Moved POSIX socket implementation into posix\RemoteInspectorSocketPOSIX.{h|cpp}.
  • PlatformPlayStation.cmake:
  • inspector/remote/RemoteInspector.h:
  • inspector/remote/playstation/RemoteInspectorSocketClient.h: Merged into RemoteInspectorSocketEndpoint.
  • inspector/remote/playstation/RemoteInspectorSocketClientPlayStation.cpp: Merged into RemoteInspectorSocketEndpoint.
  • inspector/remote/playstation/RemoteInspectorSocketPlayStation.cpp: Removed.
  • inspector/remote/playstation/RemoteInspectorSocketServer.h: Merged into RemoteInspectorSocketEndpoint.
  • inspector/remote/playstation/RemoteInspectorSocketServerPlayStation.cpp: Merged into RemoteInspectorSocketEndpoint.
  • inspector/remote/socket/RemoteInspectorConnectionClient.cpp: Renamed from inspector\remote\playstation\RemoteInspectorConnectionClientPlayStation.cpp.
  • inspector/remote/socket/RemoteInspectorConnectionClient.h: Renamed from inspector\remote\playstation\RemoteInspectorConnectionClient.h.

(Inspector::RemoteInspectorConnectionClient::didAccept):

  • inspector/remote/socket/RemoteInspectorMessageParser.cpp: Renamed from inspector\remote\playstation\RemoteInspectorMessageParserPlayStation.cpp.
  • inspector/remote/socket/RemoteInspectorMessageParser.h: Renamed from inspector\remote\playstation\RemoteInspectorMessageParser.h.
  • inspector/remote/socket/RemoteInspectorServer.cpp: Renamed from inspector\remote\playstation\RemoteInspectorServerPlayStation.cpp.

(Inspector::RemoteInspectorServer::didAccept):
(Inspector::RemoteInspectorServer::start):

  • inspector/remote/socket/RemoteInspectorServer.h: Renamed from inspector\remote\playstation\RemoteInspectorServer.h.
  • inspector/remote/socket/RemoteInspectorSocket.cpp: Renamed from inspector\remote\playstation\RemoteInspectorPlayStation.cpp.

(Inspector::RemoteInspector::start):

  • inspector/remote/socket/RemoteInspectorSocket.h: Copied from inspector\remote\playstation\RemoteInspectorSocket.h.
  • inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp: Added.

(Inspector::RemoteInspectorSocketEndpoint::RemoteInspectorSocketEndpoint):
(Inspector::RemoteInspectorSocketEndpoint::~RemoteInspectorSocketEndpoint):
(Inspector::RemoteInspectorSocketEndpoint::wakeupWorkerThread):
(Inspector::RemoteInspectorSocketEndpoint::connectInet):
(Inspector::RemoteInspectorSocketEndpoint::listenInet):
(Inspector::RemoteInspectorSocketEndpoint::isListening):
(Inspector::RemoteInspectorSocketEndpoint::workerThread):
(Inspector::RemoteInspectorSocketEndpoint::createClient):
(Inspector::RemoteInspectorSocketEndpoint::recvIfEnabled):
(Inspector::RemoteInspectorSocketEndpoint::sendIfEnabled):
(Inspector::RemoteInspectorSocketEndpoint::send):
(Inspector::RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled):

  • inspector/remote/socket/RemoteInspectorSocketEndpoint.h: Renamed from inspector\remote\playstation\RemoteInspectorSocket.h.
  • inspector/remote/socket/posix/RemoteInspectorSocketPOSIX.cpp: Added.

(Inspector::Socket::connect):
(Inspector::Socket::listen):
(Inspector::Socket::accept):
(Inspector::Socket::createPair):
(Inspector::Socket::setup):
(Inspector::Socket::isValid):
(Inspector::Socket::isListening):
(Inspector::Socket::read):
(Inspector::Socket::write):
(Inspector::Socket::close):
(Inspector::Socket::preparePolling):
(Inspector::Socket::poll):
(Inspector::Socket::isReadable):
(Inspector::Socket::isWritable):
(Inspector::Socket::markWaitingWritable):
(Inspector::Socket::clearWaitingWritable):

Location:
trunk/Source/JavaScriptCore
Files:
4 added
1 deleted
3 edited
9 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r244483 r244501  
     12019-04-22  Basuke Suzuki  <basuke.suzuki@sony.com>
     2
     3        [PlayStation] Restructuring Remote Inspector classes to support multiple platform.
     4        https://bugs.webkit.org/show_bug.cgi?id=197030
     5
     6        Reviewed by Don Olmstead.
     7
     8        Restructuring the PlayStation's RemoteInspector backend which uses native socket for the communication to be ready for WinCairo.
     9
     10        What we did is basically:
     11        - Renamed `remote/playstation/` to `remote/socket/`. This directory is now platform independent implementation of socket backend.
     12        - Renamed `RemoteInspectorSocket` class to `RemoteInspectorSocketEndpoint`. This class is platform independent and core of the backend.
     13        - Merged `RemoteInspectorSocket{Client|Server}` classes into `RemoteInspectorSocketEndpoint` class because the differences are little.
     14        - Defined a new interface functions in `Inspector::Socket` (new) namespace.
     15        - Moved POSIX socket implementation into `posix\RemoteInspectorSocketPOSIX.{h|cpp}`.
     16
     17        * PlatformPlayStation.cmake:
     18        * inspector/remote/RemoteInspector.h:
     19        * inspector/remote/playstation/RemoteInspectorSocketClient.h: Merged into RemoteInspectorSocketEndpoint.
     20        * inspector/remote/playstation/RemoteInspectorSocketClientPlayStation.cpp: Merged into RemoteInspectorSocketEndpoint.
     21        * inspector/remote/playstation/RemoteInspectorSocketPlayStation.cpp: Removed.
     22        * inspector/remote/playstation/RemoteInspectorSocketServer.h: Merged into RemoteInspectorSocketEndpoint.
     23        * inspector/remote/playstation/RemoteInspectorSocketServerPlayStation.cpp: Merged into RemoteInspectorSocketEndpoint.
     24        * inspector/remote/socket/RemoteInspectorConnectionClient.cpp: Renamed from inspector\remote\playstation\RemoteInspectorConnectionClientPlayStation.cpp.
     25        * inspector/remote/socket/RemoteInspectorConnectionClient.h: Renamed from inspector\remote\playstation\RemoteInspectorConnectionClient.h.
     26        (Inspector::RemoteInspectorConnectionClient::didAccept):
     27        * inspector/remote/socket/RemoteInspectorMessageParser.cpp: Renamed from inspector\remote\playstation\RemoteInspectorMessageParserPlayStation.cpp.
     28        * inspector/remote/socket/RemoteInspectorMessageParser.h: Renamed from inspector\remote\playstation\RemoteInspectorMessageParser.h.
     29        * inspector/remote/socket/RemoteInspectorServer.cpp: Renamed from inspector\remote\playstation\RemoteInspectorServerPlayStation.cpp.
     30        (Inspector::RemoteInspectorServer::didAccept):
     31        (Inspector::RemoteInspectorServer::start):
     32        * inspector/remote/socket/RemoteInspectorServer.h: Renamed from inspector\remote\playstation\RemoteInspectorServer.h.
     33        * inspector/remote/socket/RemoteInspectorSocket.cpp: Renamed from inspector\remote\playstation\RemoteInspectorPlayStation.cpp.
     34        (Inspector::RemoteInspector::start):
     35        * inspector/remote/socket/RemoteInspectorSocket.h: Copied from inspector\remote\playstation\RemoteInspectorSocket.h.
     36        * inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp: Added.
     37        (Inspector::RemoteInspectorSocketEndpoint::RemoteInspectorSocketEndpoint):
     38        (Inspector::RemoteInspectorSocketEndpoint::~RemoteInspectorSocketEndpoint):
     39        (Inspector::RemoteInspectorSocketEndpoint::wakeupWorkerThread):
     40        (Inspector::RemoteInspectorSocketEndpoint::connectInet):
     41        (Inspector::RemoteInspectorSocketEndpoint::listenInet):
     42        (Inspector::RemoteInspectorSocketEndpoint::isListening):
     43        (Inspector::RemoteInspectorSocketEndpoint::workerThread):
     44        (Inspector::RemoteInspectorSocketEndpoint::createClient):
     45        (Inspector::RemoteInspectorSocketEndpoint::recvIfEnabled):
     46        (Inspector::RemoteInspectorSocketEndpoint::sendIfEnabled):
     47        (Inspector::RemoteInspectorSocketEndpoint::send):
     48        (Inspector::RemoteInspectorSocketEndpoint::acceptInetSocketIfEnabled):
     49        * inspector/remote/socket/RemoteInspectorSocketEndpoint.h: Renamed from inspector\remote\playstation\RemoteInspectorSocket.h.
     50        * inspector/remote/socket/posix/RemoteInspectorSocketPOSIX.cpp: Added.
     51        (Inspector::Socket::connect):
     52        (Inspector::Socket::listen):
     53        (Inspector::Socket::accept):
     54        (Inspector::Socket::createPair):
     55        (Inspector::Socket::setup):
     56        (Inspector::Socket::isValid):
     57        (Inspector::Socket::isListening):
     58        (Inspector::Socket::read):
     59        (Inspector::Socket::write):
     60        (Inspector::Socket::close):
     61        (Inspector::Socket::preparePolling):
     62        (Inspector::Socket::poll):
     63        (Inspector::Socket::isReadable):
     64        (Inspector::Socket::isWritable):
     65        (Inspector::Socket::markWaitingWritable):
     66        (Inspector::Socket::clearWaitingWritable):
     67
    1682019-04-20  Yusuke Suzuki  <ysuzuki@apple.com>
    269
  • trunk/Source/JavaScriptCore/PlatformPlayStation.cmake

    r242306 r244501  
    11list(APPEND JavaScriptCore_PRIVATE_INCLUDE_DIRECTORIES
    2     "${JAVASCRIPTCORE_DIR}/inspector/remote/playstation"
     2    "${JAVASCRIPTCORE_DIR}/inspector/remote/socket"
    33)
    44
     
    1010    inspector/remote/RemoteInspector.h
    1111
    12     inspector/remote/playstation/RemoteInspectorConnectionClient.h
    13     inspector/remote/playstation/RemoteInspectorMessageParser.h
    14     inspector/remote/playstation/RemoteInspectorServer.h
    15     inspector/remote/playstation/RemoteInspectorSocket.h
    16     inspector/remote/playstation/RemoteInspectorSocketClient.h
    17     inspector/remote/playstation/RemoteInspectorSocketServer.h
     12    inspector/remote/socket/RemoteInspectorConnectionClient.h
     13    inspector/remote/socket/RemoteInspectorMessageParser.h
     14    inspector/remote/socket/RemoteInspectorServer.h
     15    inspector/remote/socket/RemoteInspectorSocket.h
     16    inspector/remote/socket/RemoteInspectorSocketEndpoint.h
    1817)
    1918
     
    2726    inspector/remote/RemoteInspector.cpp
    2827
    29     inspector/remote/playstation/RemoteInspectorConnectionClientPlayStation.cpp
    30     inspector/remote/playstation/RemoteInspectorMessageParserPlayStation.cpp
    31     inspector/remote/playstation/RemoteInspectorPlayStation.cpp
    32     inspector/remote/playstation/RemoteInspectorServerPlayStation.cpp
    33     inspector/remote/playstation/RemoteInspectorSocketClientPlayStation.cpp
    34     inspector/remote/playstation/RemoteInspectorSocketPlayStation.cpp
    35     inspector/remote/playstation/RemoteInspectorSocketServerPlayStation.cpp
     28    inspector/remote/socket/RemoteInspectorConnectionClient.cpp
     29    inspector/remote/socket/RemoteInspectorMessageParser.cpp
     30    inspector/remote/socket/RemoteInspectorServer.cpp
     31    inspector/remote/socket/RemoteInspectorSocket.cpp
     32    inspector/remote/socket/RemoteInspectorSocketEndpoint.cpp
     33
     34    inspector/remote/socket/posix/RemoteInspectorSocketPOSIX.cpp
    3635)
    3736
  • trunk/Source/JavaScriptCore/inspector/remote/RemoteInspector.h

    r242306 r244501  
    5555#include "RemoteConnectionToTarget.h"
    5656#include "RemoteInspectorConnectionClient.h"
    57 #include "RemoteInspectorSocketClient.h"
     57#include "RemoteInspectorSocketEndpoint.h"
    5858#include <wtf/JSONValues.h>
    5959#include <wtf/RefCounted.h>
     
    237237
    238238#if PLATFORM(PLAYSTATION)
    239     std::unique_ptr<RemoteInspectorSocketClient> m_socketConnection;
     239    std::unique_ptr<RemoteInspectorSocketEndpoint> m_socketConnection;
    240240    static PlatformSocketType s_connectionIdentifier;
    241241    Optional<ClientID> m_clientID;
  • trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorConnectionClient.cpp

    r244500 r244501  
    2929#if ENABLE(REMOTE_INSPECTOR)
    3030
    31 #include "RemoteInspectorSocket.h"
     31#include "RemoteInspectorSocketEndpoint.h"
    3232#include <wtf/JSONValues.h>
    3333#include <wtf/RunLoop.h>
  • trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorConnectionClient.h

    r244500 r244501  
    2828#if ENABLE(REMOTE_INSPECTOR)
    2929
    30 #include "RemoteInspectorSocket.h"
     30#include "RemoteInspectorSocketEndpoint.h"
    3131#include <wtf/WeakPtr.h>
    3232#include <wtf/text/WTFString.h>
     
    3737public:
    3838    void didReceiveWebInspectorEvent(ClientID, Vector<uint8_t>&&);
    39     virtual void didAccept(ClientID, RemoteInspectorSocket::DomainType) { };
     39    virtual void didAccept(ClientID, Socket::Domain) { };
    4040    virtual void didClose(ClientID) = 0;
    4141
  • trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorMessageParser.cpp

    r244500 r244501  
    2727#include "RemoteInspectorMessageParser.h"
    2828
    29 #include <netinet/in.h>
     29#include <wtf/ByteOrder.h>
    3030
    3131#if ENABLE(REMOTE_INSPECTOR)
  • trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorMessageParser.h

    r244500 r244501  
    2828#if ENABLE(REMOTE_INSPECTOR)
    2929
    30 #include "RemoteInspectorSocket.h"
     30#include "RemoteInspectorSocketEndpoint.h"
    3131#include <wtf/Vector.h>
    3232
  • trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorServer.cpp

    r244500 r244501  
    4545}
    4646
    47 void RemoteInspectorServer::didAccept(ClientID clientID, RemoteInspectorSocket::DomainType type)
     47void RemoteInspectorServer::didAccept(ClientID clientID, Socket::Domain type)
    4848{
    4949    ASSERT(!isMainThread());
    5050
    51     if (type == RemoteInspectorSocket::DomainType::Inet) {
     51    if (type == Socket::Domain::Network) {
    5252        if (m_clientConnection) {
    5353            LOG_ERROR("Inspector server can accept only 1 client");
     
    5555        }
    5656        m_clientConnection = clientID;
    57     } else if (type == RemoteInspectorSocket::DomainType::Unix) {
     57    } else if (type == Socket::Domain::Local) {
    5858        LockHolder lock(m_connectionsLock);
    5959        m_inspectorConnections.append(clientID);
     
    107107bool RemoteInspectorServer::start(uint16_t port)
    108108{
    109     m_server = RemoteInspectorSocketServer::create(this);
     109    m_server = RemoteInspectorSocketEndpoint::create(this, "RemoteInspectorServer");
    110110
    111111    if (!m_server->listenInet(port)) {
  • trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorServer.h

    r244500 r244501  
    3131
    3232#include "RemoteInspectorConnectionClient.h"
    33 #include "RemoteInspectorSocketServer.h"
    3433#include <wtf/HashMap.h>
    3534#include <wtf/HashSet.h>
     
    6059    void clientConnectionClosed();
    6160
    62     void didAccept(ClientID, RemoteInspectorSocket::DomainType) override;
     61    void didAccept(ClientID, Socket::Domain) override;
    6362    void didClose(ClientID) override;
    6463
     
    6867
    6968    HashSet<std::pair<uint64_t, uint64_t>> m_inspectionTargets;
    70     std::unique_ptr<RemoteInspectorSocketServer> m_server;
     69    std::unique_ptr<RemoteInspectorSocketEndpoint> m_server;
    7170
    7271    // Connections to the WebProcess.
  • trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocket.cpp

    r244500 r244501  
    9393    m_enabled = true;
    9494
    95     m_socketConnection = RemoteInspectorSocketClient::create(this);
     95    m_socketConnection = RemoteInspectorSocketEndpoint::create(this, "RemoteInspector");
    9696
    9797    m_clientID = m_socketConnection->createClient(s_connectionIdentifier);
  • trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocket.h

    r244500 r244501  
    2828#if ENABLE(REMOTE_INSPECTOR)
    2929
     30#include <array>
     31#include <wtf/Optional.h>
     32#include <wtf/Vector.h>
     33
     34#if PLATFORM(PLAYSTATION)
    3035#include <poll.h>
    31 #include <thread>
    32 #include <wtf/Condition.h>
    33 #include <wtf/Function.h>
    34 #include <wtf/HashMap.h>
    35 #include <wtf/Lock.h>
    36 #include <wtf/Threading.h>
    37 #include <wtf/Vector.h>
    38 #include <wtf/WeakPtr.h>
     36#endif
     37
     38#if OS(WINDOWS)
     39#include <winsock2.h>
     40#endif
    3941
    4042namespace Inspector {
    4143
     44#if OS(WINDOWS)
     45
     46using ClientID = unsigned;
     47using PlatformSocketType = SOCKET;
     48using PollingDescriptor = WSAPOLLFD;
     49constexpr PlatformSocketType INVALID_SOCKET_VALUE = INVALID_SOCKET;
     50
     51#else
     52
    4253using ClientID = unsigned;
    4354using PlatformSocketType = int;
     55using PollingDescriptor = struct pollfd;
    4456constexpr PlatformSocketType INVALID_SOCKET_VALUE = -1;
    4557
     58#endif
     59
    4660class MessageParser;
    47 class RemoteInspectorConnectionClient;
    4861
    49 class JS_EXPORT_PRIVATE RemoteInspectorSocket {
    50 public:
    51     RemoteInspectorSocket(RemoteInspectorConnectionClient*);
    52     ~RemoteInspectorSocket();
     62namespace Socket {
    5363
    54     enum class DomainType {
    55         Unix,
    56         Inet,
    57     };
     64enum class Domain {
     65    Local,
     66    Network,
     67};
    5868
    59     void send(ClientID, const uint8_t* data, size_t);
     69Optional<PlatformSocketType> connect(const char* serverAddress, uint16_t serverPort);
     70Optional<PlatformSocketType> listen(uint16_t port);
     71Optional<PlatformSocketType> accept(PlatformSocketType);
     72Optional<std::array<PlatformSocketType, 2>> createPair();
    6073
    61     Optional<ClientID> createClient(PlatformSocketType fd);
     74void setup(PlatformSocketType);
     75bool isValid(PlatformSocketType);
     76bool isListening(PlatformSocketType);
    6277
    63 protected:
    64     void recvIfEnabled(ClientID);
    65     void sendIfEnabled(ClientID);
    66     void workerThread();
    67     void wakeupWorkerThread();
    68     void acceptInetSocketIfEnabled(ClientID);
    69     bool isListening(ClientID);
     78Optional<size_t> read(PlatformSocketType, void* buffer, int bufferSize);
     79Optional<size_t> write(PlatformSocketType, const void* data, int size);
    7080
    71     struct Connection {
    72         std::unique_ptr<MessageParser> parser;
    73         Vector<uint8_t> sendBuffer;
    74         struct pollfd poll;
    75         PlatformSocketType socket { INVALID_SOCKET_VALUE };
    76     };
     81void close(PlatformSocketType&);
    7782
    78     Lock m_connectionsLock;
    79     HashMap<ClientID, std::unique_ptr<struct Connection>> m_connections;
     83PollingDescriptor preparePolling(PlatformSocketType);
     84bool poll(Vector<PollingDescriptor>&, int timeout);
     85bool isReadable(const PollingDescriptor&);
     86bool isWritable(const PollingDescriptor&);
     87void markWaitingWritable(PollingDescriptor&);
     88void clearWaitingWritable(PollingDescriptor&);
    8089
    81     PlatformSocketType m_wakeupSendSocket { INVALID_SOCKET_VALUE };
    82     PlatformSocketType m_wakeupReceiveSocket { INVALID_SOCKET_VALUE };
     90struct Connection {
     91    std::unique_ptr<MessageParser> parser;
     92    Vector<uint8_t> sendBuffer;
     93    PlatformSocketType socket { INVALID_SOCKET_VALUE };
     94    PollingDescriptor poll;
     95};
    8396
    84     RefPtr<Thread> m_workerThread;
    85     std::atomic<bool> m_shouldAbortWorkerThread { false };
     97constexpr size_t BufferSize = 65536;
    8698
    87     WeakPtr<RemoteInspectorConnectionClient> m_inspectorClient;
    88 };
     99} // namespace Socket
    89100
    90101} // namespace Inspector
  • trunk/Source/JavaScriptCore/inspector/remote/socket/RemoteInspectorSocketEndpoint.h

    r244500 r244501  
    2828#if ENABLE(REMOTE_INSPECTOR)
    2929
    30 #include <poll.h>
    31 #include <thread>
     30#include "RemoteInspectorSocket.h"
     31
    3232#include <wtf/Condition.h>
    3333#include <wtf/Function.h>
     
    4040namespace Inspector {
    4141
    42 using ClientID = unsigned;
    43 using PlatformSocketType = int;
    44 constexpr PlatformSocketType INVALID_SOCKET_VALUE = -1;
    45 
    4642class MessageParser;
    4743class RemoteInspectorConnectionClient;
    4844
    49 class JS_EXPORT_PRIVATE RemoteInspectorSocket {
     45class JS_EXPORT_PRIVATE RemoteInspectorSocketEndpoint {
    5046public:
    51     RemoteInspectorSocket(RemoteInspectorConnectionClient*);
    52     ~RemoteInspectorSocket();
     47    static std::unique_ptr<RemoteInspectorSocketEndpoint> create(RemoteInspectorConnectionClient* inspectorClient, const char* name)
     48    {
     49        return std::make_unique<RemoteInspectorSocketEndpoint>(inspectorClient, name);
     50    }
    5351
    54     enum class DomainType {
    55         Unix,
    56         Inet,
    57     };
     52    RemoteInspectorSocketEndpoint(RemoteInspectorConnectionClient*, const char*);
     53    ~RemoteInspectorSocketEndpoint();
     54
     55    Optional<ClientID> connectInet(const char* serverAddr, uint16_t serverPort);
     56    bool listenInet(uint16_t port);
    5857
    5958    void send(ClientID, const uint8_t* data, size_t);
     
    6968    bool isListening(ClientID);
    7069
    71     struct Connection {
    72         std::unique_ptr<MessageParser> parser;
    73         Vector<uint8_t> sendBuffer;
    74         struct pollfd poll;
    75         PlatformSocketType socket { INVALID_SOCKET_VALUE };
    76     };
    77 
    7870    Lock m_connectionsLock;
    79     HashMap<ClientID, std::unique_ptr<struct Connection>> m_connections;
     71    HashMap<ClientID, std::unique_ptr<Socket::Connection>> m_connections;
    8072
    8173    PlatformSocketType m_wakeupSendSocket { INVALID_SOCKET_VALUE };
Note: See TracChangeset for help on using the changeset viewer.