From 3633a985f4eeaabe04426fda91eb43caea4ccaba Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Thu, 19 May 2016 15:18:19 +0000
Subject: [PATCH] Update on simulator

---
 simulators/c++2/src_simulator/TMLTransaction.cpp     |  4 ++++
 simulators/c++2/src_simulator/TMLTransaction.h       |  3 +++
 simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp | 10 ++++++++++
 simulators/c++2/src_simulator/arch/SingleCoreCPU.h   |  7 +++++++
 simulators/c++2/src_simulator/sim/Simulator.cpp      |  6 ++++++
 5 files changed, 30 insertions(+)

diff --git a/simulators/c++2/src_simulator/TMLTransaction.cpp b/simulators/c++2/src_simulator/TMLTransaction.cpp
index 40c25c5bc5..a0fcf7f9d5 100755
--- a/simulators/c++2/src_simulator/TMLTransaction.cpp
+++ b/simulators/c++2/src_simulator/TMLTransaction.cpp
@@ -79,3 +79,7 @@ std::string TMLTransaction::toShortString() const{
 }
 
 
+void toXML(std::ostringstream& glob, int deviceID, std::string deviceNAME) const {
+  
+}
+
diff --git a/simulators/c++2/src_simulator/TMLTransaction.h b/simulators/c++2/src_simulator/TMLTransaction.h
index 1c2e52b647..d349ccadd9 100644
--- a/simulators/c++2/src_simulator/TMLTransaction.h
+++ b/simulators/c++2/src_simulator/TMLTransaction.h
@@ -226,6 +226,9 @@ public:
 	inline static void resetID() {_ID=1;}
 	inline void setStateID(ID iID) {_stateID=iID;}
 	inline ID getStateID() {return _stateID;}
+
+	void toXML(std::ostringstream& glob, int deviceID, std::string deviceNAME) const;
+
 protected:
 	///Time when the transaction became runnable
 	TMLTime _runnableTime;
diff --git a/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp b/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp
index 8963e0947c..7cdce1382d 100644
--- a/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp
+++ b/simulators/c++2/src_simulator/arch/SingleCoreCPU.cpp
@@ -315,6 +315,9 @@ std::string SingleCoreCPU::toShortString() const{
 	return outp.str();
 }
 
+
+
+
 void SingleCoreCPU::schedule2HTML(std::ofstream& myfile) const{
 	TMLTime aCurrTime=0;
 	TMLTransaction* aCurrTrans;
@@ -397,6 +400,13 @@ void SingleCoreCPU::schedule2TXT(std::ofstream& myfile) const{
 	}
 }
 
+
+void allTrans2XML(std::ostringstream& glob) const {
+  for(TransactionList::const_iterator i=_transactList.begin(); i != _transactList.end(); ++i){
+    (*i)->toXML(glob, 0, _name);
+  }
+}
+
 //TMLTime SingleCoreCPU::getNextSignalChange(bool iInit, std::string& oSigChange, bool& oNoMoreTrans){
 void SingleCoreCPU::getNextSignalChange(bool iInit, SignalChangeData* oSigData){
 	//new (oSigData) SignalChangeData(RUNNING, aCurrTrans->getStartTimeOperation(), this);
diff --git a/simulators/c++2/src_simulator/arch/SingleCoreCPU.h b/simulators/c++2/src_simulator/arch/SingleCoreCPU.h
index ee6c40f303..abdb37bae3 100644
--- a/simulators/c++2/src_simulator/arch/SingleCoreCPU.h
+++ b/simulators/c++2/src_simulator/arch/SingleCoreCPU.h
@@ -118,6 +118,13 @@ public:
 	std::ostream& writeObject(std::ostream &os);
 protected:
 	///Truncates the next transaction at time iTime
+
+	/**
+      	\param glob refers to the output stream
+    	*/
+	void allTrans2XML(std::ostringstream& glob) const;
+
+	
 	/**
 	\param iTime Indicates at what time the transaction should be truncated
 	*/
diff --git a/simulators/c++2/src_simulator/sim/Simulator.cpp b/simulators/c++2/src_simulator/sim/Simulator.cpp
index 44112a8858..f7338db591 100644
--- a/simulators/c++2/src_simulator/sim/Simulator.cpp
+++ b/simulators/c++2/src_simulator/sim/Simulator.cpp
@@ -217,7 +217,13 @@ void Simulator::schedule2TXT(std::string& iTraceFileName) const{
 
 void Simulator::allTrans2XML(std::ostringstream& glob) const{
   glob << TAG_TRANSo << "Transaction" << TAG_TRANSc << std::endl;
+  for(CPUList::const_iterator i=_simComp->getCPUList().begin(); i != _simComp->getCPUList().end(); ++i){
+    (*i)->allTrans2XML(myfile);
+  }
   
+  for(BusList::const_iterator j=_simComp->getBusList().begin(); j != _simComp->getBusList().end(); ++j){
+    (*j)->allTrans2XML(myfile);
+  }
 }
 
 
-- 
GitLab