blob: e9e473bb36ebc120e8c859509a472d5d8f9c7b68 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 <activemq/wireformat/openwire/marshal/generated/SubscriptionInfoMarshaller.h>
#include <activemq/commands/SubscriptionInfo.h>
#include <activemq/exceptions/ActiveMQException.h>
#include <decaf/lang/Pointer.h>
//
// NOTE!: This file is autogenerated - do not modify!
// if you need to make a change, please see the Java Classes in the
// activemq-core module
//
using namespace std;
using namespace activemq;
using namespace activemq::exceptions;
using namespace activemq::commands;
using namespace activemq::wireformat;
using namespace activemq::wireformat::openwire;
using namespace activemq::wireformat::openwire::marshal;
using namespace activemq::wireformat::openwire::utils;
using namespace activemq::wireformat::openwire::marshal::generated;
using namespace decaf;
using namespace decaf::io;
using namespace decaf::lang;
///////////////////////////////////////////////////////////////////////////////
DataStructure* SubscriptionInfoMarshaller::createObject() const {
return new SubscriptionInfo();
}
///////////////////////////////////////////////////////////////////////////////
unsigned char SubscriptionInfoMarshaller::getDataStructureType() const {
return SubscriptionInfo::ID_SUBSCRIPTIONINFO;
}
///////////////////////////////////////////////////////////////////////////////
void SubscriptionInfoMarshaller::tightUnmarshal(OpenWireFormat* wireFormat, DataStructure* dataStructure, DataInputStream* dataIn, BooleanStream* bs) {
try {
BaseDataStreamMarshaller::tightUnmarshal(wireFormat, dataStructure, dataIn, bs);
SubscriptionInfo* info =
dynamic_cast<SubscriptionInfo*>(dataStructure);
int wireVersion = wireFormat->getVersion();
info->setClientId(tightUnmarshalString(dataIn, bs));
info->setDestination(Pointer<ActiveMQDestination>(dynamic_cast<ActiveMQDestination* >(
tightUnmarshalCachedObject(wireFormat, dataIn, bs))));
info->setSelector(tightUnmarshalString(dataIn, bs));
info->setSubcriptionName(tightUnmarshalString(dataIn, bs));
if (wireVersion >= 3) {
info->setSubscribedDestination(Pointer<ActiveMQDestination>(dynamic_cast<ActiveMQDestination* >(
tightUnmarshalNestedObject(wireFormat, dataIn, bs))));
}
}
AMQ_CATCH_RETHROW(decaf::io::IOException)
AMQ_CATCH_EXCEPTION_CONVERT(exceptions::ActiveMQException, decaf::io::IOException)
AMQ_CATCHALL_THROW(decaf::io::IOException)
}
///////////////////////////////////////////////////////////////////////////////
int SubscriptionInfoMarshaller::tightMarshal1(OpenWireFormat* wireFormat, DataStructure* dataStructure, BooleanStream* bs) {
try {
SubscriptionInfo* info =
dynamic_cast<SubscriptionInfo*>(dataStructure);
int rc = BaseDataStreamMarshaller::tightMarshal1(wireFormat, dataStructure, bs);
int wireVersion = wireFormat->getVersion();
rc += tightMarshalString1(info->getClientId(), bs);
rc += tightMarshalCachedObject1(wireFormat, info->getDestination().get(), bs);
rc += tightMarshalString1(info->getSelector(), bs);
rc += tightMarshalString1(info->getSubcriptionName(), bs);
if (wireVersion >= 3) {
rc += tightMarshalNestedObject1(wireFormat, info->getSubscribedDestination().get(), bs);
}
return rc + 0;
}
AMQ_CATCH_RETHROW(decaf::io::IOException)
AMQ_CATCH_EXCEPTION_CONVERT(exceptions::ActiveMQException, decaf::io::IOException)
AMQ_CATCHALL_THROW(decaf::io::IOException)
}
///////////////////////////////////////////////////////////////////////////////
void SubscriptionInfoMarshaller::tightMarshal2(OpenWireFormat* wireFormat, DataStructure* dataStructure, DataOutputStream* dataOut, BooleanStream* bs) {
try {
BaseDataStreamMarshaller::tightMarshal2(wireFormat, dataStructure, dataOut, bs );
SubscriptionInfo* info =
dynamic_cast<SubscriptionInfo*>(dataStructure);
int wireVersion = wireFormat->getVersion();
tightMarshalString2(info->getClientId(), dataOut, bs);
tightMarshalCachedObject2(wireFormat, info->getDestination().get(), dataOut, bs);
tightMarshalString2(info->getSelector(), dataOut, bs);
tightMarshalString2(info->getSubcriptionName(), dataOut, bs);
if (wireVersion >= 3) {
tightMarshalNestedObject2(wireFormat, info->getSubscribedDestination().get(), dataOut, bs);
}
}
AMQ_CATCH_RETHROW(decaf::io::IOException)
AMQ_CATCH_EXCEPTION_CONVERT( exceptions::ActiveMQException, decaf::io::IOException)
AMQ_CATCHALL_THROW(decaf::io::IOException)
}
///////////////////////////////////////////////////////////////////////////////
void SubscriptionInfoMarshaller::looseUnmarshal(OpenWireFormat* wireFormat, DataStructure* dataStructure, DataInputStream* dataIn) {
try {
BaseDataStreamMarshaller::looseUnmarshal(wireFormat, dataStructure, dataIn);
SubscriptionInfo* info =
dynamic_cast<SubscriptionInfo*>(dataStructure);
int wireVersion = wireFormat->getVersion();
info->setClientId(looseUnmarshalString(dataIn));
info->setDestination(Pointer<ActiveMQDestination>(dynamic_cast<ActiveMQDestination*>(
looseUnmarshalCachedObject(wireFormat, dataIn))));
info->setSelector(looseUnmarshalString(dataIn));
info->setSubcriptionName(looseUnmarshalString(dataIn));
if (wireVersion >= 3) {
info->setSubscribedDestination(Pointer<ActiveMQDestination>(dynamic_cast<ActiveMQDestination*>(
looseUnmarshalNestedObject(wireFormat, dataIn))));
}
}
AMQ_CATCH_RETHROW(decaf::io::IOException)
AMQ_CATCH_EXCEPTION_CONVERT(exceptions::ActiveMQException, decaf::io::IOException)
AMQ_CATCHALL_THROW(decaf::io::IOException)
}
///////////////////////////////////////////////////////////////////////////////
void SubscriptionInfoMarshaller::looseMarshal(OpenWireFormat* wireFormat, DataStructure* dataStructure, DataOutputStream* dataOut) {
try {
SubscriptionInfo* info =
dynamic_cast<SubscriptionInfo*>(dataStructure);
BaseDataStreamMarshaller::looseMarshal(wireFormat, dataStructure, dataOut);
int wireVersion = wireFormat->getVersion();
looseMarshalString(info->getClientId(), dataOut);
looseMarshalCachedObject(wireFormat, info->getDestination().get(), dataOut);
looseMarshalString(info->getSelector(), dataOut);
looseMarshalString(info->getSubcriptionName(), dataOut);
if (wireVersion >= 3) {
looseMarshalNestedObject(wireFormat, info->getSubscribedDestination().get(), dataOut);
}
}
AMQ_CATCH_RETHROW(decaf::io::IOException)
AMQ_CATCH_EXCEPTION_CONVERT(exceptions::ActiveMQException, decaf::io::IOException)
AMQ_CATCHALL_THROW(decaf::io::IOException)
}