mirror of https://github.com/apache/activemq.git
Applied patch from http://issues.apache.org/jira/browse/GERONIMO-1623, Thanks Mats./activemq Still need to setup a build system for this and have it dynamically download the smart pointer implemenation dependency (BSD lic.)
git-svn-id: https://svn.apache.org/repos/asf/incubator/activemq/trunk@377433 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e7106d31b1
commit
3db3863583
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "BrokerError.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BrokerError::BrokerError()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
BrokerError::~BrokerError()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> BrokerError::getExceptionClass()
|
||||||
|
{
|
||||||
|
return exceptionClass ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerError::setExceptionClass(const char* exceptionClass)
|
||||||
|
{
|
||||||
|
this->exceptionClass->assign(exceptionClass) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> BrokerError::getStackTrace()
|
||||||
|
{
|
||||||
|
return stackTrace ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerError::setStackTrace(const char* stackTrace)
|
||||||
|
{
|
||||||
|
this->stackTrace->assign(stackTrace) ;
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef BrokerError_hpp_
|
||||||
|
#define BrokerError_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr ;
|
||||||
|
using namespace std ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class BrokerError
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<string> exceptionClass ;
|
||||||
|
p<string> stackTrace ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
BrokerError() ;
|
||||||
|
virtual ~BrokerError() ;
|
||||||
|
|
||||||
|
virtual p<string> getExceptionClass() ;
|
||||||
|
virtual void setExceptionClass(const char* exceptionClass) ;
|
||||||
|
virtual p<string> getStackTrace() ;
|
||||||
|
virtual void setStackTrace(const char* exceptionClass) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*BrokerError_hpp_*/
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "BrokerException.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BrokerException::BrokerException(p<BrokerError> cause)
|
||||||
|
: OpenWireException("") // TODO: Add trace
|
||||||
|
{
|
||||||
|
string message ;
|
||||||
|
|
||||||
|
brokerError = cause ;
|
||||||
|
|
||||||
|
// Build exception message
|
||||||
|
message.assign("The operation failed: Type: ") ;
|
||||||
|
message.append( cause->getExceptionClass()->c_str() ) ;
|
||||||
|
message.append(" stack: ") ;
|
||||||
|
message.append( cause->getStackTrace()->c_str() ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
BrokerException::~BrokerException()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
p<BrokerError> BrokerException::getCause()
|
||||||
|
{
|
||||||
|
return brokerError ;
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef BrokerException_hpp_
|
||||||
|
#define BrokerException_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "BrokerError.hpp"
|
||||||
|
#include "OpenWireException.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace std;
|
||||||
|
using namespace ifr ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class BrokerException : public OpenWireException
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<BrokerError> brokerError ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
BrokerException(p<BrokerError> cause) ;
|
||||||
|
virtual ~BrokerException() ;
|
||||||
|
|
||||||
|
virtual p<BrokerError> getCause() ;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*BrokerException_hpp_*/
|
|
@ -0,0 +1,202 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "Connection.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
|
||||||
|
// --- Constructors -------------------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
Connection::Connection(p<ITransport> transport, p<ConnectionInfo> connectionInfo)
|
||||||
|
{
|
||||||
|
this->transport = transport ;
|
||||||
|
this->connectionInfo = connectionInfo ;
|
||||||
|
this->connected = false ;
|
||||||
|
this->transacted = false ;
|
||||||
|
this->closed = false ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
Connection::~Connection()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --- Attribute methods --------------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<ITransport> Connection::getTransport()
|
||||||
|
{
|
||||||
|
return transport ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void Connection::setTransport(p<ITransport> transport) throw(OpenWireException)
|
||||||
|
{
|
||||||
|
this->transport = transport ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<string> Connection::getClientId()
|
||||||
|
{
|
||||||
|
return connectionInfo->getClientId() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void Connection::setClientId(const char* value)
|
||||||
|
{
|
||||||
|
if( connected )
|
||||||
|
throw OpenWireException("You cannot change the ClientId once a connection is established") ;
|
||||||
|
|
||||||
|
connectionInfo->setClientId( value ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
bool Connection::getTransacted()
|
||||||
|
{
|
||||||
|
return transacted ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void Connection::setTransacted(bool tx)
|
||||||
|
{
|
||||||
|
transacted = tx ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
AcknowledgementMode Connection::getAcknowledgementMode()
|
||||||
|
{
|
||||||
|
return acknowledgementMode ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void Connection::setAcknowledgementMode(AcknowledgementMode mode)
|
||||||
|
{
|
||||||
|
acknowledgementMode = mode ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --- Operation methods --------------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<ISession> Connection::createSession() throw(OpenWireException)
|
||||||
|
{
|
||||||
|
return createSession(transacted, acknowledgementMode) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<ISession> Connection::createSession(bool transacted, AcknowledgementMode mode) throw(OpenWireException)
|
||||||
|
{
|
||||||
|
checkConnected() ;
|
||||||
|
|
||||||
|
p<SessionInfo> sessionInfo = createSessionInfo(transacted, acknowledgementMode) ;
|
||||||
|
|
||||||
|
// Send session info to broker
|
||||||
|
syncRequest(sessionInfo) ;
|
||||||
|
|
||||||
|
p<ISession> session = new Session(this, sessionInfo) ;
|
||||||
|
sessions.push_back(session) ;
|
||||||
|
|
||||||
|
return session ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<Response> Connection::syncRequest(p<ICommand> command) throw(OpenWireException)
|
||||||
|
{
|
||||||
|
checkConnected() ;
|
||||||
|
|
||||||
|
p<Response> response = transport->request(command) ;
|
||||||
|
|
||||||
|
if( response->getCommandType() == ExceptionResponse::TYPE )
|
||||||
|
{
|
||||||
|
p<ExceptionResponse> exceptionResponse = (p<ExceptionResponse>&)response ;
|
||||||
|
p<BrokerError> brokerError = exceptionResponse->getException() ;
|
||||||
|
string message ;
|
||||||
|
|
||||||
|
// Build error message
|
||||||
|
message.assign("Request failed: ") ;
|
||||||
|
message.append( brokerError->getExceptionClass()->c_str() ) ;
|
||||||
|
message.append(", ") ;
|
||||||
|
message.append( brokerError->getStackTrace()->c_str() ) ;
|
||||||
|
|
||||||
|
throw new OpenWireException( message.c_str() ) ;
|
||||||
|
}
|
||||||
|
return response ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --- Implementation methods ---------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<SessionInfo> Connection::createSessionInfo(bool transacted, AcknowledgementMode acknowledgementMode)
|
||||||
|
{
|
||||||
|
p<SessionInfo> sessionInfo = new SessionInfo() ;
|
||||||
|
p<SessionId> sessionId = new SessionId() ;
|
||||||
|
|
||||||
|
sessionId->setConnectionId ( connectionInfo->getConnectionId()->getValue()->c_str() ) ;
|
||||||
|
|
||||||
|
mutex.lock() ;
|
||||||
|
sessionId->setValue( ++sessionCounter ) ;
|
||||||
|
mutex.unlock() ;
|
||||||
|
|
||||||
|
sessionInfo->setSessionId( sessionId ) ;
|
||||||
|
return sessionInfo ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void Connection::checkConnected() throw(OpenWireException)
|
||||||
|
{
|
||||||
|
if( closed )
|
||||||
|
throw new ConnectionClosedException("Oops! Connection already closed.") ;
|
||||||
|
|
||||||
|
if( !connected )
|
||||||
|
{
|
||||||
|
syncRequest((p<ICommand>&)connectionInfo) ;
|
||||||
|
connected = true ;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,100 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef Connection_hpp_
|
||||||
|
#define Connection_hpp_
|
||||||
|
|
||||||
|
#include <list>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "ISession.hpp"
|
||||||
|
#include "IConnection.hpp"
|
||||||
|
#include "Session.hpp"
|
||||||
|
#include "OpenWireException.hpp"
|
||||||
|
#include "ConnectionClosedException.hpp"
|
||||||
|
#include "command/ExceptionResponse.hpp"
|
||||||
|
#include "command/ConnectionInfo.hpp"
|
||||||
|
#include "command/SessionInfo.hpp"
|
||||||
|
#include "command/SessionId.hpp"
|
||||||
|
#include "transport/ITransport.hpp"
|
||||||
|
#include "util/SimpleMutex.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
// Turn off warning message for ignored exception specification
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning( disable : 4290 )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace std;
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
using namespace apache::activemq::client::transport;
|
||||||
|
using namespace apache::activemq::client::util;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class Connection : public IConnection
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<ConnectionInfo> connectionInfo ;
|
||||||
|
p<ITransport> transport ;
|
||||||
|
list< p<ISession> > sessions ;
|
||||||
|
bool transacted,
|
||||||
|
connected,
|
||||||
|
closed ;
|
||||||
|
AcknowledgementMode acknowledgementMode ;
|
||||||
|
long sessionCounter ;
|
||||||
|
SimpleMutex mutex ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Constructors
|
||||||
|
Connection(p<ITransport> transport, p<ConnectionInfo> connectionInfo) ;
|
||||||
|
~Connection() ;
|
||||||
|
|
||||||
|
// Attribute methods
|
||||||
|
virtual AcknowledgementMode getAcknowledgementMode() ;
|
||||||
|
virtual void setAcknowledgementMode(AcknowledgementMode mode) ;
|
||||||
|
virtual p<string> getClientId() ;
|
||||||
|
virtual void setClientId(const char* value) ;
|
||||||
|
virtual bool getTransacted() ;
|
||||||
|
virtual void setTransacted(bool tx) ;
|
||||||
|
virtual p<ITransport> getTransport() ;
|
||||||
|
virtual void setTransport(p<ITransport> transport) throw(OpenWireException) ;
|
||||||
|
|
||||||
|
// Operation methods
|
||||||
|
virtual p<ISession> createSession() throw(OpenWireException) ;
|
||||||
|
virtual p<ISession> createSession(bool transacted, AcknowledgementMode mode) throw(OpenWireException) ;
|
||||||
|
virtual p<Response> syncRequest(p<ICommand> command) throw(OpenWireException) ;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// Implementation methods
|
||||||
|
p<SessionInfo> createSessionInfo(bool transacted, AcknowledgementMode mode) ;
|
||||||
|
void checkConnected() throw(OpenWireException) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*Connection_hpp_*/
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "ConnectionClosedException.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
ConnectionClosedException::ConnectionClosedException(const char* message)
|
||||||
|
: OpenWireException(message)
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
ConnectionClosedException::~ConnectionClosedException()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ConnectionClosedException_hpp_
|
||||||
|
#define ConnectionClosedException_hpp_
|
||||||
|
|
||||||
|
#include "OpenWireException.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class ConnectionClosedException : public OpenWireException
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ConnectionClosedException(const char* message) ;
|
||||||
|
virtual ~ConnectionClosedException() ;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ConnectionClosedException_hpp_*/
|
|
@ -0,0 +1,201 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "ConnectionFactory.hpp"
|
||||||
|
#include "Connection.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
ConnectionFactory::ConnectionFactory()
|
||||||
|
{
|
||||||
|
host = new string() ;
|
||||||
|
host->assign("localhost") ;
|
||||||
|
port = 61616 ;
|
||||||
|
username = new string() ;
|
||||||
|
password = new string() ;
|
||||||
|
clientId = new string() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
ConnectionFactory::ConnectionFactory(const char* host, int port)
|
||||||
|
{
|
||||||
|
this->host = new string() ;
|
||||||
|
this->host->assign(host) ;
|
||||||
|
this->port = port ;
|
||||||
|
username = new string() ;
|
||||||
|
password = new string() ;
|
||||||
|
clientId = new string() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
ConnectionFactory::~ConnectionFactory()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --- Attribute methods --------------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<string> ConnectionFactory::getHost()
|
||||||
|
{
|
||||||
|
return host ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void ConnectionFactory::setHost(const char* host)
|
||||||
|
{
|
||||||
|
this->host->assign(host) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
int ConnectionFactory::getPort()
|
||||||
|
{
|
||||||
|
return port ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void ConnectionFactory::setPort(int port)
|
||||||
|
{
|
||||||
|
port = port ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<string> ConnectionFactory::getUsername()
|
||||||
|
{
|
||||||
|
return username ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void ConnectionFactory::setUsername(const char* username)
|
||||||
|
{
|
||||||
|
this->username->assign(username) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<string> ConnectionFactory::getPassword()
|
||||||
|
{
|
||||||
|
return password ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void ConnectionFactory::setPassword(const char* password)
|
||||||
|
{
|
||||||
|
this->password->assign(password) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<string> ConnectionFactory::getClientId()
|
||||||
|
{
|
||||||
|
return clientId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void ConnectionFactory::setClientId(const char* clientId)
|
||||||
|
{
|
||||||
|
this->clientId->assign(clientId) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --- Operation methods --------------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<IConnection> ConnectionFactory::createConnection()
|
||||||
|
{
|
||||||
|
return createConnection(username->c_str(), password->c_str()) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<IConnection> ConnectionFactory::createConnection(const char* username, const char* password)
|
||||||
|
{
|
||||||
|
p<ConnectionInfo> connectionInfo ;
|
||||||
|
p<ITransport> transport ;
|
||||||
|
p<Connection> connection ;
|
||||||
|
|
||||||
|
// Set up a new connection object
|
||||||
|
connectionInfo = createConnectionInfo(username, password) ;
|
||||||
|
transport = createTransport() ;
|
||||||
|
connection = new Connection(transport, connectionInfo) ;
|
||||||
|
connection->setClientId( clientId->c_str() ) ;
|
||||||
|
|
||||||
|
return connection ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// --- Implementation methods ---------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<ConnectionInfo> ConnectionFactory::createConnectionInfo(const char* username, const char* password)
|
||||||
|
{
|
||||||
|
p<ConnectionInfo> connectionInfo = new ConnectionInfo() ;
|
||||||
|
p<ConnectionId> connectionId = new ConnectionId() ;
|
||||||
|
|
||||||
|
connectionId->setValue( createNewConnectionId()->c_str() ) ;
|
||||||
|
connectionInfo->setConnectionId( connectionId ) ;
|
||||||
|
connectionInfo->setUsername( username ) ;
|
||||||
|
connectionInfo->setPassword( password ) ;
|
||||||
|
|
||||||
|
return connectionInfo ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<string> ConnectionFactory::createNewConnectionId()
|
||||||
|
{
|
||||||
|
return Guid::getGuidString() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<ITransport> ConnectionFactory::createTransport()
|
||||||
|
{
|
||||||
|
p<ITransport> transport = new SocketTransport(host->c_str(), port) ;
|
||||||
|
return transport ;
|
||||||
|
}
|
|
@ -0,0 +1,89 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ConnectionFactory_hpp_
|
||||||
|
#define ConnectionFactory_hpp_
|
||||||
|
|
||||||
|
// Must be included before any STL includes
|
||||||
|
#include "util/Guid.hpp"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IConnection.hpp"
|
||||||
|
#include "IConnectionFactory.hpp"
|
||||||
|
#include "command/ConnectionInfo.hpp"
|
||||||
|
#include "command/ConnectionId.hpp"
|
||||||
|
#include "transport/ITransport.hpp"
|
||||||
|
#include "transport/SocketTransport.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
using namespace apache::activemq::client::transport;
|
||||||
|
using namespace apache::activemq::client::util;
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class ConnectionFactory : IConnectionFactory
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<string> host,
|
||||||
|
username,
|
||||||
|
password,
|
||||||
|
clientId ;
|
||||||
|
int port ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Constructors
|
||||||
|
ConnectionFactory() ;
|
||||||
|
ConnectionFactory(const char* host, int port) ;
|
||||||
|
virtual ~ConnectionFactory() ;
|
||||||
|
|
||||||
|
// Attribute methods
|
||||||
|
virtual p<string> getHost() ;
|
||||||
|
virtual void setHost(const char* host) ;
|
||||||
|
virtual int getPort() ;
|
||||||
|
virtual void setPort(int port) ;
|
||||||
|
virtual p<string> getUsername() ;
|
||||||
|
virtual void setUsername(const char* username) ;
|
||||||
|
virtual p<string> getPassword() ;
|
||||||
|
virtual void setPassword(const char* password) ;
|
||||||
|
virtual p<string> getClientId() ;
|
||||||
|
virtual void setClientId(const char* clientId) ;
|
||||||
|
|
||||||
|
// Operation methods
|
||||||
|
virtual p<IConnection> createConnection() ;
|
||||||
|
virtual p<IConnection> createConnection(const char* username, const char* password) ;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// Implementation methods
|
||||||
|
virtual p<ConnectionInfo> createConnectionInfo(const char* username, const char* password) ;
|
||||||
|
virtual p<string> createNewConnectionId() ;
|
||||||
|
virtual p<ITransport> createTransport() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ConnectionFactory_hpp_*/
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "ConsumerClosedException.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
ConsumerClosedException::ConsumerClosedException(const char* message)
|
||||||
|
: OpenWireException(message)
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
ConsumerClosedException::~ConsumerClosedException()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ConsumerClosedException_hpp_
|
||||||
|
#define ConsumerClosedException_hpp_
|
||||||
|
|
||||||
|
#include "OpenWireException.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class ConsumerClosedException : public OpenWireException
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ConsumerClosedException(const char* message) ;
|
||||||
|
~ConsumerClosedException() ;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ConsumerClosedException_hpp_*/
|
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "DestinationFilter.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
// Init static constants
|
||||||
|
const char* DestinationFilter::ANY_DESCENDENT = ">" ;
|
||||||
|
const char* DestinationFilter::ANY_CHILD = "*" ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
DestinationFilter::DestinationFilter()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
DestinationFilter::~DestinationFilter()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
bool DestinationFilter::matches(p<ActiveMQMessage> message)
|
||||||
|
{
|
||||||
|
return matches( message->getDestination() ) ;
|
||||||
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef DestinationFilter_hpp_
|
||||||
|
#define DestinationFilter_hpp_
|
||||||
|
|
||||||
|
#include "command/ActiveMQMessage.hpp"
|
||||||
|
#include "command/ActiveMQDestination.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class DestinationFilter
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
const static char* ANY_DESCENDENT ;
|
||||||
|
const static char* ANY_CHILD ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
DestinationFilter() ;
|
||||||
|
virtual ~DestinationFilter() ;
|
||||||
|
|
||||||
|
virtual bool matches(p<ActiveMQMessage> message) ;
|
||||||
|
virtual bool matches(p<ActiveMQDestination> destination) = 0 ;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*DestinationFilter_hpp_*/
|
|
@ -0,0 +1,47 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "FutureResponse.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
FutureResponse::FutureResponse()
|
||||||
|
{
|
||||||
|
complete = false ;
|
||||||
|
response = NULL ;
|
||||||
|
}
|
||||||
|
|
||||||
|
FutureResponse::~FutureResponse()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
p<Response> FutureResponse::getResponse()
|
||||||
|
{
|
||||||
|
return response ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FutureResponse::setResponse(p<Response> response)
|
||||||
|
{
|
||||||
|
response = response ;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FutureResponse::isCompleted()
|
||||||
|
{
|
||||||
|
return complete ;
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef FutureResponse_hpp_
|
||||||
|
#define FutureResponse_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "command/Response.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Interface for commands.
|
||||||
|
*/
|
||||||
|
class FutureResponse
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<Response> response ;
|
||||||
|
bool complete ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
FutureResponse() ;
|
||||||
|
virtual ~FutureResponse() ;
|
||||||
|
|
||||||
|
virtual p<Response> getResponse() ;
|
||||||
|
virtual void setResponse(p<Response> response) ;
|
||||||
|
virtual bool isCompleted() ;
|
||||||
|
|
||||||
|
// TODO: add notify/wait
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*FutureResponse_hpp_*/
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IConnection_hpp_
|
||||||
|
#define IConnection_hpp_
|
||||||
|
|
||||||
|
#include "ISession.hpp"
|
||||||
|
#include "OpenWireException.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
// Turn off warning message for ignored exception specification
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning( disable : 4290 )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
enum AcknowledgementMode {
|
||||||
|
UnknownMode, AutoMode, ClientMode, TransactionalMode
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct IConnection
|
||||||
|
{
|
||||||
|
virtual p<ISession> createSession() throw(OpenWireException) = 0 ;
|
||||||
|
virtual p<ISession> createSession(bool transacted, AcknowledgementMode ackMode) throw(OpenWireException) = 0 ;
|
||||||
|
virtual bool getTransacted() = 0 ;
|
||||||
|
virtual void setTransacted(bool tx) = 0 ;
|
||||||
|
virtual AcknowledgementMode getAcknowledgementMode() = 0 ;
|
||||||
|
virtual void setAcknowledgementMode(AcknowledgementMode mode) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IConnection_hpp_*/
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IConnectionFactory_hpp_
|
||||||
|
#define IConnectionFactory_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IConnection.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct IConnectionFactory
|
||||||
|
{
|
||||||
|
virtual p<IConnection> createConnection() = 0 ;
|
||||||
|
virtual p<IConnection> createConnection(const char* username, const char* password) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IConnectionFactory_hpp_*/
|
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IDestination_hpp_
|
||||||
|
#define IDestination_hpp_
|
||||||
|
|
||||||
|
#include "command/ICommand.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct IDestination
|
||||||
|
{
|
||||||
|
// Empty marker interface
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IDestination_hpp_*/
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IMessage_hpp_
|
||||||
|
#define IMessage_hpp_
|
||||||
|
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct IMessage
|
||||||
|
{
|
||||||
|
virtual p<IDestination> getFromDestination() = 0 ;
|
||||||
|
virtual void setFromDestination(p<IDestination> destination) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IMessage_hpp_*/
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IMessageConsumer_hpp_
|
||||||
|
#define IMessageConsumer_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IMessage.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct IMessageConsumer
|
||||||
|
{
|
||||||
|
virtual p<IMessage> receive() = 0 ;
|
||||||
|
virtual p<IMessage> receiveNoWait() = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IMessageConsumer_hpp_*/
|
|
@ -0,0 +1,47 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IMessageProducer_hpp_
|
||||||
|
#define IMessageProducer_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "IMessage.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct IMessageProducer
|
||||||
|
{
|
||||||
|
virtual void send(p<IMessage> message) = 0 ;
|
||||||
|
virtual void send(p<IDestination> destination, p<IMessage> message) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IMessageProducer_hpp_*/
|
|
@ -0,0 +1,47 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IQueue_hpp_
|
||||||
|
#define IQueue_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct IQueue : IDestination
|
||||||
|
{
|
||||||
|
virtual p<string> getQueueName() = 0 ;
|
||||||
|
virtual void setQueueName(const char* name) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IQueue_hpp_*/
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ISession_hpp_
|
||||||
|
#define ISession_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "IMessageProducer.hpp"
|
||||||
|
#include "IMessageConsumer.hpp"
|
||||||
|
#include "IQueue.hpp"
|
||||||
|
#include "ITopic.hpp"
|
||||||
|
#include "ITextMessage.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct ISession
|
||||||
|
{
|
||||||
|
virtual p<IMessageProducer> createProducer() = 0 ;
|
||||||
|
virtual p<IMessageProducer> createProducer(p<IDestination> destination) = 0 ;
|
||||||
|
virtual p<IMessageConsumer> createConsumer(p<IDestination> destination) = 0 ;
|
||||||
|
virtual p<IMessageConsumer> createConsumer(p<IDestination> destination, const char* selector) = 0 ;
|
||||||
|
virtual p<IQueue> getQueue(const char* name) = 0 ;
|
||||||
|
virtual p<ITopic> getTopic(const char* name) = 0 ;
|
||||||
|
virtual p<IMessage> createMessage() = 0 ;
|
||||||
|
virtual p<ITextMessage> createTextMessage() = 0 ;
|
||||||
|
virtual p<ITextMessage> createTextMessage(const char* text) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ISession_hpp_*/
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ITemporaryQueue_hpp_
|
||||||
|
#define ITemporaryQueue_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct ITemporaryQueue : IDestination
|
||||||
|
{
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ITemporaryQueue_hpp_*/
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ITemporaryTopic_hpp_
|
||||||
|
#define ITemporaryTopic_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct ITemporaryTopic : IDestination
|
||||||
|
{
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ITemporaryTopic_hpp_*/
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ITextMessage_hpp_
|
||||||
|
#define ITextMessage_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IMessage.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct ITextMessage : IMessage
|
||||||
|
{
|
||||||
|
virtual string* getText() = 0 ;
|
||||||
|
virtual void setText(string* txt) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ITextMessage_hpp_*/
|
|
@ -0,0 +1,47 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ITopic_hpp_
|
||||||
|
#define ITopic_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct ITopic : IDestination
|
||||||
|
{
|
||||||
|
virtual p<string> getTopicName() = 0 ;
|
||||||
|
virtual void setTopicName(const char* name) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ITopic_hpp_*/
|
|
@ -0,0 +1,56 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "MessageConsumer.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
MessageConsumer::MessageConsumer(p<Session> session, p<ConsumerInfo> producerInfo)
|
||||||
|
{
|
||||||
|
this->session = session ;
|
||||||
|
this->consumerInfo = consumerInfo ;
|
||||||
|
this->closed = false ;
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageConsumer::~MessageConsumer()
|
||||||
|
{
|
||||||
|
session->disposeOf( consumerInfo->getConsumerId() ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IMessage> MessageConsumer::receive()
|
||||||
|
{
|
||||||
|
checkClosed() ;
|
||||||
|
// TODO
|
||||||
|
return NULL ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IMessage> MessageConsumer::receiveNoWait()
|
||||||
|
{
|
||||||
|
checkClosed() ;
|
||||||
|
// TODO
|
||||||
|
return NULL ;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implementation methods ------------------------------------------------
|
||||||
|
|
||||||
|
void MessageConsumer::checkClosed() throw(OpenWireException)
|
||||||
|
{
|
||||||
|
if( closed )
|
||||||
|
throw new ConnectionClosedException("Oops! Connection already closed") ;
|
||||||
|
}
|
|
@ -0,0 +1,74 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef MessageConsumer_hpp_
|
||||||
|
#define MessageConsume_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "IMessage.hpp"
|
||||||
|
#include "IMessageConsumer.hpp"
|
||||||
|
#include "Session.hpp"
|
||||||
|
#include "OpenWireException.hpp"
|
||||||
|
#include "ConnectionClosedException.hpp"
|
||||||
|
#include "command/ConsumerInfo.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
// Turn off warning message for ignored exception specification
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning( disable : 4290 )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class MessageConsumer : public IMessageConsumer
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<Session> session ;
|
||||||
|
p<ConsumerInfo> consumerInfo ;
|
||||||
|
bool closed ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
MessageConsumer(p<Session> session, p<ConsumerInfo> consumerInfo) ;
|
||||||
|
~MessageConsumer() ;
|
||||||
|
|
||||||
|
/* TODO
|
||||||
|
virtual void setMessageListener(p<IMessageListener> listener) ;
|
||||||
|
virtual p<IMessageListener> getMessageListener() ;
|
||||||
|
*/
|
||||||
|
|
||||||
|
virtual p<IMessage> receive() ;
|
||||||
|
virtual p<IMessage> receiveNoWait() ;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void checkClosed() throw(OpenWireException) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IMessageConsumer_hpp_*/
|
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "MessageProducer.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
MessageProducer::MessageProducer(p<Session> session, p<ProducerInfo> producerInfo)
|
||||||
|
{
|
||||||
|
this->session = session ;
|
||||||
|
this->producerInfo = producerInfo ;
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageProducer::~MessageProducer()
|
||||||
|
{
|
||||||
|
session->disposeOf( producerInfo->getProducerId() ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MessageProducer::send(p<IMessage> message)
|
||||||
|
{
|
||||||
|
send(producerInfo->getDestination(), message) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MessageProducer::send(p<IDestination> destination, p<IMessage> message)
|
||||||
|
{
|
||||||
|
session->doSend(destination, message) ;
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef MessageProducer_hpp_
|
||||||
|
#define MessageProducer_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "IMessage.hpp"
|
||||||
|
#include "IMessageProducer.hpp"
|
||||||
|
#include "Session.hpp"
|
||||||
|
#include "command/ProducerInfo.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class MessageProducer : public IMessageProducer
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<Session> session ;
|
||||||
|
p<ProducerInfo> producerInfo ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
MessageProducer(p<Session> session, p<ProducerInfo> producerInfo) ;
|
||||||
|
~MessageProducer() ;
|
||||||
|
|
||||||
|
virtual void send(p<IMessage> message) ;
|
||||||
|
virtual void send(p<IDestination> destination, p<IMessage> message) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IMessageProducer_hpp_*/
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "OpenWireException.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
OpenWireException::OpenWireException(const char* message)
|
||||||
|
: exception(message)
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
OpenWireException::~OpenWireException()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef OpenWireException_hpp_
|
||||||
|
#define OpenWireException_hpp_
|
||||||
|
|
||||||
|
#include <exception>
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class OpenWireException : public exception
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
OpenWireException(const char* message) ;
|
||||||
|
~OpenWireException() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*OpenWireException_hpp_*/
|
|
@ -0,0 +1,150 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "Session.hpp"
|
||||||
|
#include "command/ActiveMQQueue.hpp"
|
||||||
|
#include "command/ActiveMQTopic.hpp"
|
||||||
|
#include "command/ActiveMQMessage.hpp"
|
||||||
|
#include "command/ActiveMQTextMessage.hpp"
|
||||||
|
#include "command/ProducerInfo.hpp"
|
||||||
|
#include "command/ConsumerInfo.hpp"
|
||||||
|
#include "command/MessageAck.hpp"
|
||||||
|
#include "MessageConsumer.hpp"
|
||||||
|
#include "MessageProducer.hpp"
|
||||||
|
#include "Connection.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
Session::Session(p<Connection> connection, p<SessionInfo> info)
|
||||||
|
{
|
||||||
|
this->connection = connection ;
|
||||||
|
this->sessionInfo = info ;
|
||||||
|
}
|
||||||
|
|
||||||
|
Session::~Session()
|
||||||
|
{
|
||||||
|
// De-activate session
|
||||||
|
disposeOf(sessionInfo->getSessionId()) ; //(IDataStructure*)
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IMessageProducer> Session::createProducer()
|
||||||
|
{
|
||||||
|
return createProducer(NULL) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IMessageProducer> Session::createProducer(p<IDestination> destination)
|
||||||
|
{
|
||||||
|
p<ProducerInfo> command = createProducerInfo(destination) ;
|
||||||
|
connection->syncRequest(command) ; //(ICommand*)
|
||||||
|
p<IMessageProducer> messageProducer = new MessageProducer(this, command) ;
|
||||||
|
return messageProducer ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Session::acknowledge(p<IMessage> message)
|
||||||
|
{
|
||||||
|
if( ackMode == ClientMode )
|
||||||
|
{
|
||||||
|
p<MessageAck> msgAck = new MessageAck() ;
|
||||||
|
// TODO complete packet
|
||||||
|
connection->syncRequest(msgAck) ; //(ICommand*)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IMessageConsumer> Session::createConsumer(p<IDestination> destination)
|
||||||
|
{
|
||||||
|
return createConsumer(destination, NULL) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IMessageConsumer> Session::createConsumer(p<IDestination> destination, const char* selector)
|
||||||
|
{
|
||||||
|
p<ConsumerInfo> command = createConsumerInfo(destination, selector) ;
|
||||||
|
connection->syncRequest(command) ; //(ICommand*)
|
||||||
|
p<IMessageConsumer> messageConsumer = new MessageConsumer(this, command) ;
|
||||||
|
return messageConsumer ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IQueue> Session::getQueue(const char* name)
|
||||||
|
{
|
||||||
|
p<IQueue> queue = (IQueue*)new ActiveMQQueue(name) ;
|
||||||
|
return queue ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ITopic> Session::getTopic(const char* name)
|
||||||
|
{
|
||||||
|
p<ITopic> topic = (ITopic*)new ActiveMQTopic(name) ;
|
||||||
|
return topic ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IMessage> Session::createMessage()
|
||||||
|
{
|
||||||
|
p<IMessage> message = (IMessage*)new ActiveMQMessage() ;
|
||||||
|
return message ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ITextMessage> Session::createTextMessage()
|
||||||
|
{
|
||||||
|
p<ITextMessage> message = (ITextMessage*)new ActiveMQTextMessage() ;
|
||||||
|
return message ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ITextMessage> Session::createTextMessage(const char* text)
|
||||||
|
{
|
||||||
|
p<ITextMessage> message = (ITextMessage*)new ActiveMQTextMessage(text) ;
|
||||||
|
return message ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Session::doSend(p<IDestination> destination, p<IMessage> message)
|
||||||
|
{
|
||||||
|
p<ActiveMQMessage> command = ActiveMQMessage::transform(message) ;
|
||||||
|
// TODO complete packet
|
||||||
|
connection->syncRequest(command) ; //(ICommand*)
|
||||||
|
}
|
||||||
|
|
||||||
|
void Session::disposeOf(p<IDataStructure> objectId)
|
||||||
|
{
|
||||||
|
p<RemoveInfo> command = new RemoveInfo() ;
|
||||||
|
command->setObjectId( objectId ) ;
|
||||||
|
|
||||||
|
connection->syncRequest(command) ; //(ICommand*)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implementation methods ------------------------------------------
|
||||||
|
|
||||||
|
p<ConsumerInfo> Session::createConsumerInfo(p<IDestination> destination, const char* selector)
|
||||||
|
{
|
||||||
|
p<ConsumerInfo> consumerInfo = new ConsumerInfo() ;
|
||||||
|
p<ConsumerId> consumerId = new ConsumerId() ;
|
||||||
|
consumerId->setSessionId( sessionInfo->getSessionId()->getValue() ) ;
|
||||||
|
|
||||||
|
mutex.lock() ;
|
||||||
|
consumerId->setValue( ++consumerCounter ) ;
|
||||||
|
mutex.unlock() ;
|
||||||
|
|
||||||
|
// TODO complete packet
|
||||||
|
consumerInfo->setConsumerId( consumerId ) ;
|
||||||
|
|
||||||
|
return consumerInfo ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ProducerInfo> Session::createProducerInfo(p<IDestination> destination)
|
||||||
|
{
|
||||||
|
p<ProducerInfo> producerInfo = new ProducerInfo() ;
|
||||||
|
// TODO complete packet
|
||||||
|
return producerInfo ;
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef Session_hpp_
|
||||||
|
#define Session_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IMessage.hpp"
|
||||||
|
#include "ISession.hpp"
|
||||||
|
#include "command/IDataStructure.hpp"
|
||||||
|
#include "command/ConsumerInfo.hpp"
|
||||||
|
#include "command/ProducerInfo.hpp"
|
||||||
|
#include "command/RemoveInfo.hpp"
|
||||||
|
#include "command/SessionInfo.hpp"
|
||||||
|
#include "util/SimpleMutex.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace apache::activemq::client::util;
|
||||||
|
class Connection;
|
||||||
|
enum AcknowledgementMode;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class Session : public ISession
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<Connection> connection ;
|
||||||
|
p<SessionInfo> sessionInfo ;
|
||||||
|
AcknowledgementMode ackMode ;
|
||||||
|
long consumerCounter ;
|
||||||
|
SimpleMutex mutex ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Session(p<Connection> connection, p<SessionInfo> sessionInfo) ;
|
||||||
|
~Session() ;
|
||||||
|
|
||||||
|
virtual p<IMessageProducer> createProducer() ;
|
||||||
|
virtual p<IMessageProducer> createProducer(p<IDestination> destination) ;
|
||||||
|
virtual p<IMessageConsumer> createConsumer(p<IDestination> destination) ;
|
||||||
|
virtual p<IMessageConsumer> createConsumer(p<IDestination> destination, const char* selector) ;
|
||||||
|
virtual p<IQueue> getQueue(const char* name) ;
|
||||||
|
virtual p<ITopic> getTopic(const char* name) ;
|
||||||
|
virtual p<IMessage> createMessage() ;
|
||||||
|
virtual p<ITextMessage> createTextMessage() ;
|
||||||
|
virtual p<ITextMessage> createTextMessage(const char* text) ;
|
||||||
|
virtual void acknowledge(p<IMessage> message) ;
|
||||||
|
virtual void doSend(p<IDestination> destination, p<IMessage> message) ;
|
||||||
|
virtual void disposeOf(p<IDataStructure> objectId) ;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
p<ConsumerInfo> createConsumerInfo(p<IDestination> destination, const char* selector) ;
|
||||||
|
p<ProducerInfo> createProducerInfo(p<IDestination> destination) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*Session_hpp_*/
|
|
@ -0,0 +1,61 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "TraceException.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
TraceException::TraceException()
|
||||||
|
: exception()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
TraceException::TraceException(const char* msg)
|
||||||
|
: exception(msg)
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
TraceException::TraceException(const char* fileName, int lineNo, const char* message)
|
||||||
|
: exception(message)
|
||||||
|
{
|
||||||
|
char buf[10] ;
|
||||||
|
|
||||||
|
trace = new string() ;
|
||||||
|
trace->append(fileName) ;
|
||||||
|
trace->append(" at ") ;
|
||||||
|
trace->append( itoa(lineNo, buf, 10) ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
TraceException::~TraceException()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> TraceException::where()
|
||||||
|
{
|
||||||
|
return trace ;
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef TraceException_hpp_
|
||||||
|
#define TraceException_hpp_
|
||||||
|
|
||||||
|
#include <exception>
|
||||||
|
#include <string>
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
using namespace std ;
|
||||||
|
using namespace ifr ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Base class for all exceptions containing trace information.
|
||||||
|
*/
|
||||||
|
class TraceException : public exception
|
||||||
|
{
|
||||||
|
p<string> trace ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
TraceException() ;
|
||||||
|
TraceException(const char* msg) ;
|
||||||
|
TraceException(const char* fileName, int lineNo, const char* msg) ;
|
||||||
|
virtual ~TraceException() ;
|
||||||
|
|
||||||
|
p<string> where() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*TraceException_hpp_*/
|
|
@ -0,0 +1,116 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 <string.h>
|
||||||
|
#include "command/AbstractCommand.hpp"
|
||||||
|
#include "command/ActiveMQMessage.hpp"
|
||||||
|
#include "command/ActiveMQTextMessage.hpp"
|
||||||
|
#include "command/MessageAck.hpp"
|
||||||
|
#include "command/Response.hpp"
|
||||||
|
#include "command/ConsumerInfo.hpp"
|
||||||
|
#include "command/ProducerInfo.hpp"
|
||||||
|
#include "command/BrokerInfo.hpp"
|
||||||
|
#include "command/ConnectionInfo.hpp"
|
||||||
|
#include "command/RemoveInfo.hpp"
|
||||||
|
#include "command/SessionInfo.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
AbstractCommand::AbstractCommand()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
AbstractCommand::~AbstractCommand()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int AbstractCommand::getCommandType()
|
||||||
|
{
|
||||||
|
return 0 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> AbstractCommand::getCommandTypeAsString(int type)
|
||||||
|
{
|
||||||
|
p<string> packetType = new string() ;
|
||||||
|
|
||||||
|
switch( type )
|
||||||
|
{
|
||||||
|
case ActiveMQMessage::TYPE:
|
||||||
|
packetType->assign("ACTIVEMQ_MESSAGE") ;
|
||||||
|
break ;
|
||||||
|
case ActiveMQTextMessage::TYPE:
|
||||||
|
packetType->assign("ACTIVEMQ_TEXT_MESSAGE") ;
|
||||||
|
break ;
|
||||||
|
// case ActiveMQObjectMessage::TYPE:
|
||||||
|
// packetType->assign("ACTIVEMQ_OBJECT_MESSAGE") ;
|
||||||
|
// break ;
|
||||||
|
// case ActiveMQBytesMessage::TYPE:
|
||||||
|
// packetType->assign("ACTIVEMQ_BYTES_MESSAGE") ;
|
||||||
|
// break ;
|
||||||
|
// case ActiveMQStreamMessage::TYPE:
|
||||||
|
// packetType->assign("ACTIVEMQ_STREAM_MESSAGE") ;
|
||||||
|
// break ;
|
||||||
|
// case ActiveMQMapMessage::TYPE:
|
||||||
|
// packetType->assign("ACTIVEMQ_MAP_MESSAGE") ;
|
||||||
|
// break ;
|
||||||
|
case MessageAck::TYPE:
|
||||||
|
packetType->assign("ACTIVEMQ_MSG_ACK") ;
|
||||||
|
break ;
|
||||||
|
case Response::TYPE:
|
||||||
|
packetType->assign("RESPONSE") ;
|
||||||
|
break ;
|
||||||
|
case ConsumerInfo::TYPE:
|
||||||
|
packetType->assign("CONSUMER_INFO") ;
|
||||||
|
break ;
|
||||||
|
case ProducerInfo::TYPE:
|
||||||
|
packetType->assign("PRODUCER_INFO") ;
|
||||||
|
break;
|
||||||
|
// case TransactionInfo::TYPE:
|
||||||
|
// packetType->assign("TRANSACTION_INFO") ;
|
||||||
|
// break ;
|
||||||
|
case BrokerInfo::TYPE:
|
||||||
|
packetType->assign("BROKER_INFO") ;
|
||||||
|
break ;
|
||||||
|
case ConnectionInfo::TYPE:
|
||||||
|
packetType->assign("CONNECTION_INFO") ;
|
||||||
|
break ;
|
||||||
|
case SessionInfo::TYPE:
|
||||||
|
packetType->assign("SESSION_INFO") ;
|
||||||
|
break ;
|
||||||
|
// case RemoveSubscriptionInfo::TYPE:
|
||||||
|
// packetType->assign("DURABLE_UNSUBSCRIBE") ;
|
||||||
|
// break ;
|
||||||
|
// case IntegerResponse::TYPE:
|
||||||
|
// packetType->assign("INT_RESPONSE_RECEIPT_INFO") ;
|
||||||
|
// break ;
|
||||||
|
// case WireFormatInfo::TYPE:
|
||||||
|
// packetType->assign("WIRE_FORMAT_INFO") ;
|
||||||
|
// break ;
|
||||||
|
case RemoveInfo::TYPE:
|
||||||
|
packetType->assign("REMOVE_INFO") ;
|
||||||
|
break ;
|
||||||
|
// case KeepAliveInfo::TYPE:
|
||||||
|
// packetType->assign("KEEP_ALIVE") ;
|
||||||
|
// break ;
|
||||||
|
default:
|
||||||
|
packetType->assign("UNDEFINED") ;
|
||||||
|
break ;
|
||||||
|
}
|
||||||
|
return packetType ;
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef AbstractCommand_hpp_
|
||||||
|
#define AbstractCommand_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "command/ICommand.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class AbstractCommand : public ICommand
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
AbstractCommand() ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
~AbstractCommand() ;
|
||||||
|
|
||||||
|
virtual int getCommandType() ;
|
||||||
|
|
||||||
|
static p<string> getCommandTypeAsString(int type) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*AbstractCommand_hpp_*/
|
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ActiveMQDestination.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ActiveMQDestination::ActiveMQDestination()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ActiveMQDestination::~ActiveMQDestination()
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ActiveMQDestination_hpp_
|
||||||
|
#define ActiveMQDestination_hpp_
|
||||||
|
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "command/AbstractCommand.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ActiveMQDestination : public AbstractCommand, IDestination
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ActiveMQDestination() ;
|
||||||
|
virtual ~ActiveMQDestination() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ActiveMQDestination_hpp_*/
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ActiveMQMessage.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ActiveMQMessage::ActiveMQMessage()
|
||||||
|
{
|
||||||
|
destination = NULL ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ActiveMQMessage::ActiveMQMessage(const char* name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ActiveMQMessage::~ActiveMQMessage()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IDestination> ActiveMQMessage::getFromDestination()
|
||||||
|
{
|
||||||
|
return destination ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ActiveMQMessage::setFromDestination(p<IDestination> destination)
|
||||||
|
{
|
||||||
|
this->destination = destination ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ActiveMQMessage> ActiveMQMessage::transform(p<IMessage> message)
|
||||||
|
{
|
||||||
|
return (p<ActiveMQMessage>&)message ;
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ActiveMQMessage_hpp_
|
||||||
|
#define ActiveMQMessage_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "IMessage.hpp"
|
||||||
|
#include "command/Message.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ActiveMQMessage : public Message, IMessage
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<IDestination> destination ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
const static int TYPE = 23 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ActiveMQMessage() ;
|
||||||
|
ActiveMQMessage(const char* name) ;
|
||||||
|
virtual ~ActiveMQMessage() ;
|
||||||
|
|
||||||
|
virtual p<IDestination> getFromDestination() ;
|
||||||
|
virtual void setFromDestination(p<IDestination> destination) ;
|
||||||
|
|
||||||
|
static p<ActiveMQMessage> transform(p<IMessage> message) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ActiveMQMessage_hpp_*/
|
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ActiveMQQueue.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ActiveMQQueue::ActiveMQQueue()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ActiveMQQueue::ActiveMQQueue(const char* name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ActiveMQQueue::~ActiveMQQueue()
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ActiveMQQueue_hpp_
|
||||||
|
#define ActiveMQQueue_hpp_
|
||||||
|
|
||||||
|
#include "command/ActiveMQDestination.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ActiveMQQueue : public ActiveMQDestination
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ActiveMQQueue() ;
|
||||||
|
ActiveMQQueue(const char* name) ;
|
||||||
|
virtual ~ActiveMQQueue() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ActiveMQQueue_hpp_*/
|
|
@ -0,0 +1,35 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ActiveMQTextMessage.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ActiveMQTextMessage::ActiveMQTextMessage()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ActiveMQTextMessage::ActiveMQTextMessage(const char* name)
|
||||||
|
: ActiveMQMessage(name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ActiveMQTextMessage::~ActiveMQTextMessage()
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ActiveMQTextMessage_hpp_
|
||||||
|
#define ActiveMQTextMessage_hpp_
|
||||||
|
|
||||||
|
#include "ActiveMQMessage.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ActiveMQTextMessage : public ActiveMQMessage
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
const static int TYPE = 28 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ActiveMQTextMessage() ;
|
||||||
|
ActiveMQTextMessage(const char* name) ;
|
||||||
|
virtual ~ActiveMQTextMessage() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ActiveMQTextMessage_hpp_*/
|
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ActiveMQTopic.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ActiveMQTopic::ActiveMQTopic()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ActiveMQTopic::ActiveMQTopic(const char* name)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ActiveMQTopic::~ActiveMQTopic()
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ActiveMQTopic_hpp_
|
||||||
|
#define ActiveMQTopic_hpp_
|
||||||
|
|
||||||
|
#include "command/ActiveMQDestination.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ActiveMQTopic : public ActiveMQDestination
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ActiveMQTopic() ;
|
||||||
|
ActiveMQTopic(const char* name) ;
|
||||||
|
virtual ~ActiveMQTopic() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ActiveMQTopic_hpp_*/
|
|
@ -0,0 +1,95 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/BaseCommand.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
// Constructors -----------------------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BaseCommand::BaseCommand()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
BaseCommand::~BaseCommand()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Attribute methods ------------------------------------------------
|
||||||
|
|
||||||
|
int BaseCommand::getHashCode()
|
||||||
|
{
|
||||||
|
return commandId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
int BaseCommand::getCommandType()
|
||||||
|
{
|
||||||
|
return BaseCommand::TYPE ;
|
||||||
|
}
|
||||||
|
|
||||||
|
int BaseCommand::getCommandId()
|
||||||
|
{
|
||||||
|
return commandId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BaseCommand::setCommandId(int id)
|
||||||
|
{
|
||||||
|
commandId = id ;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool BaseCommand::isResponseRequired()
|
||||||
|
{
|
||||||
|
return responseRequired ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BaseCommand::setResponseRequired(bool required)
|
||||||
|
{
|
||||||
|
responseRequired = required ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Operation methods ------------------------------------------------
|
||||||
|
|
||||||
|
bool BaseCommand::operator== (BaseCommand& other)
|
||||||
|
{
|
||||||
|
if( getCommandType() == other.getCommandType() &&
|
||||||
|
commandId == other.commandId &&
|
||||||
|
responseRequired == other.responseRequired )
|
||||||
|
{
|
||||||
|
return true ;
|
||||||
|
}
|
||||||
|
return false ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> BaseCommand::toString()
|
||||||
|
{
|
||||||
|
p<string> str = new string() ;
|
||||||
|
char buffer[5] ;
|
||||||
|
|
||||||
|
str->assign( getCommandTypeAsString( getCommandType() )->c_str() ) ;
|
||||||
|
|
||||||
|
if( str->length() == 0 )
|
||||||
|
str->assign("") ;
|
||||||
|
|
||||||
|
str->append(": id = ") ;
|
||||||
|
str->append( itoa(getCommandId(), buffer, 10) ) ;
|
||||||
|
|
||||||
|
return str ;
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef BaseCommand_hpp_
|
||||||
|
#define BaseCommand_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "command/AbstractCommand.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class BaseCommand : public AbstractCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
int commandId ;
|
||||||
|
bool responseRequired ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
const static int TYPE = 0 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
BaseCommand() ;
|
||||||
|
virtual ~BaseCommand() ;
|
||||||
|
|
||||||
|
// Equals operator
|
||||||
|
bool operator== (BaseCommand& other) ;
|
||||||
|
|
||||||
|
virtual int getHashCode() ;
|
||||||
|
virtual int getCommandType() ;
|
||||||
|
virtual int getCommandId() ;
|
||||||
|
virtual void setCommandId(int id) ;
|
||||||
|
virtual bool isResponseRequired() ;
|
||||||
|
virtual void setResponseRequired(bool required) ;
|
||||||
|
virtual p<string> toString() ;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*BaseCommand_hpp_*/
|
|
@ -0,0 +1,47 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/BrokerId.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BrokerId::BrokerId()
|
||||||
|
{
|
||||||
|
value = new string() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
BrokerId::~BrokerId()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
int BrokerId::getCommandType()
|
||||||
|
{
|
||||||
|
return BrokerId::TYPE ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> BrokerId::getValue()
|
||||||
|
{
|
||||||
|
return value ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerId::setValue(const char* brokerId)
|
||||||
|
{
|
||||||
|
this->value->assign( brokerId ) ;
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef BrokerId_hpp_
|
||||||
|
#define BrokerId_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "command/AbstractCommand.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class BrokerId : public AbstractCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<string> value ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
const static char TYPE = 124 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
BrokerId() ;
|
||||||
|
virtual ~BrokerId() ;
|
||||||
|
|
||||||
|
virtual int getCommandType() ;
|
||||||
|
virtual p<string> getValue() ;
|
||||||
|
virtual void setValue(const char* brokerId) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*BrokerId_hpp_*/
|
|
@ -0,0 +1,80 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/BrokerInfo.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BrokerInfo::BrokerInfo()
|
||||||
|
{
|
||||||
|
brokerId = NULL ;
|
||||||
|
brokerURL = new string() ;
|
||||||
|
brokerName = new string() ;
|
||||||
|
peerInfos = NULL ;
|
||||||
|
}
|
||||||
|
|
||||||
|
BrokerInfo::~BrokerInfo()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
int BrokerInfo::getCommandType()
|
||||||
|
{
|
||||||
|
return BrokerInfo::TYPE ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> BrokerInfo::getBrokerName()
|
||||||
|
{
|
||||||
|
return brokerName ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerInfo::setBrokerName(const char* name)
|
||||||
|
{
|
||||||
|
brokerName->assign(name) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<BrokerId> BrokerInfo::getBrokerId()
|
||||||
|
{
|
||||||
|
return brokerId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerInfo::setBrokerId(p<BrokerId> brokerId)
|
||||||
|
{
|
||||||
|
this->brokerId = brokerId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> BrokerInfo::getBrokerURL()
|
||||||
|
{
|
||||||
|
return brokerURL ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerInfo::setBrokerURL(const char* url)
|
||||||
|
{
|
||||||
|
this->brokerURL->assign(url) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ap<BrokerInfo> BrokerInfo::getPeerBrokerInfo()
|
||||||
|
{
|
||||||
|
return peerInfos ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerInfo::setPeerBrokerInfo(ap<BrokerInfo> info)
|
||||||
|
{
|
||||||
|
peerInfos = info ;
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef BrokerInfo_hpp_
|
||||||
|
#define BrokerInfo_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "command/BaseCommand.hpp"
|
||||||
|
#include "command/BrokerId.hpp"
|
||||||
|
#include "util/ifr/ap"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class BrokerInfo : public BaseCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<BrokerId> brokerId ;
|
||||||
|
p<string> brokerURL,
|
||||||
|
brokerName ;
|
||||||
|
ap<BrokerInfo> peerInfos ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
const static char TYPE = 2 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
BrokerInfo() ;
|
||||||
|
virtual ~BrokerInfo() ;
|
||||||
|
|
||||||
|
virtual int getCommandType() ;
|
||||||
|
virtual p<string> getBrokerName() ;
|
||||||
|
virtual void setBrokerName(const char* name) ;
|
||||||
|
virtual p<BrokerId> getBrokerId() ;
|
||||||
|
virtual void setBrokerId(p<BrokerId> id) ;
|
||||||
|
virtual p<string> getBrokerURL() ;
|
||||||
|
virtual void setBrokerURL(const char* url) ;
|
||||||
|
virtual ap<BrokerInfo> getPeerBrokerInfo() ;
|
||||||
|
virtual void setPeerBrokerInfo(ap<BrokerInfo> info) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*BrokerInfo_hpp_*/
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ConnectionId.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ConnectionId::ConnectionId()
|
||||||
|
{
|
||||||
|
value = new string() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ConnectionId::~ConnectionId()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int ConnectionId::getCommandType()
|
||||||
|
{
|
||||||
|
return ConnectionId::TYPE ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionId::setValue(const char* value)
|
||||||
|
{
|
||||||
|
this->value->assign(value) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> ConnectionId::getValue()
|
||||||
|
{
|
||||||
|
return value ;
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ConnectionId_hpp_
|
||||||
|
#define ConnectionId_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "command/AbstractCommand.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ConnectionId : public AbstractCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<string> value ;
|
||||||
|
|
||||||
|
const static int TYPE = 120 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ConnectionId() ;
|
||||||
|
virtual ~ConnectionId() ;
|
||||||
|
|
||||||
|
virtual int getCommandType() ;
|
||||||
|
virtual void setValue(const char* value) ;
|
||||||
|
virtual p<string> getValue() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ConnectionId_hpp_*/
|
|
@ -0,0 +1,85 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ConnectionInfo.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ConnectionInfo::ConnectionInfo()
|
||||||
|
{
|
||||||
|
connectionId = NULL ;
|
||||||
|
brokerPath = NULL ;
|
||||||
|
username = new string() ;
|
||||||
|
password = new string() ;
|
||||||
|
clientId = new string() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ConnectionInfo::~ConnectionInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ConnectionId> ConnectionInfo::getConnectionId()
|
||||||
|
{
|
||||||
|
return connectionId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionInfo::setConnectionId(p<ConnectionId> connectionId)
|
||||||
|
{
|
||||||
|
this->connectionId = connectionId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> ConnectionInfo::getUsername()
|
||||||
|
{
|
||||||
|
return this->username ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionInfo::setUsername(const char* username)
|
||||||
|
{
|
||||||
|
this->username->assign( username ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> ConnectionInfo::getPassword()
|
||||||
|
{
|
||||||
|
return this->password ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionInfo::setPassword(const char* password)
|
||||||
|
{
|
||||||
|
this->password->assign( password ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> ConnectionInfo::getClientId()
|
||||||
|
{
|
||||||
|
return this->clientId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionInfo::setClientId(const char* clientId)
|
||||||
|
{
|
||||||
|
this->clientId->assign( clientId ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<BrokerId*> ConnectionInfo::getBrokerPath()
|
||||||
|
{
|
||||||
|
return this->brokerPath ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectionInfo::setBrokerPath(p<BrokerId*> brokerPath)
|
||||||
|
{
|
||||||
|
this->brokerPath = brokerPath ;
|
||||||
|
}
|
|
@ -0,0 +1,73 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ConnectionInfo_hpp_
|
||||||
|
#define ConnectionInfo_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "command/BaseCommand.hpp"
|
||||||
|
#include "command/BrokerId.hpp"
|
||||||
|
#include "command/ConnectionId.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ConnectionInfo : public BaseCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<ConnectionId> connectionId ;
|
||||||
|
p<BrokerId*> brokerPath ;
|
||||||
|
p<string> username,
|
||||||
|
password,
|
||||||
|
clientId ;
|
||||||
|
public:
|
||||||
|
const static int TYPE = 3 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ConnectionInfo() ;
|
||||||
|
virtual ~ConnectionInfo() ;
|
||||||
|
|
||||||
|
virtual p<ConnectionId> getConnectionId() ;
|
||||||
|
virtual void setConnectionId(p<ConnectionId> connectionId) ;
|
||||||
|
virtual p<string> getUsername() ;
|
||||||
|
virtual void setUsername(const char* username) ;
|
||||||
|
virtual p<string> getPassword() ;
|
||||||
|
virtual void setPassword(const char* password) ;
|
||||||
|
virtual p<string> getClientId() ;
|
||||||
|
virtual void setClientId(const char* clientId) ;
|
||||||
|
virtual p<BrokerId*> getBrokerPath() ;
|
||||||
|
virtual void setBrokerPath(p<BrokerId*> brokerPath) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ConnectionInfo_hpp_*/
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ConsumerId.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ConsumerId::ConsumerId()
|
||||||
|
{
|
||||||
|
connectionId = new string() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ConsumerId::~ConsumerId()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int ConsumerId::getCommandType()
|
||||||
|
{
|
||||||
|
return ConsumerId::TYPE ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsumerId::setValue(long consumerId)
|
||||||
|
{
|
||||||
|
this->consumerId = consumerId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
long ConsumerId::getValue()
|
||||||
|
{
|
||||||
|
return consumerId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsumerId::setSessionId(long sessionId)
|
||||||
|
{
|
||||||
|
this->sessionId = sessionId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
long ConsumerId::getSessionId()
|
||||||
|
{
|
||||||
|
return sessionId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsumerId::setConnectionId(const char* connectionId)
|
||||||
|
{
|
||||||
|
this->connectionId->assign( connectionId ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> ConsumerId::getConnectionId()
|
||||||
|
{
|
||||||
|
return connectionId ;
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ConsumerId_hpp_
|
||||||
|
#define ConsumerId_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "command/AbstractCommand.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ConsumerId : public AbstractCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<string> connectionId ;
|
||||||
|
long sessionId,
|
||||||
|
consumerId ;
|
||||||
|
|
||||||
|
const static int TYPE = 122 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ConsumerId() ;
|
||||||
|
virtual ~ConsumerId() ;
|
||||||
|
|
||||||
|
virtual int getCommandType() ;
|
||||||
|
virtual void setValue(long consumerId) ;
|
||||||
|
virtual long getValue() ;
|
||||||
|
virtual void setSessionId(long sessionId) ;
|
||||||
|
virtual long getSessionId() ;
|
||||||
|
virtual void setConnectionId(const char* connectionId) ;
|
||||||
|
virtual p<string> getConnectionId() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ConsumerId_hpp_*/
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ConsumerInfo.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ConsumerInfo::ConsumerInfo()
|
||||||
|
{
|
||||||
|
consumerId = NULL ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ConsumerInfo::ConsumerInfo(const char* name)
|
||||||
|
{
|
||||||
|
consumerId = NULL ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ConsumerInfo::~ConsumerInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ConsumerId> ConsumerInfo::getConsumerId()
|
||||||
|
{
|
||||||
|
return consumerId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConsumerInfo::setConsumerId(p<ConsumerId> consumerId)
|
||||||
|
{
|
||||||
|
this->consumerId = consumerId ;
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ConsumerInfo_hpp_
|
||||||
|
#define ConsumerInfo_hpp_
|
||||||
|
|
||||||
|
#include "command/BaseCommand.hpp"
|
||||||
|
#include "command/ConsumerId.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ConsumerInfo : public BaseCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<ConsumerId> consumerId ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
const static int TYPE = 5 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ConsumerInfo() ;
|
||||||
|
ConsumerInfo(const char* name) ;
|
||||||
|
virtual ~ConsumerInfo() ;
|
||||||
|
|
||||||
|
virtual p<ConsumerId> getConsumerId() ;
|
||||||
|
virtual void setConsumerId(p<ConsumerId> consumerId) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ConsumerInfo_hpp_*/
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ExceptionResponse.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
ExceptionResponse::ExceptionResponse()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ExceptionResponse::~ExceptionResponse()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int ExceptionResponse::getCommandType()
|
||||||
|
{
|
||||||
|
return ExceptionResponse::TYPE ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<BrokerError> ExceptionResponse::getException()
|
||||||
|
{
|
||||||
|
return exception ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ExceptionResponse::setException(p<BrokerError> exception)
|
||||||
|
{
|
||||||
|
this->exception = exception ;
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ExceptionResponse_hpp_
|
||||||
|
#define ExceptionResponse_hpp_
|
||||||
|
|
||||||
|
#include "BrokerError.hpp"
|
||||||
|
#include "command/Response.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class ExceptionResponse : public Response
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<BrokerError> exception ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static const int TYPE = 31 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ExceptionResponse() ;
|
||||||
|
~ExceptionResponse() ;
|
||||||
|
|
||||||
|
virtual int getCommandType() ;
|
||||||
|
p<BrokerError> getException() ;
|
||||||
|
void setException(p<BrokerError> exception) ;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ExceptionResponse_hpp_*/
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ICommand_hpp_
|
||||||
|
#define ICommand_hpp_
|
||||||
|
|
||||||
|
#include "command/IDataStructure.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Interface for commands.
|
||||||
|
*/
|
||||||
|
struct ICommand : IDataStructure
|
||||||
|
{
|
||||||
|
// virtual char getCommandType() = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ICommand_hpp_*/
|
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IDataStructure_hpp_
|
||||||
|
#define IDataStructure_hpp_
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Mockup interface for writing to streams.
|
||||||
|
*/
|
||||||
|
struct IDataStructure
|
||||||
|
{
|
||||||
|
virtual int getCommandType() = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IDataStructure_hpp_*/
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/Message.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
Message::Message()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Message::~Message()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ActiveMQDestination> Message::getDestination()
|
||||||
|
{
|
||||||
|
return destination ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Message::setDestination(p<ActiveMQDestination> destination)
|
||||||
|
{
|
||||||
|
this->destination = destination ;
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef Message_hpp_
|
||||||
|
#define Message_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IMessage.hpp"
|
||||||
|
#include "command/BaseCommand.hpp"
|
||||||
|
#include "command/ActiveMQDestination.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class Message : public BaseCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<ActiveMQDestination> destination ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Message() ;
|
||||||
|
virtual ~Message() ;
|
||||||
|
|
||||||
|
virtual p<ActiveMQDestination> getDestination() ;
|
||||||
|
virtual void setDestination(p<ActiveMQDestination> destination) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*Message_hpp_*/
|
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/MessageAck.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
MessageAck::MessageAck()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageAck::~MessageAck()
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef MessageAck_hpp_
|
||||||
|
#define MessageAck_hpp_
|
||||||
|
|
||||||
|
#include "command/BaseCommand.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class MessageAck : public BaseCommand
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
const static int TYPE = 22 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
MessageAck() ;
|
||||||
|
virtual ~MessageAck() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*MessageAck_hpp_*/
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ProducerId.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ProducerId::ProducerId()
|
||||||
|
{
|
||||||
|
connectionId = new string() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ProducerId::~ProducerId()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int ProducerId::getCommandType()
|
||||||
|
{
|
||||||
|
return ProducerId::TYPE ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProducerId::setValue(long producerId)
|
||||||
|
{
|
||||||
|
this->producerId = producerId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
long ProducerId::getValue()
|
||||||
|
{
|
||||||
|
return producerId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
long ProducerId::getSessionId()
|
||||||
|
{
|
||||||
|
return sessionId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProducerId::setSessionId(long sessionId)
|
||||||
|
{
|
||||||
|
this->sessionId = sessionId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> ProducerId::getConnectionId()
|
||||||
|
{
|
||||||
|
return connectionId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProducerId::setConnectionId(const char* connectionId)
|
||||||
|
{
|
||||||
|
this->connectionId->assign( connectionId ) ;
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ProducerId_hpp_
|
||||||
|
#define ProducerId_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "command/AbstractCommand.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ProducerId : public AbstractCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<string> connectionId ;
|
||||||
|
long sessionId,
|
||||||
|
producerId ;
|
||||||
|
|
||||||
|
const static int TYPE = 123 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ProducerId() ;
|
||||||
|
virtual ~ProducerId() ;
|
||||||
|
|
||||||
|
virtual int getCommandType() ;
|
||||||
|
virtual void setValue(long producerId) ;
|
||||||
|
virtual long getValue() ;
|
||||||
|
virtual void setSessionId(long sessionId) ;
|
||||||
|
virtual long getSessionId() ;
|
||||||
|
virtual void setConnectionId(const char* connectionId) ;
|
||||||
|
virtual p<string> getConnectionId() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ProducerId_hpp_*/
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/ProducerInfo.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
ProducerInfo::ProducerInfo()
|
||||||
|
{
|
||||||
|
this->producerId = NULL ;
|
||||||
|
this->destination = NULL ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ProducerInfo::~ProducerInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ProducerId> ProducerInfo::getProducerId()
|
||||||
|
{
|
||||||
|
return producerId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProducerInfo::setProducerId(p<ProducerId> producerId)
|
||||||
|
{
|
||||||
|
this->producerId = producerId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IDestination> ProducerInfo::getDestination()
|
||||||
|
{
|
||||||
|
return destination ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProducerInfo::setDestination(p<IDestination> destination)
|
||||||
|
{
|
||||||
|
this->destination = destination ;
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef ProducerInfo_hpp_
|
||||||
|
#define ProducerInfo_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "command/BaseCommand.hpp"
|
||||||
|
#include "command/ProducerId.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class ProducerInfo : public BaseCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<ProducerId> producerId ;
|
||||||
|
p<IDestination> destination ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
const static int TYPE = 6 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
ProducerInfo() ;
|
||||||
|
virtual ~ProducerInfo() ;
|
||||||
|
|
||||||
|
virtual p<ProducerId> getProducerId() ;
|
||||||
|
virtual void setProducerId(p<ProducerId> producerId) ;
|
||||||
|
virtual p<IDestination> getDestination() ;
|
||||||
|
virtual void setDestination(p<IDestination> destination) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*ProducerInfo_hpp_*/
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/RemoveInfo.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
RemoveInfo::RemoveInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
RemoveInfo::~RemoveInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IDataStructure> RemoveInfo::getObjectId()
|
||||||
|
{
|
||||||
|
return objectId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RemoveInfo::setObjectId(p<IDataStructure> oid)
|
||||||
|
{
|
||||||
|
this->objectId = oid ;
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef RemoveInfo_hpp_
|
||||||
|
#define RemoveInfo_hpp_
|
||||||
|
|
||||||
|
#include "command/BaseCommand.hpp"
|
||||||
|
#include "command/IDataStructure.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class RemoveInfo : public BaseCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<IDataStructure> objectId ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
const static int TYPE = 12 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
RemoveInfo() ;
|
||||||
|
virtual ~RemoveInfo() ;
|
||||||
|
|
||||||
|
virtual p<IDataStructure> getObjectId() ;
|
||||||
|
virtual void setObjectId(p<IDataStructure> oid) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*RemoveInfo_hpp_*/
|
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/Response.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
Response::Response()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Response::~Response()
|
||||||
|
{
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef Response_hpp_
|
||||||
|
#define Response_hpp_
|
||||||
|
|
||||||
|
#include "command/BaseCommand.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Interface for commands.
|
||||||
|
*/
|
||||||
|
class Response : public BaseCommand
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
const static int TYPE = 30 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Response() ;
|
||||||
|
~Response() ;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*Response_hpp_*/
|
|
@ -0,0 +1,56 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/SessionId.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
SessionId::SessionId()
|
||||||
|
{
|
||||||
|
connectionId = new string() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
SessionId::~SessionId()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int SessionId::getCommandType()
|
||||||
|
{
|
||||||
|
return SessionId::TYPE ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SessionId::setValue(long sessionId)
|
||||||
|
{
|
||||||
|
this->sessionId = sessionId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
long SessionId::getValue()
|
||||||
|
{
|
||||||
|
return sessionId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SessionId::setConnectionId(const char* connectionId)
|
||||||
|
{
|
||||||
|
this->connectionId->assign( connectionId ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<string> SessionId::getConnectionId()
|
||||||
|
{
|
||||||
|
return connectionId ;
|
||||||
|
}
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef SessionId_hpp_
|
||||||
|
#define SessionId_hpp_
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "command/AbstractCommand.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class SessionId : public AbstractCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<string> connectionId ;
|
||||||
|
long sessionId ;
|
||||||
|
|
||||||
|
const static int TYPE = 121 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
SessionId() ;
|
||||||
|
virtual ~SessionId() ;
|
||||||
|
|
||||||
|
virtual int getCommandType() ;
|
||||||
|
virtual void setValue(long id) ;
|
||||||
|
virtual long getValue() ;
|
||||||
|
virtual void setConnectionId(const char* cid) ;
|
||||||
|
virtual p<string> getConnectionId() ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*SessionId_hpp_*/
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "command/SessionInfo.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated
|
||||||
|
*/
|
||||||
|
SessionInfo::SessionInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
SessionInfo::~SessionInfo()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
p<SessionId> SessionInfo::getSessionId()
|
||||||
|
{
|
||||||
|
return sessionId ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SessionInfo::setSessionId(p<SessionId> sessionId)
|
||||||
|
{
|
||||||
|
this->sessionId = sessionId ;
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef SessionInfo_hpp_
|
||||||
|
#define SessionInfo_hpp_
|
||||||
|
|
||||||
|
#include "command/BaseCommand.hpp"
|
||||||
|
#include "command/SessionId.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace command
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dummy, should be auto-generated.
|
||||||
|
*/
|
||||||
|
class SessionInfo : public BaseCommand
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
p<SessionId> sessionId ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
const static int TYPE = 4 ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
SessionInfo() ;
|
||||||
|
virtual ~SessionInfo() ;
|
||||||
|
|
||||||
|
virtual p<SessionId> getSessionId() ;
|
||||||
|
virtual void setSessionId(p<SessionId> sessionId) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*SessionInfo_hpp_*/
|
|
@ -0,0 +1,143 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "io/BinaryReader.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::io;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BinaryReader::BinaryReader()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BinaryReader::~BinaryReader()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
char BinaryReader::readByte() throw(IOException)
|
||||||
|
{
|
||||||
|
char value ;
|
||||||
|
|
||||||
|
// Read a single byte
|
||||||
|
read(&value, sizeof(char)) ;
|
||||||
|
return value ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
bool BinaryReader::readBoolean() throw(IOException)
|
||||||
|
{
|
||||||
|
bool value ;
|
||||||
|
|
||||||
|
// Read a boolean
|
||||||
|
read((char*)&value, sizeof(bool)) ;
|
||||||
|
return value ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
double BinaryReader::readDouble() throw(IOException)
|
||||||
|
{
|
||||||
|
double value ;
|
||||||
|
|
||||||
|
// Read a double and convert from big endian to little endian if necessary
|
||||||
|
read((char*)&value, sizeof(double) ) ;
|
||||||
|
return ntohd(value) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
float BinaryReader::readFloat() throw(IOException)
|
||||||
|
{
|
||||||
|
float value ;
|
||||||
|
|
||||||
|
// Read a float and convert from big endian to little endian if necessary
|
||||||
|
read((char*)&value, sizeof(float)) ;
|
||||||
|
return ntohf(value) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
short BinaryReader::readShort() throw(IOException)
|
||||||
|
{
|
||||||
|
short value ;
|
||||||
|
|
||||||
|
// Read a short and convert from big endian to little endian if necessary
|
||||||
|
read((char*)&value, sizeof(short)) ;
|
||||||
|
return ntohs(value) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
int BinaryReader::readInt() throw(IOException)
|
||||||
|
{
|
||||||
|
int value ;
|
||||||
|
|
||||||
|
// Read an int and convert from big endian to little endian if necessary
|
||||||
|
read((char*)&value, sizeof(int)) ;
|
||||||
|
return ntohi(value) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
long long BinaryReader::readLong() throw(IOException)
|
||||||
|
{
|
||||||
|
long long value ;
|
||||||
|
|
||||||
|
// Read a long long and convert from big endian to little endian if necessary
|
||||||
|
read((char*)&value, sizeof(long long)) ;
|
||||||
|
return ntohl(value) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
p<string> BinaryReader::readString() throw(IOException)
|
||||||
|
{
|
||||||
|
p<string> value ;
|
||||||
|
char* buffer ;
|
||||||
|
short length ;
|
||||||
|
|
||||||
|
// Read length of string
|
||||||
|
length = readShort() ;
|
||||||
|
buffer = new char[length+1] ;
|
||||||
|
|
||||||
|
// Read string bytes
|
||||||
|
read(buffer, length) ;
|
||||||
|
*(buffer+length) = '\0' ;
|
||||||
|
|
||||||
|
// Create string class
|
||||||
|
value = new string() ;
|
||||||
|
value->assign(buffer) ;
|
||||||
|
|
||||||
|
return value ;
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef BinaryReader_hpp_
|
||||||
|
#define BinaryReader_hpp_
|
||||||
|
|
||||||
|
#include "util/Endian.hpp"
|
||||||
|
#include "io/IReader.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace io
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The BinaryReader class reads primitive C++ data types from an
|
||||||
|
* underlying input stream in a Java compatible way. Strings are
|
||||||
|
* read as raw bytes, no character decoding is performed.
|
||||||
|
*
|
||||||
|
* All numeric data types are assumed to be available in big
|
||||||
|
* endian (network byte order) and are converted automatically
|
||||||
|
* to little endian if needed by the platform.
|
||||||
|
*
|
||||||
|
* Should any error occur an IOException will be thrown.
|
||||||
|
*/
|
||||||
|
class BinaryReader : public IReader
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BinaryReader() ;
|
||||||
|
virtual ~BinaryReader() ;
|
||||||
|
|
||||||
|
virtual void close() throw(IOException) = 0 ;
|
||||||
|
virtual int read(char* buffer, int size) throw(IOException) = 0 ;
|
||||||
|
virtual char readByte() throw(IOException) ;
|
||||||
|
virtual bool readBoolean() throw(IOException) ;
|
||||||
|
virtual double readDouble() throw(IOException) ;
|
||||||
|
virtual float readFloat() throw(IOException) ;
|
||||||
|
virtual short readShort() throw(IOException) ;
|
||||||
|
virtual int readInt() throw(IOException) ;
|
||||||
|
virtual long long readLong() throw(IOException) ;
|
||||||
|
virtual p<string> readString() throw(IOException) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*BinaryReader_hpp_*/
|
|
@ -0,0 +1,96 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "io/BinaryWriter.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::io;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BinaryWriter::BinaryWriter()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BinaryWriter::~BinaryWriter()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
void BinaryWriter::writeByte(char value) throw(IOException)
|
||||||
|
{
|
||||||
|
// Write a single byte
|
||||||
|
write((char*)&value, sizeof(char)) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BinaryWriter::writeBoolean(bool value) throw(IOException)
|
||||||
|
{
|
||||||
|
// Write a boolean
|
||||||
|
write((char*)&value, sizeof(bool)) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BinaryWriter::writeDouble(double v) throw(IOException)
|
||||||
|
{
|
||||||
|
// Write a double, convert from little endian to big endian if necessary
|
||||||
|
double value = htond(v) ;
|
||||||
|
write((char*)&value, sizeof(double)) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BinaryWriter::writeFloat(float v) throw(IOException)
|
||||||
|
{
|
||||||
|
// Write a float, convert from little endian to big endian if necessary
|
||||||
|
float value = htonf(v) ;
|
||||||
|
write((char*)&value, sizeof(float)) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BinaryWriter::writeShort(short v) throw(IOException)
|
||||||
|
{
|
||||||
|
// Write a short, convert from little endian to big endian if necessary
|
||||||
|
short value = htons(v) ;
|
||||||
|
write((char*)&value, sizeof(short)) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BinaryWriter::writeInt(int v) throw(IOException)
|
||||||
|
{
|
||||||
|
// Write an int, convert from little endian to big endian if necessary
|
||||||
|
int value = htoni(v) ;
|
||||||
|
write((char*)&value, sizeof(int)) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BinaryWriter::writeLong(long long v) throw(IOException)
|
||||||
|
{
|
||||||
|
// Write a long long, convert from little endian to big endian if necessary
|
||||||
|
long long value = htonl(v) ;
|
||||||
|
write((char*)&value, sizeof(long long)) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BinaryWriter::writeString(p<string> value) throw(IOException)
|
||||||
|
{
|
||||||
|
// Assert argument
|
||||||
|
if( value->length() > USHRT_MAX )
|
||||||
|
throw IOException("String length exceeds maximum length") ;
|
||||||
|
|
||||||
|
// Write length of string
|
||||||
|
short length = (short)value->length() ;
|
||||||
|
writeShort( length ) ;
|
||||||
|
|
||||||
|
// Write string contents
|
||||||
|
write((char*)value->c_str(), length) ;
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef BinaryWriter_hpp_
|
||||||
|
#define BinaryWriter_hpp_
|
||||||
|
|
||||||
|
#include "util/Endian.hpp"
|
||||||
|
#include "io/IWriter.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace io
|
||||||
|
{
|
||||||
|
using namespace ifr;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The BinaryWriter class writes primitive C++ data types to an
|
||||||
|
* underlying output stream in a Java compatible way. Strings
|
||||||
|
* are written as raw bytes, no character encoding is performed.
|
||||||
|
*
|
||||||
|
* All numeric data types are written in big endian (network byte
|
||||||
|
* order) and if the platform is little endian they are converted
|
||||||
|
* automatically.
|
||||||
|
*
|
||||||
|
* Should any error occur an IOException will be thrown.
|
||||||
|
*/
|
||||||
|
class BinaryWriter : public IWriter
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BinaryWriter() ;
|
||||||
|
virtual ~BinaryWriter() ;
|
||||||
|
|
||||||
|
virtual void close() throw(IOException) = 0 ;
|
||||||
|
virtual void flush() throw(IOException) = 0 ;
|
||||||
|
virtual int write(char* buffer, int size) throw(IOException) = 0 ;
|
||||||
|
virtual void writeByte(char v) throw(IOException) ;
|
||||||
|
virtual void writeBoolean(bool v) throw(IOException) ;
|
||||||
|
virtual void writeDouble(double v) throw(IOException) ;
|
||||||
|
virtual void writeFloat(float v) throw(IOException) ;
|
||||||
|
virtual void writeShort(short v) throw(IOException) ;
|
||||||
|
virtual void writeInt(int v) throw(IOException) ;
|
||||||
|
virtual void writeLong(long long v) throw(IOException) ;
|
||||||
|
virtual void writeString(p<string> v) throw(IOException) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*BinaryWriter_hpp_*/
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IOException_hpp_
|
||||||
|
#define IOException_hpp_
|
||||||
|
|
||||||
|
#include "TraceException.hpp"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace io
|
||||||
|
{
|
||||||
|
using namespace std ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Signals that an I/O exception of some sort has occurred.
|
||||||
|
*/
|
||||||
|
class IOException : public TraceException
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
IOException() : TraceException()
|
||||||
|
{ /* no-op */ } ;
|
||||||
|
IOException(const char *const& msg) : TraceException(msg)
|
||||||
|
{ /* no-op */ } ;
|
||||||
|
IOException(const char* fileName, int lineNo, const char* msg) : TraceException(msg)
|
||||||
|
{ /* no-op */ } ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IOException_hpp_*/
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IReader_hpp_
|
||||||
|
#define IReader_hpp_
|
||||||
|
|
||||||
|
// Turn off warning message for ignored exception specification
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning( disable : 4290 )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "io/IOException.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace io
|
||||||
|
{
|
||||||
|
using namespace std ;
|
||||||
|
using namespace ifr ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The IReader interface provides for reading bytes from a binary stream
|
||||||
|
* and reconstructing from them data in any of the C++ primitive types.
|
||||||
|
* Strings are read as raw bytes, no character decoding is performed. If
|
||||||
|
* any byte cannot be read for any reason, an IOException is thrown.
|
||||||
|
*/
|
||||||
|
struct IReader
|
||||||
|
{
|
||||||
|
virtual ~IReader() { } ; // Required for SP's
|
||||||
|
|
||||||
|
virtual void close() throw(IOException) = 0 ;
|
||||||
|
virtual int read(char* buffer, int size) throw(IOException) = 0 ;
|
||||||
|
virtual char readByte() throw(IOException) = 0 ;
|
||||||
|
virtual bool readBoolean() throw(IOException) = 0 ;
|
||||||
|
virtual double readDouble() throw(IOException) = 0 ;
|
||||||
|
virtual float readFloat() throw(IOException) = 0 ;
|
||||||
|
virtual short readShort() throw(IOException) = 0 ;
|
||||||
|
virtual int readInt() throw(IOException) = 0 ;
|
||||||
|
virtual long long readLong() throw(IOException) = 0 ;
|
||||||
|
virtual p<string> readString() throw(IOException) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IReader_hpp_*/
|
|
@ -0,0 +1,70 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef IWriter_hpp_
|
||||||
|
#define IWriter_hpp_
|
||||||
|
|
||||||
|
// Turn off warning message for ignored exception specification
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning( disable : 4290 )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include "io/IOException.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace io
|
||||||
|
{
|
||||||
|
using namespace std ;
|
||||||
|
using namespace ifr ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The IWriter interface provides for converting data from any of the
|
||||||
|
* C++ primitive types to a series of bytes and writing these bytes to
|
||||||
|
* a binary stream. Strings are written as raw bytes, no character
|
||||||
|
* encoding is performed. If a byte cannot be written for any reason,
|
||||||
|
* an IOException is thrown.
|
||||||
|
*/
|
||||||
|
struct IWriter
|
||||||
|
{
|
||||||
|
virtual ~IWriter() { } ; // Needed for SP's
|
||||||
|
|
||||||
|
virtual void close() throw(IOException) = 0 ;
|
||||||
|
virtual void flush() throw(IOException) = 0 ;
|
||||||
|
virtual int write(char* buffer, int size) throw(IOException) = 0 ;
|
||||||
|
virtual void writeByte(char v) throw(IOException) = 0 ;
|
||||||
|
virtual void writeBoolean(bool v) throw(IOException) = 0 ;
|
||||||
|
virtual void writeDouble(double v) throw(IOException) = 0 ;
|
||||||
|
virtual void writeFloat(float v) throw(IOException) = 0 ;
|
||||||
|
virtual void writeShort(short v) throw(IOException) = 0 ;
|
||||||
|
virtual void writeInt(int v) throw(IOException) = 0 ;
|
||||||
|
virtual void writeLong(long long v) throw(IOException) = 0 ;
|
||||||
|
virtual void writeString(p<string> v) throw(IOException) = 0 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*IWriter_hpp_*/
|
|
@ -0,0 +1,77 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "io/SocketBinaryReader.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::io;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
SocketBinaryReader::SocketBinaryReader(apr_socket_t* socket)
|
||||||
|
{
|
||||||
|
this->socket = socket ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
SocketBinaryReader::~SocketBinaryReader()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
void SocketBinaryReader::close() throw(IOException)
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
int SocketBinaryReader::read(char* buffer, int size) throw(IOException)
|
||||||
|
{
|
||||||
|
apr_size_t length, remaining = size ;
|
||||||
|
apr_status_t rc ;
|
||||||
|
|
||||||
|
// Loop until requested number of bytes are read
|
||||||
|
while( remaining > 0 )
|
||||||
|
{
|
||||||
|
// Try to read remaining bytes
|
||||||
|
length = remaining ;
|
||||||
|
|
||||||
|
// Read some bytes from socket
|
||||||
|
rc = apr_socket_recv(socket, buffer, &length) ;
|
||||||
|
|
||||||
|
// Adjust buffer pointer and remaining number of bytes
|
||||||
|
buffer += length ;
|
||||||
|
remaining -= length ;
|
||||||
|
|
||||||
|
// Exit on any error
|
||||||
|
if( rc != APR_SUCCESS )
|
||||||
|
{
|
||||||
|
string message ;
|
||||||
|
char buf[10] ;
|
||||||
|
|
||||||
|
// Construct error message
|
||||||
|
message.assign("Failed to read from socket. Code = ") ;
|
||||||
|
message.append( itoa(rc, buf, 10) ) ;
|
||||||
|
|
||||||
|
throw IOException(__FILE__, __LINE__, message.c_str()) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (int)size ;
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef SocketBinaryReader_hpp_
|
||||||
|
#define SocketBinaryReader_hpp_
|
||||||
|
|
||||||
|
#include <apr_network_io.h>
|
||||||
|
#include "io/BinaryReader.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace io
|
||||||
|
{
|
||||||
|
using namespace ifr ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SocketBinaryReader reads primitive C++ data types from a
|
||||||
|
* socket stream. It currently uses APR sockets for
|
||||||
|
* platform independency.
|
||||||
|
*/
|
||||||
|
class SocketBinaryReader : public BinaryReader
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
apr_socket_t* socket ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
SocketBinaryReader(apr_socket_t* socket) ;
|
||||||
|
~SocketBinaryReader() ;
|
||||||
|
|
||||||
|
virtual void close() throw(IOException) ;
|
||||||
|
virtual int read(char* buffer, int size) throw(IOException) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*SocketBinaryReader_hpp_*/
|
|
@ -0,0 +1,82 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "io/SocketBinaryWriter.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::io;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
SocketBinaryWriter::SocketBinaryWriter(apr_socket_t* socket)
|
||||||
|
{
|
||||||
|
this->socket = socket ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
SocketBinaryWriter::~SocketBinaryWriter()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
void SocketBinaryWriter::close() throw(IOException)
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
void SocketBinaryWriter::flush() throw(IOException)
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
int SocketBinaryWriter::write(char* buffer, int size) throw(IOException)
|
||||||
|
{
|
||||||
|
apr_size_t length, remaining = size ;
|
||||||
|
apr_status_t rc ;
|
||||||
|
|
||||||
|
// Loop until requested number of bytes are read
|
||||||
|
while( remaining > 0 )
|
||||||
|
{
|
||||||
|
// Try to read remaining bytes
|
||||||
|
length = remaining ;
|
||||||
|
|
||||||
|
// Write some bytes to socket
|
||||||
|
rc = apr_socket_send(socket, buffer, &length) ;
|
||||||
|
|
||||||
|
// Adjust buffer pointer and remaining number of bytes
|
||||||
|
buffer += length ;
|
||||||
|
remaining -= length ;
|
||||||
|
|
||||||
|
// Exit on any error
|
||||||
|
if( rc != APR_SUCCESS )
|
||||||
|
{
|
||||||
|
string message ;
|
||||||
|
char buf[10] ;
|
||||||
|
|
||||||
|
// Construct error message
|
||||||
|
message.assign("Failed to write to socket. Code = ") ;
|
||||||
|
message.append( itoa(rc, buf, 10) ) ;
|
||||||
|
|
||||||
|
throw IOException(__FILE__, __LINE__, message.c_str()) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (int)size ;
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef SocketBinaryWriter_hpp_
|
||||||
|
#define SocketBinaryWriter_hpp_
|
||||||
|
|
||||||
|
#include <apr_network_io.h>
|
||||||
|
#include "io/BinaryWriter.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace io
|
||||||
|
{
|
||||||
|
using namespace ifr ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SocketBinaryWriter writes primitive C++ data types to a
|
||||||
|
* socket stream. It currently uses APR sockets for
|
||||||
|
* platform independency.
|
||||||
|
*/
|
||||||
|
class SocketBinaryWriter : public BinaryWriter
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
apr_socket_t* socket ;
|
||||||
|
|
||||||
|
public:
|
||||||
|
SocketBinaryWriter(apr_socket_t* socket) ;
|
||||||
|
virtual ~SocketBinaryWriter() ;
|
||||||
|
|
||||||
|
virtual void close() throw(IOException) ;
|
||||||
|
virtual void flush() throw(IOException) ;
|
||||||
|
virtual int write(char* buffer, int size) throw(IOException) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*SocketBinaryWriter_hpp_*/
|
|
@ -0,0 +1,146 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "marshal/AbstractCommandMarshaller.hpp"
|
||||||
|
#include "marshal/BrokerInfoMarshaller.hpp"
|
||||||
|
#include "marshal/BrokerIdMarshaller.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::marshal;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
AbstractCommandMarshaller::AbstractCommandMarshaller()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
AbstractCommandMarshaller::~AbstractCommandMarshaller()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ICommand> AbstractCommandMarshaller::readCommand(p<BinaryReader> reader)
|
||||||
|
{
|
||||||
|
p<ICommand> command = createCommand() ;
|
||||||
|
buildCommand(command, reader) ;
|
||||||
|
return command ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Implementation methods -----------------------------------------------------------
|
||||||
|
|
||||||
|
p<BrokerError> AbstractCommandMarshaller::readBrokerError(p<BinaryReader> reader)
|
||||||
|
{
|
||||||
|
p<BrokerError> error = new BrokerError() ;
|
||||||
|
error->setExceptionClass( reader->readString()->c_str() ) ;
|
||||||
|
error->setStackTrace( reader->readString()->c_str() ) ;
|
||||||
|
|
||||||
|
return error ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AbstractCommandMarshaller::writeBrokerError(p<BrokerError> command, p<BinaryWriter> writer)
|
||||||
|
{
|
||||||
|
writer->writeString( command->getExceptionClass() ) ;
|
||||||
|
writer->writeString( command->getStackTrace() ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
p<IDestination> AbstractCommandMarshaller::readDestination(p<BinaryReader> reader)
|
||||||
|
{
|
||||||
|
return (p<IDestination>&)CommandMarshallerRegistry::readCommand(reader) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AbstractCommandMarshaller::writeDestination(p<IDestination> command, p<BinaryWriter> writer)
|
||||||
|
{
|
||||||
|
CommandMarshallerRegistry::writeCommand((p<ICommand>&)command, writer) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ap<BrokerId> AbstractCommandMarshaller::readBrokerIds(p<BinaryReader> reader)
|
||||||
|
{
|
||||||
|
int size = reader->readInt() ;
|
||||||
|
p<BrokerIdMarshaller> marshaller = CommandMarshallerRegistry::getBrokerIdMarshaller() ;
|
||||||
|
|
||||||
|
ap<BrokerId> brokerIds (size);
|
||||||
|
for( int i = 0; i < size; i++ )
|
||||||
|
brokerIds[i] = (p<BrokerId>&)marshaller->readCommand(reader) ;
|
||||||
|
|
||||||
|
return brokerIds ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AbstractCommandMarshaller::writeBrokerIds(ap<BrokerId> commands, p<BinaryWriter> writer)
|
||||||
|
{
|
||||||
|
int size = (int)commands.size() ;
|
||||||
|
p<BrokerIdMarshaller> marshaller = CommandMarshallerRegistry::getBrokerIdMarshaller() ;
|
||||||
|
|
||||||
|
writer->writeInt(size) ;
|
||||||
|
for( int i = 0; i < size; i++ )
|
||||||
|
marshaller->writeCommand(commands[i], writer) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
ap<BrokerInfo> AbstractCommandMarshaller::readBrokerInfos(p<BinaryReader> reader)
|
||||||
|
{
|
||||||
|
int size = reader->readInt() ;
|
||||||
|
p<BrokerInfoMarshaller> marshaller = CommandMarshallerRegistry::getBrokerInfoMarshaller() ;
|
||||||
|
|
||||||
|
ap<BrokerInfo> brokerInfos (size) ;
|
||||||
|
for( int i = 0; i < size; i++ )
|
||||||
|
brokerInfos[i] = (p<BrokerInfo>&)marshaller->readCommand(reader) ;
|
||||||
|
|
||||||
|
return brokerInfos ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AbstractCommandMarshaller::writeBrokerInfos(ap<BrokerInfo> commands, p<BinaryWriter> writer)
|
||||||
|
{
|
||||||
|
int size = (int)commands.size() ;
|
||||||
|
p<BrokerInfoMarshaller> marshaller = CommandMarshallerRegistry::getBrokerInfoMarshaller() ;
|
||||||
|
|
||||||
|
writer->writeInt(size) ;
|
||||||
|
for( int i = 0; i < size; i++ )
|
||||||
|
marshaller->writeCommand((p<ICommand>&)commands[i], writer);
|
||||||
|
}
|
||||||
|
|
||||||
|
ap<IDataStructure> AbstractCommandMarshaller::readDataStructures(p<BinaryReader> reader)
|
||||||
|
{
|
||||||
|
int size = reader->readInt() ;
|
||||||
|
|
||||||
|
ap<IDataStructure> dataStructs (size) ;
|
||||||
|
for( int i = 0; i < size; i++ )
|
||||||
|
dataStructs[i] = (p<IDataStructure>&)CommandMarshallerRegistry::readCommand(reader) ;
|
||||||
|
|
||||||
|
return dataStructs ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AbstractCommandMarshaller::writeDataStructures(ap<IDataStructure> commands, p<BinaryWriter> writer)
|
||||||
|
{
|
||||||
|
int size = (int)commands.size() ;
|
||||||
|
|
||||||
|
writer->writeInt(size) ;
|
||||||
|
for( int i = 0; i < size; i++ )
|
||||||
|
CommandMarshallerRegistry::writeCommand((p<ICommand>&)commands[i], writer) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
char* AbstractCommandMarshaller::readBytes(p<BinaryReader> reader)
|
||||||
|
{
|
||||||
|
int size = reader->readInt() ;
|
||||||
|
char* buffer = new char[size];
|
||||||
|
reader->read(buffer, size) ;
|
||||||
|
return buffer ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AbstractCommandMarshaller::writeBytes(char* buffer, int size, p<BinaryWriter> writer)
|
||||||
|
{
|
||||||
|
writer->writeInt(size) ;
|
||||||
|
writer->write(buffer, size) ;
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef AbstractCommandMarshaller_hpp_
|
||||||
|
#define AbstractCommandMarshaller_hpp_
|
||||||
|
|
||||||
|
#include "IDestination.hpp"
|
||||||
|
#include "BrokerError.hpp"
|
||||||
|
#include "command/ICommand.hpp"
|
||||||
|
#include "command/IDataStructure.hpp"
|
||||||
|
#include "command/BrokerInfo.hpp"
|
||||||
|
#include "command/BrokerId.hpp"
|
||||||
|
#include "io/BinaryReader.hpp"
|
||||||
|
#include "io/BinaryWriter.hpp"
|
||||||
|
#include "marshal/CommandMarshallerRegistry.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
#include "util/ifr/ap"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace marshal
|
||||||
|
{
|
||||||
|
using namespace ifr ;
|
||||||
|
using namespace std ;
|
||||||
|
using namespace apache::activemq::client;
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
using namespace apache::activemq::client::io;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class AbstractCommandMarshaller
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
AbstractCommandMarshaller() ;
|
||||||
|
virtual ~AbstractCommandMarshaller() ;
|
||||||
|
|
||||||
|
virtual p<ICommand> createCommand() = 0 ;
|
||||||
|
virtual p<ICommand> readCommand(p<BinaryReader> reader) ;
|
||||||
|
virtual void buildCommand(p<ICommand> command, p<BinaryReader> reader) = 0 ;
|
||||||
|
virtual void writeCommand(p<ICommand> command, p<BinaryWriter> writer) = 0 ;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual p<BrokerError> readBrokerError(p<BinaryReader> reader) ;
|
||||||
|
virtual void writeBrokerError(p<BrokerError> command, p<BinaryWriter> writer) ;
|
||||||
|
virtual p<IDestination> readDestination(p<BinaryReader> reader) ;
|
||||||
|
virtual void writeDestination(p<IDestination> command, p<BinaryWriter> writer) ;
|
||||||
|
virtual ap<BrokerId> readBrokerIds(p<BinaryReader> reader) ;
|
||||||
|
virtual void writeBrokerIds(ap<BrokerId> commands, p<BinaryWriter> writer) ;
|
||||||
|
virtual ap<BrokerInfo> readBrokerInfos(p<BinaryReader> reader) ;
|
||||||
|
virtual void writeBrokerInfos(ap<BrokerInfo> commands, p<BinaryWriter> writer) ;
|
||||||
|
virtual ap<IDataStructure> readDataStructures(p<BinaryReader> reader) ;
|
||||||
|
virtual void writeDataStructures(ap<IDataStructure> commands, p<BinaryWriter> writer) ;
|
||||||
|
virtual char* readBytes(p<BinaryReader> reader) ;
|
||||||
|
virtual void writeBytes(char* buffer, int size, p<BinaryWriter> writer) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*AbstractCommandMarshaller_hpp_*/
|
|
@ -0,0 +1,53 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "marshal/BrokerIdMarshaller.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::marshal;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BrokerIdMarshaller::BrokerIdMarshaller()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
BrokerIdMarshaller::~BrokerIdMarshaller()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ICommand> BrokerIdMarshaller::createCommand()
|
||||||
|
{
|
||||||
|
return new BrokerId() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerIdMarshaller::buildCommand(p<ICommand> command, p<BinaryReader> reader)
|
||||||
|
{
|
||||||
|
//AbstractCommandMarshaller::buildCommand(command, reader) ;
|
||||||
|
|
||||||
|
p<BrokerId> brokerId = (p<BrokerId>&)command ;
|
||||||
|
brokerId->setValue( reader->readString()->c_str() ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerIdMarshaller::writeCommand(p<ICommand> command, p<BinaryWriter> writer)
|
||||||
|
{
|
||||||
|
//AbstractCommandMarshaller::writeCommand(command, writer) ;
|
||||||
|
|
||||||
|
p<BrokerId> brokerId = (p<BrokerId>&)command ;
|
||||||
|
writer->writeString( brokerId->getValue() ) ;
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
#ifndef BrokerIdMarshaller_hpp_
|
||||||
|
#define BrokerIdMarshaller_hpp_
|
||||||
|
|
||||||
|
#include "command/ICommand.hpp"
|
||||||
|
#include "command/BrokerId.hpp"
|
||||||
|
#include "io/BinaryReader.hpp"
|
||||||
|
#include "io/BinaryWriter.hpp"
|
||||||
|
#include "marshal/AbstractCommandMarshaller.hpp"
|
||||||
|
#include "util/ifr/p"
|
||||||
|
|
||||||
|
namespace apache
|
||||||
|
{
|
||||||
|
namespace activemq
|
||||||
|
{
|
||||||
|
namespace client
|
||||||
|
{
|
||||||
|
namespace marshal
|
||||||
|
{
|
||||||
|
using namespace ifr ;
|
||||||
|
using namespace apache::activemq::client::command;
|
||||||
|
using namespace apache::activemq::client::io;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class BrokerIdMarshaller : public AbstractCommandMarshaller
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BrokerIdMarshaller() ;
|
||||||
|
virtual ~BrokerIdMarshaller() ;
|
||||||
|
|
||||||
|
virtual p<ICommand> createCommand() ;
|
||||||
|
virtual void buildCommand(p<ICommand> command, p<BinaryReader> reader) ;
|
||||||
|
virtual void writeCommand(p<ICommand> command, p<BinaryWriter> writer) ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
/* namespace */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /*BrokerIdMarshaller_hpp_*/
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2006 The Apache Software Foundation or its licensors, as
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
* 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 "marshal/BrokerInfoMarshaller.hpp"
|
||||||
|
|
||||||
|
using namespace apache::activemq::client::marshal;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BrokerInfoMarshaller::BrokerInfoMarshaller()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
BrokerInfoMarshaller::~BrokerInfoMarshaller()
|
||||||
|
{
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
|
||||||
|
p<ICommand> BrokerInfoMarshaller::createCommand()
|
||||||
|
{
|
||||||
|
return new BrokerInfo() ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerInfoMarshaller::buildCommand(p<ICommand> command, p<BinaryReader> reader)
|
||||||
|
{
|
||||||
|
//AbstractCommandMarshaller::buildCommand(command, reader) ;
|
||||||
|
|
||||||
|
p<BrokerInfo> brokerInfo = (p<BrokerInfo>&)command ;
|
||||||
|
brokerInfo->setBrokerId( (p<BrokerId>&)CommandMarshallerRegistry::getBrokerInfoMarshaller()->readCommand(reader) ) ;
|
||||||
|
brokerInfo->setBrokerURL( reader->readString()->c_str() ) ;
|
||||||
|
brokerInfo->setPeerBrokerInfo( AbstractCommandMarshaller::readBrokerInfos(reader) ) ;
|
||||||
|
brokerInfo->setBrokerName( reader->readString()->c_str() ) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrokerInfoMarshaller::writeCommand(p<ICommand> command, p<BinaryWriter> writer)
|
||||||
|
{
|
||||||
|
//AbstractCommandMarshaller::writeCommand(command, writer) ;
|
||||||
|
|
||||||
|
p<BrokerInfo> brokerInfo = (p<BrokerInfo>&)command ;
|
||||||
|
CommandMarshallerRegistry::getBrokerInfoMarshaller()->writeCommand(brokerInfo->getBrokerId(), writer) ;
|
||||||
|
writer->writeString( brokerInfo->getBrokerURL() ) ;
|
||||||
|
AbstractCommandMarshaller::writeBrokerInfos( brokerInfo->getPeerBrokerInfo(), writer) ;
|
||||||
|
writer->writeString( brokerInfo->getBrokerName() ) ;
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue