// ---------------------------------------------------------------------------------------------------------------------
// gnReplicationDatagram.h, part of a mid-level dynamic library
#include "<path_to_low_level_library>/gnMetaClass.h"
class __attribute__((visibility("default"))) gnReplicationDatagram
{
private:
static gnMetaClass const* ms_pClass_gnReplicationDatagram;
public:
static gnMetaClass const& MetaClass()
{
return *ms_pClass_gnReplicationDatagram;
}
/*__attribute__((visibility("default")))*/ virtual gnMetaClass const& GetMetaClass() const
{
return gnReplicationDatagram::MetaClass();
}
public:
gnReplicationDatagram() {}
virtual ~gnReplicationDatagram() {}
gnReplicationDatagram(gnReplicationDatagramId a_eId): m_eId(a_eId) {}
private:
gnReplicationDatagramId m_eId;
};
// ---------------------------------------------------------------------------------------------------------------------
// gnReplicationObjectsCreationDatagram.h, part of the same mid-level dynamic library as above
#include "<path_to_mid_level_library>/gnReplicationDatagram.h"
class __attribute__((visibility("default"))) gnReplicationObjectsCreationDatagram: public gnReplicationDatagram, gnNoCopy<gnReplicationObjectsCreationDatagram>
{
private:
static gnMetaClass const* ms_pClass_gnReplicationObjectsCreationDatagram;
public:
static gnMetaClass const& MetaClass()
{
return *ms_pClass_gnReplicationObjectsCreationDatagram;
}
/*__attribute__((visibility("default")))*/ virtual gnMetaClass const& GetMetaClass() const
{
return gnReplicationObjectsCreationDatagram::MetaClass();
}
public:
gnReplicationObjectsCreationDatagram(): gnReplicationDatagram(gnReplicationDatagramId::eObjectCreation) {}
virtual ~gnReplicationObjectsCreationDatagram();
private:
// some non-static variable
};
// ---------------------------------------------------------------------------------------------------------------------
// gnReplicationDatagramUTestSuite.cpp, part of a Unit Test dynamic library
#include "<path_to_mid_level_library>/gnReplicationObjectsCreationDatagram.h"
class gnReplicationDatagramUTestSuite: public gnUTestSuite
{
private:
void ObjectsCreationDestructionDatagram()
{
gnReplicationObjectsCreationDatagram oCreationDatagram;
}
};
************************************************************************************