src/lte/model/ff-mac-common.h
changeset 9039 5bdf0c1be85f
parent 7886 b65c16d4da83
child 9041 f04376f2d4ac
--- a/src/lte/model/ff-mac-common.h	Tue Jun 26 16:35:04 2012 +0200
+++ b/src/lte/model/ff-mac-common.h	Thu Jun 28 17:30:43 2012 +0200
@@ -21,6 +21,11 @@
 #ifndef FF_MAC_COMMON_H
 #define FF_MAC_COMMON_H
 
+#include <ns3/simple-ref-count.h>
+#include <ns3/ptr.h>
+#include <vector>
+
+
 /**
  * Constants. See section 4.4
  */
@@ -49,6 +54,7 @@
 #define MAX_SR_LIST           30
 #define MAX_MAC_CE_LIST       30
 
+namespace ns3 {
 
 enum Result_e
 {
@@ -143,13 +149,29 @@
 };
 
 /**
+* \brief Template class for storing the values of vendor specific parameters
+*/
+struct VendorSpecificValue : public SimpleRefCount<VendorSpecificValue>
+{ 
+  VendorSpecificValue ();
+  
+  virtual ~VendorSpecificValue ();
+  
+  /**
+  * copy constructor
+  */
+  // do we need it? it seems that it works without it
+//   VendorSpecificValue (const VendorSpecificValue& p); // do we need it?
+};
+
+/**
  * \brief See section 4.3.3 vendorSpecifiListElement
  */
 struct VendorSpecificListElement_s
 {
   uint32_t m_type;
   uint32_t m_length;
-  void    *m_value;
+  Ptr<VendorSpecificValue> m_value;
 };
 
 /**
@@ -464,5 +486,6 @@
   uint8_t   m_pagingSubframe;
 };
 
+} // namespace ns3
 
 #endif /* FF_MAC_COMMON_H */