Difference between revisions of "EMU/Protocol"

 
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
[[Category:Projects]]
 +
[[Image:emu_logo_03.png|right|frame| EMUs: Eiffel Multi Users]]
 +
 
===Messages===
 
===Messages===
====Connection Establishment====
+
Messages are encapsulated within objects that are being transmitted over the network.
 +
All messages inherit from EMU_MESSAGE.
 +
 
 +
====Client====
 +
* login
 +
version
 +
projectname
 +
username
 +
password
 +
 
 +
* update_request
 +
wants to receive new files
 +
 
 +
* unlock_request
 +
wants to edit a code chunk
 +
 
 +
* upload_chunk
 +
upload an edited chunk
 +
 
 +
* relock_request
 +
wants to end locking session
 +
 
 +
* lock_status_request
 +
get information about all classes
 +
 
 +
* online_status_request
 +
get information about online users
 +
 
 +
* logout
 +
informs about a logout of the client
 +
 
 +
====Server====
 +
* login_accepted
 +
 
 +
* login_denied
 +
 
 +
* update
 +
class files
 +
 
 +
* unlock_request_granted
 +
checks status
 +
sets status
 +
 
 +
* unlock_request_denied
 +
status information
 +
 
 +
* lock_status
 +
send status information of all classes
 +
 
 +
* online_status
 +
send status of users online
 +
 
 +
* server_down
 +
send information about server down
 +
 
 +
* send_message
 +
send a message to all clients
 +
 
 +
 
 +
====Server-Administration====
 +
The administration tool is meant to maintain and control the server.
 +
 
 +
* admin_login
 +
admin_name
 +
admin_password
 +
 
 +
* admin_cmd
 +
command to be executed? or attribute indicating which command should be executed?
 +
 
 +
 
 +
====Project-Administration====
 +
There are two ways of administrating an emu-project:
 +
 
 +
1. using the New EMU Project Wizard (create)
 +
 
 +
2. using the EMU Project Settings dialog (customize)
 +
 
 +
All messages inherit from EMU_PROJECT_MESSAGE, which has an attribute "project_name".
 +
 
 +
'''to server'''
 +
 
 +
* PROJECT_CREATE
 +
project_password
 +
 
 +
* PROJECT_DELETE
 +
project_password
 +
 
 +
* PROJECT_ADD_USER
 +
project_password
 +
user_name
 +
user_password
 +
 
 +
* PROJECT_REMOVE_USER
 +
project_password
 +
user_name
 +
 
 +
* PROJECT_CLASS_LIST_REQUEST
 +
project_password
 +
 
 +
* PROJECT_USER_LIST_REQUEST
 +
project_password
 +
 
 +
* PROJECT_CLASS_UNLOCK_REQUEST
 +
project_password
 +
class_name
 +
 
 +
'''from server'''
 +
 
 +
* PROJECT_ERROR
 +
error_code
 +
error_msg
  
====Synchronization Check====
+
* PROJECT_OK
 +
ok_code
 +
ok_msg
  
====Data Transfer====
+
* PROJECT_CLASS_LIST
 +
class_list
  
====Connection Closure====
+
* PROJECT_USER_LIST
 +
user_list

Latest revision as of 08:13, 15 June 2006

EMUs: Eiffel Multi Users

Messages

Messages are encapsulated within objects that are being transmitted over the network. All messages inherit from EMU_MESSAGE.

Client

  • login
version
projectname
username
password
  • update_request
wants to receive new files
  • unlock_request
wants to edit a code chunk
  • upload_chunk
upload an edited chunk
  • relock_request
wants to end locking session
  • lock_status_request
get information about all classes
  • online_status_request
get information about online users
  • logout
informs about a logout of the client

Server

  • login_accepted
  • login_denied
  • update
class files
  • unlock_request_granted
checks status
sets status
  • unlock_request_denied
status information
  • lock_status
send status information of all classes
  • online_status
send status of users online
  • server_down
send information about server down
  • send_message
send a message to all clients


Server-Administration

The administration tool is meant to maintain and control the server.

  • admin_login
admin_name
admin_password
  • admin_cmd
command to be executed? or attribute indicating which command should be executed?


Project-Administration

There are two ways of administrating an emu-project:

1. using the New EMU Project Wizard (create)

2. using the EMU Project Settings dialog (customize)

All messages inherit from EMU_PROJECT_MESSAGE, which has an attribute "project_name".

to server

  • PROJECT_CREATE
project_password
  • PROJECT_DELETE
project_password
  • PROJECT_ADD_USER
project_password
user_name
user_password
  • PROJECT_REMOVE_USER
project_password
user_name
  • PROJECT_CLASS_LIST_REQUEST
project_password
  • PROJECT_USER_LIST_REQUEST
project_password
  • PROJECT_CLASS_UNLOCK_REQUEST
project_password
class_name

from server

  • PROJECT_ERROR
error_code
error_msg
  • PROJECT_OK
ok_code
ok_msg
  • PROJECT_CLASS_LIST
class_list
  • PROJECT_USER_LIST
user_list