com.sentilla.platform.cmote
Class MimeoDisseminationProtocol

java.lang.Object
  extended by com.sentilla.system.DriverAdapter
      extended by com.sentilla.platform.cmote.Protocol
          extended by com.sentilla.platform.cmote.MimeoDisseminationProtocol
All Implemented Interfaces:
Driver

public class MimeoDisseminationProtocol
extends Protocol

Viral dissemination protocol for sending messages from a client application to a mote network.

This is the client application version of the mimeo dissemination protocol. This version is used by client applications to send messages to a mote network.

The mimeo dissemination protocol is a viral dissemination protocol. It will transmit messages to a network and they will be maintained in that network until replaced. If a new mote enters the network after a message has been disseminated, that message will be disseminated to the new mote. These messages constantly persist in the network, and will continue being disseminated to new motes as long as the message exists in the network. However, if a message is replaced by sending a new message, the old message can not be guaranteed to be disseminated to new motes.

It can take up to 40 seconds per hop for a message to be disseminated with this protocol. Care should be taken not to transmit message too quickly. If a message is replaced before the old message has reached all the motes then there is a possibility that some motes may not received the old message.

The protocol does not make any guarantees about what order messages will be received in. It is possible that messages will be received out of order.

The available payload for this protocol is 70 bytes.

This protocol supports the BroadcastAddress class and the Mac64Address class.

See Also:
Protocol, Mac64Address, BroadcastAddress

Nested Class Summary
static class MimeoDisseminationProtocol.MimeoReceiver
          Receiver implementation for the MimeoDisseminationProtocol.
static class MimeoDisseminationProtocol.MimeoSender
          Sender implementation for the MimeoDisseminationProtocol.
 
Field Summary
 Protocol proto
           
 
Fields inherited from class com.sentilla.system.DriverAdapter
m_nextDriver
 
Constructor Summary
MimeoDisseminationProtocol()
           
 
Method Summary
 boolean doesInstanceMatch(Object obj)
          Returns true when obj instanceof MimeoDataMessage.
 String getDriverName(int n)
          Returns the strings "mimeoproto", "viral" and "dissem".
 Receiver newReceiver()
          Returns a new Receiver object for the MimeoDisseminationProtocol.
 Sender newSender()
          Returns a new Sender object for the MimeoDisseminationProtocol.
 void stackReceive(Receiver rcvr)
          Needed by client applications to snoop on other client communications.
 void stackSend(Sender s)
          Sends messages with Mimeo.
 
Methods inherited from class com.sentilla.system.DriverAdapter
getNextDriver, setNextDriver
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

proto

public Protocol proto
Constructor Detail

MimeoDisseminationProtocol

public MimeoDisseminationProtocol()
Method Detail

stackReceive

public void stackReceive(Receiver rcvr)
Needed by client applications to snoop on other client communications.

Specified by:
stackReceive in class Protocol
Parameters:
rcvr - Receiver object containing received object
See Also:
Receiver

stackSend

public void stackSend(Sender s)
Sends messages with Mimeo. This method should only be called by the Dispatcher.

Specified by:
stackSend in class Protocol
Parameters:
s - Sender object containing the object to be sent.
See Also:
Sender, Protocol, Dispatcher

newSender

public Sender newSender()
Returns a new Sender object for the MimeoDisseminationProtocol.

Specified by:
newSender in class Protocol
Returns:
the sender for this protocol
See Also:
Sender

newReceiver

public Receiver newReceiver()
Returns a new Receiver object for the MimeoDisseminationProtocol.

Specified by:
newReceiver in class Protocol
Returns:
the receiver for this protocol.
See Also:
Receiver

doesInstanceMatch

public boolean doesInstanceMatch(Object obj)
Returns true when obj instanceof MimeoDataMessage.

Specified by:
doesInstanceMatch in class Protocol
Parameters:
obj - the object to test.
Returns:
true if this receiver is receiving for the same class as obj.
See Also:
Protocol

getDriverName

public String getDriverName(int n)
Returns the strings "mimeoproto", "viral" and "dissem".

Specified by:
getDriverName in interface Driver
Specified by:
getDriverName in class DriverAdapter
See Also:
Drivers, Driver


Copyright © 2007 Sentilla Corporation. All Rights Reserved.