* @author David Moss
*/
interface ActiveMessageAddress {
+
/**
- * @return the active message address of this node
+ * Set the active message address of this node
+ * @param group The node's group ID
+ * @param addr The node's active message address
*/
- async command am_addr_t amAddress();
+ async command void setAddress(am_group_t group, am_addr_t addr);
/**
- * Set the active message address of this node
- * @param addr The target active message address
+ * @return the active message address of this node
*/
- async command void setAmAddress(am_addr_t addr);
+ async command am_addr_t amAddress();
/**
* @return the group address of this node
*/
async command am_group_t amGroup();
- /**
- * Set the group address of this node
- * @param group The group address
- */
- async command void setAmGroup(am_group_t group);
-
-
/**
* Notification that the address or group settings changed.
*/
/**
* Set the active message address of this node
- * @param a The target active message address
+ * @param group The node's group ID
+ * @param addr The node's active message address
*/
- async command void ActiveMessageAddress.setAmAddress(am_addr_t a) {
- call setAmAddress(a);
+ async command void ActiveMessageAddress.setAddress(am_group_t myGroup, am_addr_t myAddr) {
+ atomic {
+ addr = myAddr;
+ group = myGroup;
+ }
+ signal ActiveMessageAddress.changed();
}
return myGroup;
}
- /**
- * Set the group address of this node
- * @param group The group address
- */
- async command void ActiveMessageAddress.setAmGroup(am_group_t myGroup) {
- atomic group = myGroup;
- signal ActiveMessageAddress.changed();
- }
/***************** Deprecated Commands ****************/
/**
* Set the node's default AM address.
*
* @param a - the address.
- * @deprecated Use ActiveMessageAddress.setAmAddress() instead
+ * @deprecated Use ActiveMessageAddress.setAddress() instead
*/
async command void setAmAddress(am_addr_t a) {
atomic addr = a;