[Avida-SVN] r3576 - in development/source: cpu main

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Wed Dec 23 12:02:33 PST 2009


Author: beckma24
Date: 2009-12-23 15:02:33 -0500 (Wed, 23 Dec 2009)
New Revision: 3576

Modified:
   development/source/cpu/cHardwareCPU.cc
   development/source/cpu/cHardwareCPU.h
   development/source/main/cOrgMessage.cc
   development/source/main/cOrgMessage.h
Log:
Initial step toward incorporating active messages and interrupts.  Added message type to cOrgMessage.

Modified: development/source/cpu/cHardwareCPU.cc
===================================================================
--- development/source/cpu/cHardwareCPU.cc	2009-12-22 21:38:35 UTC (rev 3575)
+++ development/source/cpu/cHardwareCPU.cc	2009-12-23 20:02:33 UTC (rev 3576)
@@ -7200,10 +7200,14 @@
 */
 bool cHardwareCPU::Inst_SendMessage(cAvidaContext& ctx)
 {
+	return SendMessage(ctx);
+}
+
+bool cHardwareCPU::SendMessage(cAvidaContext& ctx, int messageType) {
   const int label_reg = FindModifiedRegister(REG_BX);
   const int data_reg = FindNextRegister(label_reg);
   
-  cOrgMessage msg = cOrgMessage(m_organism);
+  cOrgMessage msg = cOrgMessage(m_organism, messageType);
   msg.SetLabel(GetRegister(label_reg));
   msg.SetData(GetRegister(data_reg));
   return m_organism->SendMessage(ctx, msg);

Modified: development/source/cpu/cHardwareCPU.h
===================================================================
--- development/source/cpu/cHardwareCPU.h	2009-12-22 21:38:35 UTC (rev 3575)
+++ development/source/cpu/cHardwareCPU.h	2009-12-23 20:02:33 UTC (rev 3576)
@@ -754,6 +754,7 @@
   
   //// Messaging ////
   bool Inst_SendMessage(cAvidaContext& ctx);
+	bool SendMessage(cAvidaContext& ctx, int messageType = 0);
   bool Inst_RetrieveMessage(cAvidaContext& ctx);
   bool BroadcastX(cAvidaContext& ctx, int depth);
   bool Inst_Broadcast1(cAvidaContext& ctx);

Modified: development/source/main/cOrgMessage.cc
===================================================================
--- development/source/main/cOrgMessage.cc	2009-12-22 21:38:35 UTC (rev 3575)
+++ development/source/main/cOrgMessage.cc	2009-12-23 20:02:33 UTC (rev 3576)
@@ -27,14 +27,14 @@
 
 
 cOrgMessage::cOrgMessage()
-: m_pSender(0), m_pReceiver(0), m_data(0)
+: m_pSender(0), m_pReceiver(0), m_messageType(0), m_data(0)
 , m_label(0), m_senderOrgID(0), m_senderCellID(0)
 , m_receiverOrgID(0), m_receiverCellID(0) {
 }
 
 
-cOrgMessage::cOrgMessage(cOrganism* sender)
-: m_pSender(sender), m_pReceiver(0), m_data(0)
+cOrgMessage::cOrgMessage(cOrganism* sender, int messageType)
+: m_pSender(sender), m_pReceiver(0), m_messageType(messageType), m_data(0)
 , m_label(0), m_receiverOrgID(0), m_receiverCellID(0) {
 	assert(m_pSender);
 	m_senderCellID = sender->GetCellID();

Modified: development/source/main/cOrgMessage.h
===================================================================
--- development/source/main/cOrgMessage.h	2009-12-22 21:38:35 UTC (rev 3575)
+++ development/source/main/cOrgMessage.h	2009-12-23 20:02:33 UTC (rev 3576)
@@ -41,7 +41,7 @@
   cOrgMessage();
 	
   //! Constructor that takes a pointer to the sending organism.
-  cOrgMessage(cOrganism* sender);
+  cOrgMessage(cOrganism* sender, int messageType = 0);
   
   cOrganism* GetSender() const { return m_pSender; }
   cOrganism* GetReceiver() const { return m_pReceiver; }
@@ -58,10 +58,13 @@
 
   int GetReceiverCellID() const { return m_receiverCellID; }
   int GetReceiverOrgID() const { return m_receiverOrgID; }
+	
+	int GetMessageType() const { return m_messageType; }
 
 private:
   cOrganism* m_pSender;
   cOrganism* m_pReceiver;
+	int m_messageType;
   unsigned int m_data;
   unsigned int m_label;
 




More information about the Avida-cvs mailing list