[ 
https://issues.apache.org/jira/browse/QPID-1377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12641559#action_12641559
 ] 

Ted Ross commented on QPID-1377:
--------------------------------

Steve,

Not sure, but I think this commit may have broken the build.  Here's what I'm 
getting on Fedora 8 on a clean checkout:

 g++ -DHAVE_CONFIG_H -I. -Igen -I./gen -Werror -pedantic -Wall -Wextra 
-Wno-shadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long 
-Wvolatile-register-var -Winvalid-pch -Wno-system-headers -Woverloaded-virtual 
-DCONF_FILE=\"/usr/local/etc/qpid/sslclient.conf\" -g -O2 -MT 
qpid/client/sslconnector_la-SslConnector.lo -MD -MP -MF 
qpid/client/.deps/sslconnector_la-SslConnector.Tpo -c 
qpid/client/SslConnector.cpp  -fPIC -DPIC -o 
qpid/client/.libs/sslconnector_la-SslConnector.o
./qpid/sys/ssl/SslIo.h:45: error: 'DispatchHandle' in namespace 'qpid::sys' 
does not name a type
./qpid/sys/ssl/SslIo.h:53: error: 'qpid::sys::DispatchHandle' has not been 
declared
./qpid/sys/ssl/SslIo.h:60: error: expected class-name before '{' token
./qpid/sys/ssl/SslIo.h:79: error: 'DispatchHandle' has not been declared
./qpid/sys/ssl/SslIo.h:112: error: expected class-name before '{' token
./qpid/sys/ssl/SslIo.h:159: error: 'qpid::sys::DispatchHandle' has not been 
declared
./qpid/sys/ssl/SslIo.h:160: error: 'qpid::sys::DispatchHandle' has not been 
declared
./qpid/sys/ssl/SslIo.h:161: error: 'qpid::sys::DispatchHandle' has not been 
declared
./qpid/sys/ssl/SslIo.h:162: error: 'qpid::sys::DispatchHandle' has not been 
declared
make[3]: *** [qpid/client/sslconnector_la-SslConnector.lo] Error 1
make[3]: Leaving directory `/home/ross/svn/qpid/cpp/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/ross/svn/qpid/cpp/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/ross/svn/qpid/cpp/src'
make: *** [all-recursive] Error 1

-Ted


> C++ Refactor asynch level to enable easier Windows porting
> ----------------------------------------------------------
>
>                 Key: QPID-1377
>                 URL: https://issues.apache.org/jira/browse/QPID-1377
>             Project: Qpid
>          Issue Type: Improvement
>          Components: C++ Broker, C++ Client
>            Reporter: Steve Huston
>            Assignee: Steve Huston
>             Fix For: M4
>
>         Attachments: aio.diff
>
>
> This issue is in preparation for the rest of the Windows porting. It's by 
> itself because it deals with refactoring/splitting some of the existing 
> qpid/sys modules to better prepare for adding the Windows code. Most of these 
> ideas have been reviewed a few times by Andrew Stitcher in the past, though 
> some of the AsynchIO splitting is new (I'll explain why below).
> Here's the high level overview:
> - Poller::Direction names IN and OUT change to INPUT and OUTPUT to avoid 
> clashing with Windows-defined macros. Yucky, but that's life.
> - DispatcHandle - split out of Dispatcher.h, .cpp to new files 
> DispatchHandle.h, .cpp - makes it easier to reuse Dispatcher for Windows; 
> DispatchHandle is not needed.
> - qpid::sys::AsynchIO turns into a pure virtual interface class; platforms 
> derive from it and whatever else they need to implement correctly for the 
> platform. This is for two reasons:
>     1. The previous approach discussed was to basically redefine/implement 
> AsynchIO as needed in Windows, then for every place where AsynchIO is used, 
> clone the file and edit to use Windows. This was working ok, but recently a 
> number of changes were made to the cloned-and-copied sources and it became 
> clear that the copy-and-edit approach was going to cause me way too many 
> headaches to deal with over time.
>     2. Uses of AsynchIO are in client and broker code where there are dynamic 
> allocations, but AsynchIO implementation, as well as its deletions, are in 
> common. As these are split into actual DLLs, having allocations and deletions 
> in different DLLs will cause heap problems on Windows. So, since common does 
> the deletes based on usage and outstanding operations, the allocations are 
> now there in common as well. This is via a new qpid::sys::AsynchIO::create() 
> static method. Each platform implements AsynchIO::create() as it needs; in 
> particular, it allocates a platform-specific class derived from 
> qpid::sys::AsynchIO which neatly hides all the platform messiness behind a 
> virtual interface.
> There's also some initial Windows code in the patch - you can ignore things 
> in qpid/sys/windows unless you're really interested in the platform code - 
> it's not related to the Linux code.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to