-#include "OCUCP-PF-Container.h"
-#include "OCTET_STRING.h"
-#include "asn_application.h"
-#include "E2SM-KPM-IndicationMessage.h"
-#include "FQIPERSlicesPerPlmnListItem.h"
-#include "E2SM-KPM-RANfunction-Description.h"
-#include "Timestamp.h"
+#ifndef ENCODE_KPM_HPP
+#define ENCODE_KPM_HPP
+
+extern "C" {
+ #include "OCUCP-PF-Container.h"
+ #include "OCTET_STRING.h"
+ #include "asn_application.h"
+ #include "E2SM-KPM-IndicationMessage.h"
+ #include "FQIPERSlicesPerPlmnListItem.h"
+ #include "E2SM-KPM-RANfunction-Description.h"
+ #include "Timestamp.h"
+}
void encode_kpm(E2SM_KPM_IndicationMessage_t* indicationmessage);
void encode_kpm_report_style1_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, long fiveqi, long dl_prb_usage, long ul_prb_usage, uint8_t* sd_buf, uint8_t* sst_buf,uint8_t* plmnid_buf, uint8_t* nrcellid_buf, long *dl_prbs, long *ul_prbs);
void encode_kpm_report_style5_parameterized(E2SM_KPM_IndicationMessage_t* indicationmessage, uint8_t *gnbcuupname_buf, int bytes_dl,int bytes_ul, uint8_t *sst_buf, uint8_t *sd_buf, uint8_t *plmnid_buf);
+
+
+#endif