[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