MME2 changes - Propped commits from openmme/paging branch. Added scripts
for code gen

Change-Id: Ie55032217232214ac8544ca76ea34335205329e4
diff --git a/scripts/SMCodeGen/templates/ctxtManagerTmpls/dataBlocks.cpp.tt b/scripts/SMCodeGen/templates/ctxtManagerTmpls/dataBlocks.cpp.tt
new file mode 100644
index 0000000..18a1626
--- /dev/null
+++ b/scripts/SMCodeGen/templates/ctxtManagerTmpls/dataBlocks.cpp.tt
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2019-present Infosys Limited  
+ *   
+ * SPDX-License-Identifier: Apache-2.0    
+ */
+ [%- DataStore = templateIn %]
+ [%- USE String %]
+ [%- MACRO CLASSNAME(str) BLOCK %]
+ [%- className =  String.new %]
+ [%- strList =  String.new(str).split("_") %]
+ [%- FOREACH str = strList %]
+ [%-    token = className.append(String.new(str).capital.text()) %]
+ [%- END %]
+ [%- className %]
+ [%- END %]
+ [%- MACRO REF(str) BLOCK %]
+ [%- primTypeList = [ "int", "short", "uint8_t", "uint16_t", "uint32_t", "unsigned int", "unsigned char", "unsigned short", "bool" ] %]
+ [%- reference = String.new %]
+ [%- reference = '&' %]
+ [%- FOREACH type = primTypeList %]
+ [%- 	IF str == type %]
+ [%-			reference = '' %]
+ [%-		END %]
+ [%- END %]
+ [%- reference %]
+ [%- END %]
+/**************************************
+ *
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/dataBlocks.cpp.tt>
+ ***************************************/
+#include "mmeBlocks/dataBlocks.h"
+
+namespace mme
+{
+	[%- FOREACH DataGroup = DataStore.DataGroups %]
+	[%- FOREACH DataBlock = DataGroup.DataBlocks %]
+	[%- dataBlockClassName = CLASSNAME(DataBlock.BlockName) %]
+	/******************************************************************************
+	*******************************************************************************
+	*							[% dataBlockClassName %]
+	*******************************************************************************
+	******************************************************************************/
+	
+	/******************************************************************************
+	* Constructor
+	******************************************************************************/
+	[% dataBlockClassName %]::[% dataBlockClassName %]()
+	{
+	}
+	
+	/******************************************************************************
+	* Destructor
+	******************************************************************************/
+	[% dataBlockClassName %]::~[% dataBlockClassName %]()
+	{
+	}
+	
+	[%- FOREACH Data = DataBlock.Data %]
+	/******************************************************************************
+	* sets [% Data.Name %]
+	******************************************************************************/
+	void [% dataBlockClassName %]::set[% Data.Name %]( const [% Data.Type %][% REF(Data.Type) %] [% Data.Name %]_i )
+	{
+		[% Data.Name %]_m = [% Data.Name %]_i;
+	}
+	
+	/******************************************************************************
+	* returns [% Data.Name %]
+	******************************************************************************/	
+	const [% Data.Type %][% REF(Data.Type) %] [% dataBlockClassName %]::get[% Data.Name %]()const
+	{
+		return [% Data.Name %]_m;
+	}
+	[%- END %]
+	
+	[%- FOREACH Child = DataBlock.Children %]
+	/******************************************************************************
+	* sets [% Child %]
+	******************************************************************************/
+	void [% dataBlockClassName %]::set[% Child %]( [% Child %]* [% Child %]p )
+	{
+		[% Child %]_mp = [% Child %]p;
+	}
+	
+	/******************************************************************************
+	* returns [% Child %]
+	******************************************************************************/
+	[% Child %]* [% dataBlockClassName %]::get[% Child %]()
+	{
+		return [% Child %]_mp;
+	}
+[%- END %]
+[%- END %]
+[%- END %]
+} // mme
\ No newline at end of file