/** * 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. */ #ifndef _ACTIVEMQ_COMMANDS_DATASTRUCTURE_H_ #define _ACTIVEMQ_COMMANDS_DATASTRUCTURE_H_ #include #include namespace activemq{ namespace commands{ class AMQCPP_API DataStructure : public wireformat::MarshalAware { public: virtual ~DataStructure() {} /** * Get the DataStructure Type as defined in CommandTypes.h * @return The type of the data structure */ virtual unsigned char getDataStructureType() const = 0; /** * Clone this obbject and return a new instance that the * caller now owns, this will be an exact copy of this one * @returns new copy of this object. */ virtual DataStructure* cloneDataStructure() const = 0; /** * Copy the contents of the passed object into this objects * members, overwriting any existing data. * @return src - Source Object */ virtual void copyDataStructure( const DataStructure* src ) = 0; /** * Returns a string containing the information for this DataStructure * such as its type and value of its elements. * @return formatted string useful for debugging. */ virtual std::string toString() const = 0; /** * Compares the DataStructure passed in to this one, and returns if * they are equivalent. Equivalent here means that they are of the * same type, and that each element of the objects are the same. * @returns true if DataStructure's are Equal. */ virtual bool equals( const DataStructure* value ) const = 0; }; }} #endif /*_ACTIVEMQ_COMMANDS_DATASTRUCTURE_H_*/