Ignore:
Timestamp:
01/02/13 06:50:19 (11 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

Eliminated the double storage of the Overlappable instances in the children of Completer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/xplcommon/win32/LocalAcceptor.h

    r22 r23  
    5252private:
    5353    /**
    54      * The local server socket for which we are accepting connections.
    55      */
    56     LocalServerSocketBase& socket;
    57 
    58     /**
    5954     * The path of the pipe to accept.
    6055     */
     
    7166     */
    7267    LocalAcceptor(LocalServerSocketBase* socket, const char* name);
     68
     69    /**
     70     * Get the socket.
     71     *
     72     * It returns the overlappable from the Completer part, knowing
     73     * that it must be a LocalServerSocketBase.
     74     */
     75    LocalServerSocketBase& getServerSocket() const;
    7376
    7477public:
     
    130133//------------------------------------------------------------------------------
    131134
     135inline LocalServerSocketBase& LocalAcceptor::getServerSocket() const
     136{
     137    return static_cast<LocalServerSocketBase&>(overlappable);
     138}
     139
     140//------------------------------------------------------------------------------
     141
    132142inline LocalSocket* LocalAcceptor::getSocket(Waiter* waiter,
    133143                                             size_t readingCapacity,
     
    136146    if (!accepted) return 0;
    137147
    138     LocalSocket* s = new LocalSocket(waiter, socket.releaseHandle(),
     148    LocalSocket* s = new LocalSocket(waiter, getServerSocket().releaseHandle(),
    139149                                     readingCapacity, writingCapacity);
    140150    accepted = false;
    141151    return s;
    142152}
     153
    143154//------------------------------------------------------------------------------
    144155
     
    146157                                             size_t writingCapacity)
    147158{
    148     return getSocket(socket.waiter, readingCapacity, writingCapacity);
     159    return getSocket(getServerSocket().waiter,
     160                     readingCapacity, writingCapacity);
    149161}
    150162
     
    153165inline const ::xplcommon::Failable& LocalAcceptor::getFailable() const
    154166{
    155     return socket;
     167    return overlappable;
    156168}
    157169
     
    160172inline ::xplcommon::Failable& LocalAcceptor::getFailable()
    161173{
    162     return socket;
     174    return overlappable;
    163175}
    164176
Note: See TracChangeset for help on using the changeset viewer.