-> incoming
<- outgoing

TOPICS:
	-> TOPIC_ENTITY_CONNECTION
	-> TOPIC_SIMULATION_TIME_UPDATE_1_SECOND
	<- Visio topics.

MESSAGES:   
    
	->  1. Subscription of my public info.
		- DESCRIPTION: protocol = SUBSCRIBE, content = AcrossMessageConstants.PUBLIC_INFO_REQUEST, performative = , reason = , sender = .
		- ANSWER: Handled by SubscribeParticipantTask.
		- EXPLANATION: Somebody wants to be informed about my public info.
		
	->  2. Receive semi-private info from an alliance member and send my back.
		- DESCRIPTION: protocol = SUBSCRIBE, content = SemiPrivateParams, performative = , reason = , sender = .
		- ANSWER: Handled by SubscribeParticipantTask.
		- EXPLANATION: An alliance member sent me its semi-private info and wants to be informed about
		my semi-private info.
	
	->  3. Contract net for transportation.
		- DESCRIPTION: protocol = CNP, content = TransportCfp, performative = , reason = , sender = .
		- ANSWER: Handled by CNPTransportBidAnswer
		- EXPLANATION: Somebody wants something to be transported.

	->  4. Sub-contractor finished transport.
		- DESCRIPTION: protocol = REQUEST, content = RequestList, performative = INFORM_DONE, reason = , sender = .
		- ANSWER:
		- EXPLANATION: The subcontractor has finished transportation of one or more batches.

	->  5. Sub-contractor finished transport of one batch.
		- DESCRIPTION: protocol = REQUEST, content = Batch, performative = INFORM_DONE, reason = , sender = .
		- ANSWER:
		- EXPLANATION: The subcontractor finished transport of a batch.

	->  6. Transportation of batches failed.
		- DESCRIPTION: protocol = REQUEST, content = RequestList, performative = FAILURE, reason = , sender = .
		- ANSWER:
		- EXPLANATION: Transportation of batches failed.
		
	->  7. Transport was accepted.
		- DESCRIPTION: protocol = REQUEST, content = TransportRequest, performative = REQUEST, reason = , sender = .
		- ANSWER: Handled by TransportAcceptedTask
		- EXPLANATION: Transport was accepted.
		
	->  8. New agent comming into the alliance
		- DESCRIPTION: protocol = REQUEST, content = Page, performative = REQUEST, reason = , sender = .
		- ANSWER: Handled by RequstJoinAllianceParticipantTask
		- EXPLANATION: New agent comming into the alliance - ask this agent what it thinks about it.
		
	->  9. Alliance merge - TODO!
		- DESCRIPTION: protocol = REQUEST, content = String, performative = REQUEST, reason = , sender = .
		- ANSWER:
		- EXPLANATION:

	->  10. Request for merge from other alliance
		- DESCRIPTION: protocol = REQUEST, content = Pages, performative = REQUEST, reason = , sender = .
		- ANSWER: Handled by RequestMergeAllianceTask
		- EXPLANATION: Request for merge from other alliance - this agent acts as a local intermediary.

	->  11. Kick a member from the alliance.
		- DESCRIPTION: protocol = REQUEST, content = Address, performative = REQUEST, reason = , sender = .
		- ANSWER: 
		- EXPLANATION: Kick a member specified by the content from alliance.

	->  12. Reception of a AdvancedTeamProposal
		- DESCRIPTION: protocol = REQUEST, content = AdvTeamProposal, performative = REQUEST, reason = , sender = .
		- ANSWER:
		- EXPLANATION:  AdvancedTeamProposal received - handle it.

	->  13. Reception of cooperation result from coalition leader.
		- DESCRIPTION: protocol = INFORM, content = CooperationResult, performative = INFORM_RESULT, reason = , sender = .
		- ANSWER:
		- EXPLANATION: Receive cooperation result from the coalition leader.

	->  14. Coalition leader's update from member that a delivery of a batch was successfull
		- DESCRIPTION: protocol = INFORM, content = Batch, performative = INFORM_DONE, reason = NOT NULL, sender = .
		- ANSWER:
		- EXPLANATION: Coalition leader's update from member that a delivery of a batch was successfull

	->  15. Coalition leader's update from member that a batch was stolen
		- DESCRIPTION: protocol = INFORM, content = Batch, performative = FAILURE, reason = NOT NULL, sender = .
		- ANSWER:
		- EXPLANATION:

	->  16. Query if I accept new alliance member.
		- DESCRIPTION: protocol = QUERY, content = Message, performative = QUERY_IF, reason = , sender = .
		- ANSWER: INFORM_TF (TRUE/FALSE)
		- EXPLANATION: Query if I accept new alliance member.

	->  17. Query if I accept new alliance member (Trust).
		- DESCRIPTION: protocol = QUERY, content = Address, performative = QUERY_IF, reason = , sender = .
		- ANSWER: Handled by QueryIfParticipantTask.
		- EXPLANATION: Query if I accept new alliance member - used in trust.

	->  18. An offer to participate in team activity.
		- DESCRIPTION: protocol = QUERY, content = TeamProposal, performative = QUERY_REF, reason = , sender = .
		- ANSWER: Handled by QueryRefParticipantTask
		- EXPLANATION: An offer to participate in team activity.
		
	->  19. An offer to participate in advanced team activity.
		- DESCRIPTION: protocol = QUERY, content = AdvTeamProposal, performative = QUERY_REF, reason = , sender = .
		- ANSWER:
		- EXPLANATION: An offer to participate in advanced team activity.
		
	<-  20. Transporter claims a driver
		- DESCRIPTION: protocol = SUBSCRIBE, content = String(home node), performative = , reason = , receiver = DriverAgent.
		- HANDLER: SubscribeInitiatorTask
		- EXPLANATION: Transporter claims a driver so that it later on accepts its commands.
		
	<-  21. Transporter subscribes LocationAgent public info.
		- DESCRIPTION: protocol = SUBSCRIBE, content = , performative = , reason = , receiver = LocationAgent.
		- HANDLER: SubscribeInitiatorTask
		- EXPLANATION: Transporter subscribes LocationAgent public info.
		
	<-  22. Try to join alliance.
		- DESCRIPTION: protocol = REQUEST, content = , performative = , reason = , receiver = TransporterAgent.
		- HANDLER: SeqRequestInitiatorTask
		- EXPLANATION: Transporter agent tries to join some alliance.

	<-  23. Subscribe and send semi-private info
		- DESCRIPTION: protocol = SUBSCRIBE, content = , performative = , reason = , receiver = TransporterAgent.
		- HANDLER: SubscribeInitiatorTask
		- EXPLANATION: For spreading semi-private info among the alliance.

