Newer
Older
Yann Garcia
committed
/*!
* \file naptrPort_layer_factory.hh
Yann Garcia
committed
* \brief Header file for Diameter protocol layer factory.
* \author ETSI TTF T010
* \copyright ETSI Copyright Notification
* No part may be reproduced except as authorized by written permission.
* The copyright and the foregoing restriction extend to reproduction in all media.
* All rights reserved.
* \version 0.1
*/
#pragma once
#include "layer_stack_builder.hh"
#include "naptr_layer.hh"
/*!
* \class naptrPort_layer_factory
Yann Garcia
committed
* \brief This class provides a factory class to create an naptr_layer class instance
*/
class naptrPort_layer_factory : public layer_factory {
static naptrPort_layer_factory _f; //! Reference to the unique instance of this class
Yann Garcia
committed
public: //! \publicsection
/*!
* \brief Default constructor
* Create a new instance of the udp_layer_factory class
* \remark The HTTP layer identifier is HTTP
*/
naptrPort_layer_factory() {
Yann Garcia
committed
// Register factory
layer_stack_builder::register_layer_factory("NAPTR", this);
};
/*!
* \fn layer* create_layer(const std::string & type, const std::string & param);
* \brief Create the layers stack based on the provided layers stack description
* \param[in] p_type The provided layers stack description
* \param[in] p_params Optional parameters
* \return 0 on success, -1 otherwise
* \inline
*/
inline virtual layer* create_layer(const std::string& p_type, const std::string& p_param){
return new naptr_layer(p_type, p_param);
};
}; // End of class naptrPort_layer_factory