From 3a475cace72f3dbbd89961c58da064d798629963 Mon Sep 17 00:00:00 2001
From: joanvallve <jvallve@iri.upc.edu>
Date: Tue, 24 Mar 2020 08:28:15 +0100
Subject: [PATCH] compiling

---
 include/gnss_utils/navigation.h | 84 ++++++++++++++++-----------------
 src/navigation.cpp              |  1 -
 2 files changed, 42 insertions(+), 43 deletions(-)

diff --git a/include/gnss_utils/navigation.h b/include/gnss_utils/navigation.h
index 3f0317e..f5008e9 100644
--- a/include/gnss_utils/navigation.h
+++ b/include/gnss_utils/navigation.h
@@ -13,24 +13,6 @@ extern "C"
 namespace GNSSUtils
 {
 
-//////////////////////////////// nav UTILS //////////////////////////////////////
-template <typename T>
-bool addToArray(const T &new_element, T *array, int &n, int &nmax);
-template <typename T>
-bool copyArray(const T *array_in, const int &n_in, T *array_out, int &n_out, int &nmax_out);
-template <typename T>
-void freeArray(T *array, int &n, int &nmax);
-void freeNavArrays(nav_t& nav);
-void freeEph(nav_t& nav);
-void freeGeph(nav_t& nav);
-void freeSeph(nav_t& nav);
-void freePeph(nav_t& nav);
-void freeAlm(nav_t& nav);
-void freePclk(nav_t& nav);
-void freeTec(nav_t& nav);
-void freeFcb(nav_t& nav);
-
-//////////////////////////////// Navigation Class //////////////////////////////////////
 class Navigation;
 typedef std::shared_ptr<Navigation> NavigationPtr;
 typedef std::shared_ptr<const Navigation> NavigationConstPtr;
@@ -84,6 +66,23 @@ class Navigation
 
         void print();
 
+        //////////////////////////////// nav UTILS //////////////////////////////////////
+        template <typename T>
+        static bool addToArray(const T &new_element, T *array, int &n, int &nmax);
+        template <typename T>
+        static bool copyArray(const T *array_in, const int &n_in, T *array_out, int &n_out, int &nmax_out);
+        template <typename T>
+        static void freeArray(T *array, int &n, int &nmax);
+        static void freeEph(nav_t &nav);
+        static void freeGeph(nav_t &nav);
+        static void freeSeph(nav_t &nav);
+        static void freePeph(nav_t &nav);
+        static void freeAlm(nav_t &nav);
+        static void freePclk(nav_t &nav);
+        static void freeTec(nav_t &nav);
+        static void freeFcb(nav_t &nav);
+        static void freeNavArrays(nav_t &nav);
+
     private:
 
         // rtklib-like attribute to represent the different navigation msgs for a given epoch
@@ -251,7 +250,7 @@ inline void Navigation::freeAlmanac()
 
 //////////////////////////////// nav UTILS //////////////////////////////////////
 template <typename T>
-bool addToArray(const T &new_element, T *array, int &n, int &nmax)
+bool Navigation::addToArray(const T &new_element, T *array, int &n, int &nmax)
 {
     // "inspired" from RTKLIB rinex.c
     T *array_ref;
@@ -273,7 +272,7 @@ bool addToArray(const T &new_element, T *array, int &n, int &nmax)
 }
 
 template<typename T>
-bool copyArray(const T *array_in, const int &n_in, T *array_out, int &n_out, int &nmax_out)
+bool Navigation::copyArray(const T *array_in, const int &n_in, T *array_out, int &n_out, int &nmax_out)
 {
     if (array_in == NULL)
         return false;
@@ -286,7 +285,7 @@ bool copyArray(const T *array_in, const int &n_in, T *array_out, int &n_out, int
 }
 
 template<typename T>
-void freeArray(T *array, int &n, int &nmax)
+void Navigation::freeArray(T *array, int &n, int &nmax)
 {
     if (array != NULL)
         free(array);
@@ -294,57 +293,58 @@ void freeArray(T *array, int &n, int &nmax)
     n = nmax = 0;
 }
 
-void freeNavArrays(nav_t& nav)
-{
-  // RTKLIB "freenav(&nav_,255)" doesn't check if is NULL before freeing
-  freeEph(nav);
-  freeGeph(nav);
-  freeSeph(nav);
-  freePeph(nav);
-  freePclk(nav);
-  freeAlm(nav);
-  freeTec(nav);
-  freeFcb(nav);
-}
-
-void freeEph(nav_t& nav)
+inline void Navigation::freeEph(nav_t &nav)
 {
     freeArray<eph_t>(nav.eph, nav.n, nav.nmax);
 }
 
-void freeGeph(nav_t& nav)
+inline void Navigation::freeGeph(nav_t &nav)
 {
     freeArray<geph_t>(nav.geph, nav.ng, nav.ngmax);
 }
 
-void freeSeph(nav_t& nav)
+inline void Navigation::freeSeph(nav_t &nav)
 {
     freeArray<seph_t>(nav.seph, nav.ns, nav.nsmax);
 }
-void freePeph(nav_t& nav)
+
+inline void Navigation::freePeph(nav_t &nav)
 {
     freeArray<peph_t>(nav.peph, nav.ne, nav.nemax);
 }
 
-void freeAlm(nav_t& nav)
+inline void Navigation::freeAlm(nav_t &nav)
 {
     freeArray<alm_t>(nav.alm, nav.na, nav.namax);
 }
 
-void freePclk(nav_t& nav)
+inline void Navigation::freePclk(nav_t &nav)
 {
     freeArray<pclk_t>(nav.pclk, nav.nc, nav.ncmax);
 }
 
-void freeTec(nav_t& nav)
+inline void Navigation::freeTec(nav_t &nav)
 {
     freeArray<tec_t>(nav.tec, nav.nt, nav.ntmax);
 }
 
-void freeFcb(nav_t& nav)
+inline void Navigation::freeFcb(nav_t &nav)
 {
     freeArray<fcbd_t>(nav.fcb, nav.nf, nav.nfmax);
 }
 
+inline void Navigation::freeNavArrays(nav_t &nav)
+{
+    // RTKLIB "freenav(&nav_,255)" doesn't check if is NULL before freeing
+    freeEph(nav);
+    freeGeph(nav);
+    freeSeph(nav);
+    freePeph(nav);
+    freePclk(nav);
+    freeAlm(nav);
+    freeTec(nav);
+    freeFcb(nav);
+}
+
 }
 #endif
diff --git a/src/navigation.cpp b/src/navigation.cpp
index 3f3724a..4296b97 100644
--- a/src/navigation.cpp
+++ b/src/navigation.cpp
@@ -1,6 +1,5 @@
 #include "gnss_utils/navigation.h"
 
-
 using namespace GNSSUtils;
 
 Navigation::Navigation()
-- 
GitLab