blob: 2a883489946c1b3df0d1e06771a4bf2275ef3b63 [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.
*/
#ifndef _CMS_MAPMESSAGE_H_
#define _CMS_MAPMESSAGE_H_
#include <cms/Config.h>
#include <cms/Message.h>
namespace cms
{
/**
* A MapMessage object is used to send a set of name-value pairs. The
* names are String objects, and the values are primitive data types in
* the Java programming language. The names must have a value that is
* not null, and not an empty string. The entries can be accessed
* sequentially or randomly by name. The order of the entries is
* undefined. MapMessage inherits from the Message interface and adds
* a message body that contains a Map.
*
* When a client receives a MapMessage, it is in read-only mode. If a
* client attempts to write to the message at this point, a
* CMSException is thrown.
*/
class CMS_API MapMessage : public Message
{
public:
virtual ~MapMessage() {}
/**
* Returns an Enumeration of all the names in the MapMessage
* object.
*
* @return STL Vector of String values, each of which is the
* name of an item in the MapMessage
* @throws CMSException
*/
virtual std::vector< std::string > getMapNames() const = 0;
/**
* Indicates whether an item exists in this MapMessage object.
*
* @param name
* String name of the Object in question
* @return boolean value indicating if the name is in the map
*/
virtual bool itemExists( const std::string& name ) const = 0;
/**
* Returns the Boolean value of the Specified name
*
* @param name
* Name of the value to fetch from the map
* @throws CMSException
*/
virtual bool getBoolean( const std::string& name ) const
throw( CMSException ) = 0;
/**
* Sets a boolean value with the specified name into the Map.
*
* @param name
* the name of the boolean
* @param value
* the boolean value to set in the Map
* @throws CMSException
*/
virtual void setBoolean( const std::string& name,
bool value ) throw( CMSException ) = 0;
/**
* Returns the Byte value of the Specified name
*
* @param name
* Name of the value to fetch from the map
* @throws CMSException
*/
virtual unsigned char getByte( const std::string& name ) const
throw( CMSException ) = 0;
/**
* Sets a Byte value with the specified name into the Map.
*
* @param name
* the name of the Byte
* @param value
* the Byte value to set in the Map
* @throws CMSException
*/
virtual void setByte( const std::string& name,
unsigned char value ) throw( CMSException ) = 0;
/**
* Returns the Bytes value of the Specified name
*
* @param name
* Name of the value to fetch from the map
* @throws CMSException
*/
virtual std::vector<unsigned char> getBytes( const std::string& name ) const
throw( CMSException ) = 0;
/**
* Sets a Bytes value with the specified name into the Map.
*
* @param name
* The name of the Bytes
* @param value
* The Bytes value to set in the Map
* @throws CMSException
*/
virtual void setBytes( const std::string& name,
const std::vector<unsigned char>& value )
throw( CMSException ) = 0;
/**
* Returns the Char value of the Specified name
*
* @param name
* name of the value to fetch from the map
* @throws CMSException
*/
virtual char getChar( const std::string& name ) const
throw( CMSException ) = 0;
/**
* Sets a Char value with the specified name into the Map.
*
* @param name
* the name of the Char
* @param value
* the Char value to set in the Map
* @throws CMSException
*/
virtual void setChar( const std::string& name, char value )
throw( CMSException ) = 0;
/**
* Returns the Double value of the Specified name
*
* @param name
* Name of the value to fetch from the map
* @throws CMSException
*/
virtual double getDouble( const std::string& name ) const
throw( CMSException ) = 0;
/**
* Sets a Double value with the specified name into the Map.
*
* @param name
* The name of the Double
* @param value
* The Double value to set in the Map
* @throws CMSException
*/
virtual void setDouble( const std::string& name,
double value ) throw( CMSException ) = 0;
/**
* Returns the Float value of the Specified name
*
* @param name
* Name of the value to fetch from the map
* @throws CMSException
*/
virtual float getFloat( const std::string& name ) const
throw( CMSException ) = 0;
/**
* Sets a Float value with the specified name into the Map.
*
* @param name
* The name of the Float
* @param value
* The Float value to set in the Map
* @throws CMSException
*/
virtual void setFloat( const std::string& name, float value )
throw( CMSException ) = 0;
/**
* Returns the Int value of the Specified name
*
* @param name
* Name of the value to fetch from the map
* @throws CMSException
*/
virtual int getInt( const std::string& name ) const
throw( CMSException ) = 0;
/**
* Sets a Int value with the specified name into the Map.
*
* @param name
* The name of the Int
* @param value
* The Int value to set in the Map
* @throws CMSException
*/
virtual void setInt( const std::string& name, int value )
throw( CMSException ) = 0;
/**
* Returns the Long value of the Specified name
*
* @param name
* Name of the value to fetch from the map
* @throws CMSException
*/
virtual long long getLong( const std::string& name ) const
throw( CMSException ) = 0;
/**
* Sets a Long value with the specified name into the Map.
*
* @param name
* The name of the Long
* @param value
* The Long value to set in the Map
* @throws CMSException
*/
virtual void setLong( const std::string& name, long long value )
throw( CMSException ) = 0;
/**
* Returns the Short value of the Specified name
*
* @param name
* Name of the value to fetch from the map
* @throws CMSException
*/
virtual short getShort( const std::string& name ) const
throw( CMSException ) = 0;
/**
* Sets a Short value with the specified name into the Map.
*
* @param name
* The name of the Short
* @param value
* The Short value to set in the Map
* @throws CMSException
*/
virtual void setShort( const std::string& name, short value )
throw( CMSException ) = 0;
/**
* Returns the String value of the Specified name
*
* @param name
* Name of the value to fetch from the map
* @throws CMSException
*/
virtual std::string getString( const std::string& name ) const
throw( CMSException ) = 0;
/**
* Sets a String value with the specified name into the Map.
*
* @param name
* The name of the String
* @param value
* The String value to set in the Map
* @throws CMSException
*/
virtual void setString( const std::string& name,
const std::string& value )
throw( CMSException ) = 0;
};
}
#endif /*_CMS_MAPMESSAGE_H_*/