You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2006/10/11 17:50:21 UTC
svn commit: r462834 [2/2] - in /incubator/qpid/trunk/qpid/cpp: ./
broker/inc/ broker/src/ broker/test/ client/inc/ client/src/ client/test/
common/ common/concurrent/inc/ common/concurrent/src/
common/framing/generated/stylesheets/ common/framing/inc/ ...
Modified: incubator/qpid/trunk/qpid/cpp/common/framing/src/Buffer.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/framing/src/Buffer.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/framing/src/Buffer.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/framing/src/Buffer.cpp Wed Oct 11 08:50:15 2006
@@ -18,7 +18,7 @@
#include "Buffer.h"
#include "FieldTable.h"
-qpid::framing::Buffer::Buffer(int _size) : size(_size), position(0), limit(_size){
+qpid::framing::Buffer::Buffer(u_int32_t _size) : size(_size), position(0), limit(_size){
data = new char[size];
}
@@ -37,7 +37,7 @@
}
void qpid::framing::Buffer::compact(){
- int p = limit - position;
+ u_int32_t p = limit - position;
//copy p chars from position to 0
memmove(data, data + position, p);
limit = size;
@@ -54,7 +54,7 @@
limit = r_limit;
}
-int qpid::framing::Buffer::available(){
+u_int32_t qpid::framing::Buffer::available(){
return limit - position;
}
@@ -62,7 +62,7 @@
return data + position;
}
-void qpid::framing::Buffer::move(int bytes){
+void qpid::framing::Buffer::move(u_int32_t bytes){
position += bytes;
}
@@ -123,29 +123,29 @@
void qpid::framing::Buffer::putShortString(const string& s){
- u_int8_t size = s.length();
- putOctet(size);
- s.copy(data + position, size);
- position += size;
+ u_int8_t len = s.length();
+ putOctet(len);
+ s.copy(data + position, len);
+ position += len;
}
void qpid::framing::Buffer::putLongString(const string& s){
- u_int32_t size = s.length();
- putLong(size);
- s.copy(data + position, size);
- position += size;
+ u_int32_t len = s.length();
+ putLong(len);
+ s.copy(data + position, len);
+ position += len;
}
void qpid::framing::Buffer::getShortString(string& s){
- u_int8_t size = getOctet();
- s.assign(data + position, size);
- position += size;
+ u_int8_t len = getOctet();
+ s.assign(data + position, len);
+ position += len;
}
void qpid::framing::Buffer::getLongString(string& s){
- u_int32_t size = getLong();
- s.assign(data + position, size);
- position += size;
+ u_int32_t len = getLong();
+ s.assign(data + position, len);
+ position += len;
}
void qpid::framing::Buffer::putFieldTable(const FieldTable& t){
@@ -157,12 +157,12 @@
}
void qpid::framing::Buffer::putRawData(const string& s){
- u_int32_t size = s.length();
- s.copy(data + position, size);
- position += size;
+ u_int32_t len = s.length();
+ s.copy(data + position, len);
+ position += len;
}
-void qpid::framing::Buffer::getRawData(string& s, u_int32_t size){
- s.assign(data + position, size);
- position += size;
+void qpid::framing::Buffer::getRawData(string& s, u_int32_t len){
+ s.assign(data + position, len);
+ position += len;
}
Modified: incubator/qpid/trunk/qpid/cpp/common/framing/src/FieldTable.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/framing/src/FieldTable.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/framing/src/FieldTable.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/framing/src/FieldTable.cpp Wed Oct 11 08:50:15 2006
@@ -27,12 +27,12 @@
FieldTable::~FieldTable() {}
u_int32_t FieldTable::size() const {
- u_int32_t size(4);
+ u_int32_t len(4);
for(ValueMap::const_iterator i = values.begin(); i != values.end(); ++i) {
// 2 = shortstr_len_byyte + type_char_byte
- size += 2 + (i->first).size() + (i->second)->size();
+ len += 2 + (i->first).size() + (i->second)->size();
}
- return size;
+ return len;
}
int FieldTable::count() const {
@@ -74,9 +74,6 @@
}
namespace {
-// TODO aconway 2006-09-26: This is messy. Revisit the field table
-// and Value classes with a traits-based approach.
-//
template <class T> T default_value() { return T(); }
template <> int default_value<int>() { return 0; }
template <> u_int64_t default_value<u_int64_t>() { return 0; }
@@ -117,9 +114,11 @@
}
void FieldTable::decode(Buffer& buffer){
- u_int32_t size = buffer.getLong();
- int leftover = buffer.available() - size;
-
+ u_int32_t len = buffer.getLong();
+ u_int32_t available = buffer.available();
+ if (available < len)
+ THROW_QPID_ERROR(FRAMING_ERROR, "Not enough data for field table.");
+ u_int32_t leftover = available - len;
while(buffer.available() > leftover){
std::string name;
buffer.getShortString(name);
Added: incubator/qpid/trunk/qpid/cpp/common/framing/src/InitiationHandler.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/framing/src/InitiationHandler.cpp?view=auto&rev=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/framing/src/InitiationHandler.cpp (added)
+++ incubator/qpid/trunk/qpid/cpp/common/framing/src/InitiationHandler.cpp Wed Oct 11 08:50:15 2006
@@ -0,0 +1,21 @@
+/*
+ *
+ * Copyright (c) 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "InitiationHandler.h"
+
+qpid::framing::InitiationHandler::~InitiationHandler() {}
Propchange: incubator/qpid/trunk/qpid/cpp/common/framing/src/InitiationHandler.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/qpid/trunk/qpid/cpp/common/framing/src/InputHandler.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/framing/src/InputHandler.cpp?view=auto&rev=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/framing/src/InputHandler.cpp (added)
+++ incubator/qpid/trunk/qpid/cpp/common/framing/src/InputHandler.cpp Wed Oct 11 08:50:15 2006
@@ -0,0 +1,21 @@
+/*
+ *
+ * Copyright (c) 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "InputHandler.h"
+
+qpid::framing::InputHandler::~InputHandler() {}
Propchange: incubator/qpid/trunk/qpid/cpp/common/framing/src/InputHandler.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/qpid/trunk/qpid/cpp/common/framing/src/OutputHandler.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/framing/src/OutputHandler.cpp?view=auto&rev=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/framing/src/OutputHandler.cpp (added)
+++ incubator/qpid/trunk/qpid/cpp/common/framing/src/OutputHandler.cpp Wed Oct 11 08:50:15 2006
@@ -0,0 +1,21 @@
+/*
+ *
+ * Copyright (c) 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "OutputHandler.h"
+
+qpid::framing::OutputHandler::~OutputHandler() {}
Propchange: incubator/qpid/trunk/qpid/cpp/common/framing/src/OutputHandler.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/qpid/trunk/qpid/cpp/common/framing/test/BodyHandlerTest.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/framing/test/BodyHandlerTest.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/framing/test/BodyHandlerTest.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/framing/test/BodyHandlerTest.cpp Wed Oct 11 08:50:15 2006
@@ -17,11 +17,7 @@
*/
#include <iostream>
#include "amqp_framing.h"
-#include <cppunit/TestCase.h>
-#include <cppunit/TextTestRunner.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
-
+#include "qpid_test_plugin.h"
using namespace qpid::framing;
class BodyHandlerTest : public CppUnit::TestCase
Modified: incubator/qpid/trunk/qpid/cpp/common/framing/test/field_table_test.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/framing/test/field_table_test.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/framing/test/field_table_test.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/framing/test/field_table_test.cpp Wed Oct 11 08:50:15 2006
@@ -17,10 +17,7 @@
*/
#include <iostream>
#include "amqp_framing.h"
-#include <cppunit/TestCase.h>
-#include <cppunit/TextTestRunner.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
+#include <qpid_test_plugin.h>
using namespace qpid::framing;
Modified: incubator/qpid/trunk/qpid/cpp/common/framing/test/framing_test.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/framing/test/framing_test.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/framing/test/framing_test.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/framing/test/framing_test.cpp Wed Oct 11 08:50:15 2006
@@ -19,10 +19,7 @@
#include "ConnectionRedirectBody.h"
#include <iostream>
#include <sstream>
-#include <cppunit/TestCase.h>
-#include <cppunit/TextTestRunner.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
+#include <qpid_test_plugin.h>
#include <typeinfo>
using namespace qpid::framing;
Modified: incubator/qpid/trunk/qpid/cpp/common/framing/test/header_test.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/framing/test/header_test.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/framing/test/header_test.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/framing/test/header_test.cpp Wed Oct 11 08:50:15 2006
@@ -17,10 +17,7 @@
*/
#include <iostream>
#include "amqp_framing.h"
-#include <cppunit/TestCase.h>
-#include <cppunit/TextTestRunner.h>
-#include <cppunit/extensions/HelperMacros.h>
-#include <cppunit/plugin/TestPlugIn.h>
+#include <qpid_test_plugin.h>
using namespace qpid::framing;
Modified: incubator/qpid/trunk/qpid/cpp/common/io/Makefile
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/Makefile?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/Makefile (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/Makefile Wed Oct 11 08:50:15 2006
@@ -16,10 +16,6 @@
QPID_HOME = ../../..
include ${QPID_HOME}/cpp/options.mk
-
-# Compiler flags
-CXXFLAGS = ${DEBUG} ${OPT} -MMD -I inc -I ../concurrent/inc -I ../error/inc -I ../framing/inc -I ../framing/generated -I ${APR_HOME}/include/apr-1/
-
SOURCES := $(wildcard src/*.cpp)
OBJECTS := $(subst .cpp,.o,$(SOURCES))
DEPS := $(subst .cpp,.d,$(SOURCES))
Modified: incubator/qpid/trunk/qpid/cpp/common/io/inc/APRConnector.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/inc/APRConnector.h?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/inc/APRConnector.h (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/inc/APRConnector.h Wed Oct 11 08:50:15 2006
@@ -68,7 +68,7 @@
void checkIdle(apr_status_t status);
void writeBlock(qpid::framing::AMQDataBlock* data);
- void writeToSocket(char* data, int available);
+ void writeToSocket(char* data, size_t available);
void setSocketTimeout();
void run();
Modified: incubator/qpid/trunk/qpid/cpp/common/io/inc/ConnectorImpl.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/inc/ConnectorImpl.h?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/inc/ConnectorImpl.h (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/inc/ConnectorImpl.h Wed Oct 11 08:50:15 2006
@@ -32,7 +32,7 @@
{
public:
- ConnectorImpl(bool debug = false, u_int32_t buffer_size = 1024):APRConnector(debug,buffer_size){};
+ ConnectorImpl(bool _debug = false, u_int32_t buffer_size = 1024):APRConnector(_debug,buffer_size){};
virtual ~ConnectorImpl(){};
};
#else
@@ -40,7 +40,7 @@
{
public:
- ConnectorImpl(bool debug = false, u_int32_t buffer_size = 1024):LConnector(debug, buffer_size){};
+ ConnectorImpl(bool _debug = false, u_int32_t buffer_size = 1024):LConnector(_debug, buffer_size){};
virtual ~ConnectorImpl(){};
};
Modified: incubator/qpid/trunk/qpid/cpp/common/io/inc/LFProcessor.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/inc/LFProcessor.h?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/inc/LFProcessor.h (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/inc/LFProcessor.h Wed Oct 11 08:50:15 2006
@@ -48,12 +48,12 @@
const apr_pollfd_t* signalledFDs;
int count;
const int workerCount;
+ bool hasLeader;
qpid::concurrent::Thread** const workers;
qpid::concurrent::APRMonitor leadLock;
qpid::concurrent::APRMonitor countLock;
qpid::concurrent::APRThreadFactory factory;
std::vector<LFSessionContext*> sessions;
- bool hasLeader;
volatile bool stopped;
const apr_pollfd_t* getNextEvent();
Modified: incubator/qpid/trunk/qpid/cpp/common/io/src/APRConnector.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/src/APRConnector.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/src/APRConnector.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/src/APRConnector.cpp Wed Oct 11 08:50:15 2006
@@ -26,15 +26,18 @@
using namespace qpid::framing;
using qpid::QpidError;
-APRConnector::APRConnector(bool _debug, u_int32_t buffer_size) : closed(true), debug(_debug),
- idleIn(0), idleOut(0), timeout(0),
- timeoutHandler(0),
- shutdownHandler(0),
- lastIn(0), lastOut(0),
- receive_buffer_size(buffer_size),
- send_buffer_size(buffer_size),
- inbuf(receive_buffer_size),
- outbuf(send_buffer_size){
+APRConnector::APRConnector(bool _debug, u_int32_t buffer_size) :
+ debug(_debug),
+ receive_buffer_size(buffer_size),
+ send_buffer_size(buffer_size),
+ closed(true),
+ lastIn(0), lastOut(0),
+ timeout(0),
+ idleIn(0), idleOut(0),
+ timeoutHandler(0),
+ shutdownHandler(0),
+ inbuf(receive_buffer_size),
+ outbuf(send_buffer_size){
APRBase::increment();
@@ -104,7 +107,7 @@
writeLock->release();
}
-void APRConnector::writeToSocket(char* data, int available){
+void APRConnector::writeToSocket(char* data, size_t available){
apr_size_t bytes(available);
apr_size_t written(0);
while(written < available && !closed){
Modified: incubator/qpid/trunk/qpid/cpp/common/io/src/APRSocket.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/src/APRSocket.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/src/APRSocket.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/src/APRSocket.cpp Wed Oct 11 08:50:15 2006
@@ -17,7 +17,7 @@
*/
#include "APRBase.h"
#include "APRSocket.h"
-
+#include <assert.h>
#include <iostream>
using namespace qpid::io;
@@ -45,6 +45,8 @@
do{
bytes = buffer.available();
apr_status_t s = apr_socket_send(socket, buffer.start(), &bytes);
+ // TODO aconway 2006-10-05: better error handling
+ assert(s == 0);
buffer.move(bytes);
}while(bytes > 0);
}
Modified: incubator/qpid/trunk/qpid/cpp/common/io/src/BlockingAPRAcceptor.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/src/BlockingAPRAcceptor.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/src/BlockingAPRAcceptor.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/src/BlockingAPRAcceptor.cpp Wed Oct 11 08:50:15 2006
@@ -24,10 +24,11 @@
using namespace qpid::framing;
using namespace qpid::io;
-BlockingAPRAcceptor::BlockingAPRAcceptor(bool _debug, int c) : connectionBacklog(c),
- threadFactory(new APRThreadFactory()),
- debug(_debug){
-
+BlockingAPRAcceptor::BlockingAPRAcceptor(bool _debug, int c) :
+ debug(_debug),
+ threadFactory(new APRThreadFactory()),
+ connectionBacklog(c)
+{
APRBase::increment();
CHECK_APR_SUCCESS(apr_pool_create(&apr_pool, NULL));
}
Modified: incubator/qpid/trunk/qpid/cpp/common/io/src/BlockingAPRSessionContext.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/src/BlockingAPRSessionContext.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/src/BlockingAPRSessionContext.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/src/BlockingAPRSessionContext.cpp Wed Oct 11 08:50:15 2006
@@ -15,6 +15,7 @@
* limitations under the License.
*
*/
+#include <assert.h>
#include <iostream>
#include "BlockingAPRSessionContext.h"
#include "BlockingAPRAcceptor.h"
@@ -32,10 +33,10 @@
bool _debug)
: socket(_socket),
debug(_debug),
- inbuf(65536),
- outbuf(65536),
handler(0),
acceptor(_acceptor),
+ inbuf(65536),
+ outbuf(65536),
closed(false){
reader = new Reader(this);
@@ -73,9 +74,9 @@
inbuf.flip();
if(!initiated){
- ProtocolInitiation* init = new ProtocolInitiation();
- if(init->decode(inbuf)){
- handler->initiated(init);
+ ProtocolInitiation* protocolInit = new ProtocolInitiation();
+ if(protocolInit->decode(inbuf)){
+ handler->initiated(protocolInit);
if(debug) std::cout << "RECV: [" << &socket << "]: Initialised " << std::endl;
initiated = true;
}
@@ -122,6 +123,7 @@
apr_size_t bytes = available;
while(available > written){
apr_status_t s = apr_socket_send(socket, data + written, &bytes);
+ assert(s == 0); // TODO aconway 2006-10-05: Error Handling.
written += bytes;
bytes = available - written;
}
@@ -146,9 +148,8 @@
}
}
-void BlockingAPRSessionContext::init(SessionHandler* handler){
- this->handler = handler;
- //start the threads
+void BlockingAPRSessionContext::init(SessionHandler* _handler){
+ handler = _handler;
rThread->start();
wThread->start();
}
Modified: incubator/qpid/trunk/qpid/cpp/common/io/src/LFAcceptor.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/src/LFAcceptor.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/src/LFAcceptor.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/src/LFAcceptor.cpp Wed Oct 11 08:50:15 2006
@@ -21,12 +21,12 @@
using namespace qpid::concurrent;
using namespace qpid::io;
-LFAcceptor::LFAcceptor(bool _debug, int c, int worker_threads, int m) : processor(aprPool.pool, worker_threads, 1000, 5000000),
- connectionBacklog(c),
- max_connections_per_processor(m),
- debug(_debug){
-
-}
+LFAcceptor::LFAcceptor(bool _debug, int c, int worker_threads, int m) :
+ processor(aprPool.pool, worker_threads, 1000, 5000000),
+ max_connections_per_processor(m),
+ debug(_debug),
+ connectionBacklog(c)
+{ }
void LFAcceptor::bind(int port, SessionHandlerFactory* factory){
Modified: incubator/qpid/trunk/qpid/cpp/common/io/src/LFProcessor.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/src/LFProcessor.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/src/LFProcessor.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/src/LFProcessor.cpp Wed Oct 11 08:50:15 2006
@@ -25,15 +25,17 @@
using namespace qpid::concurrent;
using qpid::QpidError;
-LFProcessor::LFProcessor(apr_pool_t* pool, int _workers, int _size, int _timeout) : size(_size),
- timeout(_timeout),
- signalledCount(0),
- current(0),
- count(0),
- hasLeader(false),
- workerCount(_workers),
- workers(new Thread*[_workers]),
- stopped(false){
+LFProcessor::LFProcessor(apr_pool_t* pool, int _workers, int _size, int _timeout) :
+ size(_size),
+ timeout(_timeout),
+ signalledCount(0),
+ current(0),
+ count(0),
+ workerCount(_workers),
+ hasLeader(false),
+ workers(new Thread*[_workers]),
+ stopped(false)
+{
CHECK_APR_SUCCESS(apr_pollset_create(&pollset, size, pool, APR_POLLSET_THREADSAFE));
//create & start the required number of threads
@@ -87,17 +89,13 @@
}
bool LFProcessor::full(){
- countLock.acquire();
- bool full = count == size;
- countLock.release();
- return full;
+ Locker locker(countLock);
+ return count == size;
}
bool LFProcessor::empty(){
- countLock.acquire();
- bool empty = count == 0;
- countLock.release();
- return empty;
+ Locker locker(countLock);
+ return count == 0;
}
void LFProcessor::poll(){
Modified: incubator/qpid/trunk/qpid/cpp/common/io/src/LFSessionContext.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/io/src/LFSessionContext.cpp?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/io/src/LFSessionContext.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/common/io/src/LFSessionContext.cpp Wed Oct 11 08:50:15 2006
@@ -26,17 +26,19 @@
LFSessionContext::LFSessionContext(apr_pool_t* _pool, apr_socket_t* _socket,
LFProcessor* const _processor,
- bool _debug) : socket(_socket),
- processor(_processor),
- initiated(false),
- processing(false),
- closing(false),
- in(32768),
- out(32768),
- reading(0),
- writing(0),
- debug(_debug){
-
+ bool _debug) :
+ debug(_debug),
+ socket(_socket),
+ initiated(false),
+ in(32768),
+ out(32768),
+ processor(_processor),
+ processing(false),
+ closing(false),
+ reading(0),
+ writing(0)
+{
+
fd.p = _pool;
fd.desc_type = APR_POLL_SOCKET;
fd.reqevents = APR_POLLIN;
@@ -63,9 +65,9 @@
handler->received(&frame);
}
}else{
- ProtocolInitiation init;
- if(init.decode(in)){
- handler->initiated(&init);
+ ProtocolInitiation protocolInit;
+ if(protocolInit.decode(in)){
+ handler->initiated(&protocolInit);
initiated = true;
if(debug) std::cout << "INIT [" << &socket << "]" << std::endl;
}
@@ -173,8 +175,8 @@
handleClose();
}
-void LFSessionContext::init(SessionHandler* handler){
- this->handler = handler;
+void LFSessionContext::init(SessionHandler* _handler){
+ handler = _handler;
processor->add(&fd);
}
Modified: incubator/qpid/trunk/qpid/cpp/common/utils/src/Makefile
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/common/utils/src/Makefile?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/common/utils/src/Makefile (original)
+++ incubator/qpid/trunk/qpid/cpp/common/utils/src/Makefile Wed Oct 11 08:50:15 2006
@@ -13,13 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-##### Options #####
-QPID_HOME = ../../../..
-
-include ${QPID_HOME}/cpp/options.mk
-##### Compiler flags #####
-CXXFLAGS = -I ../inc -I ${APR_HOME}/include/apr-1/
+QPID_HOME = ../../../..
+include $(QPID_HOME)/cpp/options.mk
+INCLUDES=$(TEST_INCLUDES)
##### Targets #####
# Add additional source files to SOURCE LIST to include them in the build.
Modified: incubator/qpid/trunk/qpid/cpp/options.mk
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/options.mk?view=diff&rev=462834&r1=462833&r2=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/options.mk (original)
+++ incubator/qpid/trunk/qpid/cpp/options.mk Wed Oct 11 08:50:15 2006
@@ -24,15 +24,26 @@
APR_HOME = /usr/local/apr
# Compile flags
-DEBUG = -ggdb3
+DEBUG = -ggdb3 -O0
+OPTIMIZE =
# _USE_APR_IO_ set when APR IO build is desired.
-OPT = -D _USE_APR_IO_ #-O3
+DEFINES = -D _USE_APR_IO_
APR_INCLUDES=-I ${APR_HOME}/include/apr-1/
COMMON_INCLUDES = -I ${COMMON_HOME}/framing/inc -I ${COMMON_HOME}/framing/generated -I ${COMMON_HOME}/concurrent/inc -I ${COMMON_HOME}/io/inc -I ${COMMON_HOME}/error/inc -I $(COMMON_HOME)/utils/inc ${APR_INCLUDES}
SRC_INCLUDES = $(COMMON_INCLUDES) -I inc
-TEST_INCLUDES = $(COMMON_INCLUDES) -I ../inc
+TEST_INCLUDES = $(COMMON_INCLUDES) -I ../inc -I $(QPID_CPP_HOME)/test/include
INCLUDES=$(SRC_INCLUDES) # Default to src
-CXXFLAGS = $(DEBUG) $(OPT) -MMD -fpic $(INCLUDES)
+
+# Warnings: Enable as many as possible, keep the code clean. Please
+# do not disable warnings or remove -Werror without discussing on
+# qpid-dev list.
+#
+# The following warnings deliberately omitted, they warn on valid code.
+# -Wno-unreachable-code -Wpadded
+#
+WARN = -Werror -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch -Winline
+
+CXXFLAGS = $(DEBUG) $(OPTIMIZE) $(DEFINES) $(WARN) -MMD -fpic $(INCLUDES)
# General link flags
LDFLAGS= -L $(LIB_DIR) -L ${APR_HOME}/lib $(RPATH)
Added: incubator/qpid/trunk/qpid/cpp/test/include/qpid_test_plugin.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/test/include/qpid_test_plugin.h?view=auto&rev=462834
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/test/include/qpid_test_plugin.h (added)
+++ incubator/qpid/trunk/qpid/cpp/test/include/qpid_test_plugin.h Wed Oct 11 08:50:15 2006
@@ -0,0 +1,40 @@
+#ifndef _qpid_test_plugin_
+#define _qpid_test_plugin_
+
+/*
+ *
+ * Copyright (c) 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+/**
+ * Convenience to include cppunit headers needed by qpid test plugins and
+ * workaround for warning from superfluous main() declaration
+ * in cppunit/TestPlugIn.h
+ */
+
+#include <cppunit/TestCase.h>
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include <cppunit/plugin/TestPlugIn.h>
+
+// Redefine CPPUNIT_PLUGIN_IMPLEMENT_MAIN to a dummy typedef to avoid warnings.
+//
+#if defined(CPPUNIT_HAVE_UNIX_DLL_LOADER) || defined(CPPUNIT_HAVE_UNIX_SHL_LOADER)
+#undef CPPUNIT_PLUGIN_IMPLEMENT_MAIN
+#define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() typedef char __CppUnitPlugInImplementMainDummyTypeDef
+#endif
+
+#endif /*!_qpid_test_plugin_*/
Propchange: incubator/qpid/trunk/qpid/cpp/test/include/qpid_test_plugin.h
------------------------------------------------------------------------------
svn:eol-style = native