I have the class DvQkdLdpcTxMessageProcessorReceiver
as follow:
#ifndef DV_QKD_LDPC_TX_MESSAGE_PROCESSOR_RECEIVER_H_
#define DV_QKD_LDPC_TX_MESSAGE_PROCESSOR_RECEIVER_H_
#include "netxpto_20200819.h"
#include "dv_qkd_message_processor_common_20200819.h"
class DvQkdLdpcTxMessageProcessorReceiver : public Block
{
public:
DvQkdLdpcTxMessageProcessorReceiver(std::initializer_list<Signal*> InputSig, std::initializer_list<Signal*> OutputSig) : Block(InputSig, OutputSig) {};
void initialize(void);
bool runBlock(void);
private:
// Input Parameters ##################################################################################
// State Variables ###################################################################################
std::vector<t_message> storedMessages{};
// Basis Reconciliation
t_integer messageReconciliationMaximumDataLength{ 4096 };
CircularBuffer<t_binary> BasesFrom{ messageReconciliationMaximumDataLength };
// Parameter Estimation
t_integer messageParameterEstimationMaximumDataLength{ 100 };
t_integer numberOfProcessedBits{ -1 };
CircularBuffer<t_integer> SeedFrom{ 10 };
CircularBuffer<t_integer> RatioFrom{ 10 };
CircularBuffer<t_integer> NumberOfBitsPerEstimationBlockFrom{ 10 };
CircularBuffer<t_binary> DataFrom{ 10*(size_t) messageParameterEstimationMaximumDataLength };
// Error correction - Parities
std::vector<t_integer> parityIn{};
bool errCorrParitiesStarted{ false };
// Sindrome
t_integer messageSindromeMaximumDataLength{ 5000 };
CircularBuffer<t_binary> Sindrome{ messageSindromeMaximumDataLength };
// Error correction - Permutations
std::vector<t_integer> permutationsIn{};
bool errCorrPermStarted{ false };
// Error correction - BER
std::vector<t_integer> errCorrBerIn{};
bool errCorrBerStarted{ false };
// Privacy amplification seeds
std::vector<t_integer> privacySeedsIn{};
bool privacySeedsStarted{ false };
bool outputReceivedData(std::vector <t_integer>& dataVector, Signal& outputSignal, bool &started);
};
#endif // !MESSAGE_PROCESSOR_RECEIVER_H_
The parent class is defined as:
class Block {
public:
/* Methods */
Block(){};
Block(std::vector<Signal*> &InputSig, std::vector<Signal*> &OutputSig);
Block(std::initializer_list<Signal*> InputSig, std::initializer_list<Signal*> OutputSig); // since C++11
//void initializeBlock(std::vector<Signal*> InputSig, vector<Signal*> OutputSig);
void initializeBlock();
virtual void initialize(void) {};
//bool runBlock();
virtual bool runBlock();
void terminateBlock();
virtual void terminate(void) {};
void closeOutputSignals();
void setNumberOfInputSignals(int nOfInputSignal) { numberOfInputSignals = nOfInputSignal; };
int getNumberOfInputSignals() { return numberOfInputSignals; };
void setNumberOfOutputSignals(int nOfOutputSignal) { numberOfOutputSignals = nOfOutputSignal; };
int getNumberOfOutputSignals() { return numberOfOutputSignals; };
void setLogValue(bool lValue) { logValue = lValue; }
bool getLogValue() { return logValue; }
void setFirstRun(bool fRun) { firstRun = fRun; }
bool getFirstRun() { return firstRun; }
void setFirstTime(bool fTime) { firstTime = fTime; }
bool getFirstTime() { return firstTime; }
void setTerminated(bool t) { terminated = t; }
bool getTerminated() { return terminated; }
std::string getSignalsFolderName();
void setVerboseMode(t_bool vMode) { verboseMode = vMode; }
t_bool getVerboseMode(void) { return verboseMode; }
void setVerboseFolderName(t_string vFolderName) { verboseFolderName = vFolderName; }
t_string getVerboseFolderName(void) const { return verboseFolderName; }
std::vector<Signal *> inputSignals;
std::vector<Signal *> outputSignals;
private:
bool logValue{ true };
bool firstRun{ true }; // To be deleted, 2020/02/04, the name firstTime is more comum
bool firstTime{ true };
bool terminated{ false };
t_bool verboseMode{ true };
int numberOfInputSignals{ 1 };
int numberOfOutputSignals{ 1 };
t_string verboseFolderName{ "verbose" };
};
when I make in the terminal, I receive the following error:
undefined reference to `vtable for DvQkdLdpcTxMessageProcessorReceiver'
How could I fix it? I searched a lot about the error (I tried to find pure virtual method or inline functions and ...), but no result. Thank you.