// --------------------------------------------------------
// Code generated by Papyrus C++
// --------------------------------------------------------

#ifndef PRODUCERCONSUMER_DATAEXCHANGE_PUBDATA_PUSHP_H
#define PRODUCERCONSUMER_DATAEXCHANGE_PUBDATA_PUSHP_H

/************************************************************
 PushP class header
 ************************************************************/

#include "ProducerConsumer/DataExchange_PubData/Pkg_DataExchange_PubData.h"

namespace ProducerConsumer {
namespace DataExchange_PubData {

/************************************************************/
/**
 * 
 */
class PushP {

};
/************************************************************/
/* External declarations (package visibility)               */
/************************************************************/

/* Inline functions                                         */

} // of namespace DataExchange_PubData
} // of namespace ProducerConsumer

/************************************************************
 End of PushP class header
 ************************************************************/

#endif
