Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Jul 10, 2010
  1. Use automatic delegation of methods and slots for obby states

    authored
    * obby/rudel-obby-state.el (rudel-obby-state): added superclasses
      rudel-impersonator and rudel-delegator
      (rudel-obby-state::impersonation-target-slot): new slot; target
      object for slot delegation
      (rudel-obby-state::delegation-target-slot): new slot; target object
      for method delegation
      (rudel-obby-state::rudel-send): removed; now delegated to delegation
      target object
    * obby/rudel-obby-server.el (rudel-obby-server-state-new): changed
      method-resolution-order to :c3
      (rudel-obby-server-state-encryption-negotiate): likewise
      (rudel-obby-server-state-before-join): likewise
      (rudel-obby-server-state-idle): likewise
    * obby/rudel-obby-client.el (rudel-obby-client-state-new): changed
      method-resolution-order to :c3
      (rudel-obby-client-state-encryption-negotiate): likewise
      (rudel-obby-client-state-encryption-start): likewise
      (rudel-obby-client-state-waiting-for-join-info): likewise
      (rudel-obby-client-state-joining): likewise
      (rudel-obby-client-state-join-failed): likewise
      (rudel-obby-client-state-idle): likewise
      (rudel-obby-client-state-session-synching): likewise
      (rudel-obby-client-state-subscribing): likewise
      (rudel-obby-client-state-document-synching): likewise
      (rudel-obby-client-state-we-finalized): likewise
      (rudel-obby-client-state-they-finalized): likewise
      (rudel-obby-client-state-disconnected): likewise
  2. Do ask for unrelated info in obby backend's rudel-ask-connect-info

    authored
    * rudel-obby.el (rudel-obby-backend::rudel-ask-connect-info): do not
      ask for transport backend, protocol backend, host or port; these are
      obtained by the session initiation backend and the transport backend
      respectively
Commits on Jul 6, 2010
  1. Use document handler in idle state in obby/rudel-obby-server.el

    authored
    * obby/rudel-obby-server.el (rudel-obby-server-state-idle): added
      superclass rudel-obby-document-handler
      (rudel-obby-server-state-idle::document-container-slot): set initarg
      to 'server
      (rudel-obby-server-state-idle::rudel-obby/obby_document): removed;
      handled by superclass
Commits on Jun 15, 2010
  1. Only positive integers in rudel-obby-server::next-{client,user}-id

    authored
    * obby/rudel-obby-server.el (rudel-obby-server::next-client-id):
      restrict values to positive numbers
      (rudel-obby-server::next-user-id): restrict values to positive
      numbers
Commits on May 30, 2010
  1. Improved docstring of method rudel-obby/obby_document/sync_init

    authored
    * obby/rudel-obby-client.el
      (rudel-obby-client-state-subscribing::rudel-obby/obby_document/sync_init):
      improved documentation string
  2. New function rudel-obtain-password, used in XMPP SASL mechanism

    authored
    * rudel-interactive.el (rudel-obtain-password): new function; try to
      obtain from different sources, falling back to prompting the user
    * xmpp/rudel-xmpp-sasl.el
      (rudel-xmpp-state-sasl-mechanism-step::rudel-accept): bind
      `sasl-read-passphrase' to `rudel-obtain-sasl-password' to make it
      overridable
      (rudel-xmpp-state-sasl-mechanism-step::rudel-obtain-sasl-password):
      call `rudel-obtain-password'
    * obby/rudel-obby.el (rudel-obby-backend::rudel-ask-connect-info): use
      `rudel-obtain-password' instead of `read-string'
Commits on May 25, 2010
  1. Warn if document does not exist when handling obby_document msg

    authored
    * obby/rudel-obby-server.el (require warnings): new require; used to
      display warning messages
      (rudel-obby-server-state-idle::rudel-obby/obby_document): check
      whether the document does exist; display a warning if it does not
Commits on May 24, 2010
  1. Cosmetic changes and doc improvements in obby/rudel-obby-client.el

    authored
    * obby/rudel-obby-client.el
      (rudel-obby-client-state-session-synching::rudel-obby/net6_client_join):
      improved comment; cosmetic changes
      (rudel-obby/obby_document/sync_chunk): improved documentation
      string; changed let* -> let; use zerop instead of = ... 0; added a
      comment
      (rudel-obby-connection::rudel-publish): added a documentation string
  2. Removed &rest from slots arg of init-inst of rudel-obby-connection

    authored
    * obby/rudel-obby-client.el
      (rudel-obby-connection::initialize-instance): removed &rest from
      slots argument
  3. Minor fixes and improvements in obby/rudel-obby-client.el

    authored
    * obby/rudel-obby-client.el
      (rudel-obby-client-state-idle::rudel-obby/net6_client_join): use
      test = when locating user; improved comment
      (rudel-obby-client-state-idle::rudel-obby/obby_document_create):
      added TODO item regarding not displaying messages from the backend
      (rudel-obby-client-state-idle::rudel-obby/obby_document/rename):
      improved documentation string
      (rudel-obby-client-state-session-synching): reflowed documentation
      strings of slots
      (rudel-obby-client-state-subscribing::rudel-obby/obby_document/sync_init):
      fixed name of document slot
Commits on May 2, 2010
  1. Silence the byte-compiler in obby/rudel-obby-server.el

    authored
    * obby/rudel-obby-server.el (require rudel-obby): required to silence
      the byte-compiler
Commits on Apr 17, 2010
  1. Require warnings library where display-warning is used

    authored
    * rudel-backend.el (header): updated copyright
      (require warnings):
    * obby/rudel-obby-state.el (require warnings):
    * obby/rudel-obby-client.el (require warnings):
    * infinote/rudel-infinote-group.el (require warnings):
    * infinote/rudel-infinote-group-directory.el (require warnings):
    * infinote/rudel-infinote-client.el (require warnings): new require;
      this is needed since display-warning is used
Commits on Apr 10, 2010
  1. Check color on entering joining state in obby/rudel-obby-client.el

    authored
    * obby/rudel-obby-client.el
      (rudel-obby-client-state-joining::rudel-enter): check color before
      trying to login; switch to failure state if the color is invalid
Commits on Apr 9, 2010
  1. Added docstrings to rudel-obby-server in obby/rudel-obby-server.el

    authored
    * obby/rudel-obby-server.el (rudel-obby-server::clients):
      (rudel-obby-server::next-client-id):
      (rudel-obby-server::next-user-id):
      (rudel-obby-server::contexts): added documentation strings
Commits on Mar 14, 2010
  1. Removed &rest from initialize-instance in obby/rudel-obby.el

    authored
    * obby/rudel-obby.el (rudel-obby-backend::initialize-instance):
      removed &rest from slots arguments
Commits on Mar 12, 2010
  1. Ensure self user is present in after sync in obby backend

    authored
    * obby/rudel-obby-client.el (rudel-obby/obby_sync_final): switch to
      we-finalized when the self user is missing
Commits on Mar 10, 2010
  1. Improved some error messages in obby backend

    authored
    * obby/rudel-obby-state.el (header): updated copyright
      (rudel-obby-document-handler::rudel-obby/obby_document): improved
      error message
    * obby/rudel-obby-client.el (header): updated copyright
      (rudel-obby-client-state-idle::rudel-obby/net6_client_part):
      (rudel-obby-client-state-idle::rudel-obby/obby_document_remove):
      (rudel-obby-client-state-idle::rudel-obby/obby_document/record):
      improved error messages
Commits on Jan 27, 2010
  1. Integrated new debugging framework

    authored
    * rudel-debug.el (header): updated copyright; fixed keywords; extended
      commentary section; added 0.2 to history section
      (require rudel-transport-util):
      (require rudel-socket): now required, since we install methods
      (rudel-debug-tag-faces): changed from constant to variable
      (rudel-state-change :before):
      (rudel-debug-stream-name):
      (rudel-debug-stream-insert): removed; replaced by
      `rudel-debug-write-to-stream' and `rudel-debug-write'
      (rudel-debug-target): new generic function; determine debug stream
      for an object
      (rudel-debug-write-to-stream): new function; write information to
      debug stream
      (rudel-debug-write): new function; write information to debug stream
      for a specific object
      (rudel-debug-old-state):
      (rudel-state-machine::rudel-switch :before):
      (rudel-state-machine::rudel-switch :after): new variable/methods;
      state machine debugging
      (rudel-assembling-transport-filter::rudel-set-assembly-function	:before):
      (rudel-assembling-transport-filter::rudel-set-filter):
      (rudel-assembling-transport-filter::rudel-send :before): new
      methods; debugging for `rudel-assembling-transport-filter'
      (rudel-parsing-transport-filter::rudel-set-parse-function :before):
      (rudel-parsing-transport-filter::rudel-set-generate-function :before):
      (rudel-parsing-transport-filter::rudel-set-filter):
      (rudel-parsing-transport-filter::rudel-send :before): new methods;
      debugging for `rudel-parsing-transport-filter'
      (rudel-socket-transport::rudel-set-filter):
      (rudel-socket-transport::rudel-send :before): new methods; debugging
      for `rudel-socket-transport'
    * xmpp/rudel-xmpp-debug.el (header): fixed keywords; added 0.2 to
      history section
      (require rudel-xmpp-state): now required, since we install methods
      (rudel-xmpp-debug-old-state):
      (rudel-xmpp-transport::rudel-send :before):
      (rudel-xmpp-transport::rudel-accept :before): 
      (rudel-xmpp-transport::rudel-switch :before):
      (rudel-xmpp-transport::rudel-switch :after): removed; handled by
      generic stuff in rudel-debug.el now
      (rudel-xmpp-state::rudel-debug-target): new method; debug target for
      XMPP states
      (rudel-xmpp-state-sasl-mechanism-step::rudel-send):
      (rudel-xmpp-state-sasl-mechanism-step::rudel-send :after):
      (rudel-xmpp-state-sasl-mechanism-step::rudel-accept :before):
      rewritten for new debugging framework
    * obby/rudel-obby-debug.el (header): updated copyright; added 0.2 to
      history section
      (require eieio):
      (require rudel-obby-util): removed; no longer needed
      (require rudel-obby-server): now required, since we install methods
      on server classes
      (rudel-obby-debug-old-state):
      (rudel-obby-connection::rudel-send :before):
      (rudel-obby-connection::rudel-accept :before):
      (rudel-obby-connection::rudel-switch :before):
      (rudel-obby-connection::rudel-switch :after): removed; handled by
      generic stuff in rudel-debug.el now
      (rudel-obby-connection::rudel-debug-target): new method; debug
      target for `rudel-obby-connection'
      (rudel-obby-client::rudel-debug-target): new method; debug target
      for `rudel-obby-client'
    * TODO (Milestone 0.3): integrate new debugging framework is DONE
Commits on Jan 20, 2010
  1. Handle invalid color on the obby protocol level

    authored
    * obby/rudel-obby.el (rudel-connect): check for
      `rudel-obby-invalid-color' and reset the color value in that case
    * obby/rudel-obby-server.el (header): updated copyright
      (rudel-check-username-and-color): send value of
      `rudel-obby-error-color' when the color is invalid
    * obby/rudel-obby-errors.el (header): updated copyright
      (rudel-obby-invalid-color): new condition symbol; used to indicated
      an invalid color
      (rudel-obby-error-color-invalid): new constant; proposed obby
      protocol error code for invalid color
      * obby/rudel-obby-client.el (rudel-obby/net6_login_failed): check
      for reason rudel-obby-error-color-invalid and return appropriate
      error
  2. Fixed error symbol rudel-obby-username-invalid in obby client

    authored
    * obby/rudel-obby.el (header): updated copyright
      (rudel-obby-backend::rudel-connect): fixed error symbol
      rudel-obby-username-invalid -> rudel-obby-invalid-username
    * obby/rudel-obby-client.el (header): updated copyright
      (rudel-obby-client-state-joining::rudel-obby/net6_login_failed):
      fixed error symbol rudel-obby-username-invalid ->
      rudel-obby-invalid-username
Commits on Dec 30, 2009
  1. Better handling of session termination and connection aborts

    Jan Moringen authored
    * obby/rudel-obby.el (rudel-obby-backend::rudel-connect): new error
      states we-finalized and disconnect; signal proper errors for error
      states they-finalized and we-finalized
    * obby/rudel-obby-server.el (rudel-obby-client::initialize-instance):
      install a sentinel that closes the connection
    * obby/rudel-obby-client.el (rudel-obby-client-state-we-finalized):
      used to indicate that we closed the connection
      (rudel-obby-client-state-they-finalized::reason): new slot; stores
      for finalization
      (rudel-obby-client-state-they-finalized::rudel-enter): new method;
      store reason and cleanup connection
      (rudel-obby-client-state-disconnected): new class; used to indicated
      that the connection is closed
      (rudel-obby-client-connection-states): added `we-finalized' and
      `disconnected'
      (rudel-obby-connection::initialize-instance): install a sentinel
      that closes the connection
      (rudel-obby-connection::rudel-disconnect): switch to `we-finalize'
      and wait for `disconnected'; added documentation string
      (rudel-obby-connection::rudel-close): added documentation string
      (rudel-obby-connection::rudel-subscribe-to): handle new error states
Commits on Dec 21, 2009
  1. * obby/rudel-obby.el (rudel-obby-user::rudel-display-string): removed;

    authored
      now in obby/rudel-obby-display.el
  2. * rudel-mode.el (require rudel-display): required for

    authored
      `rudel-display-string'
    * rudel-display.el (require rudel): required to ensure `rudel-user'
      and `rudel-document' are defined
    * obby/rudel-obby.el (require rudel-obby-display): make sure
      `rudel-display-string' is defined for obby classes
    * obby/rudel-obby-display.el (require rudel-obby): required to ensure
      `rudel-obby-user' is defined
Commits on Dec 20, 2009
  1. * obby/rudel-obby-state.el (header): fixed history

    authored
      (rudel-obby-document-handler::rudel-obby/obby_document): go through
      the connection object for now
    * obby/rudel-obby-client.el
      (rudel-obby-client-state-idle::document-container-slot): 
      (rudel-obby-client-state-subscribing::document-container-slot): 
      (rudel-obby-client-state-document-synching::document-container-slot):
      set initial value to 'session
  2. * rudel.el (rudel-user::rudel-display-string): moved to

    authored
      rudel-display.el
    * rudel-display.el: new file; functions that create text
      representations of Rudel objects
    * obby/rudel-obby-display.el: new file; functions that create text
      representations of obby objects
    * obby/Project.ede (target obby): added rudel-display.el
    * Project.ede (target rudel): added rudel-display.el
Commits on Dec 19, 2009
  1. * obby/rudel-obby-server.el

    authored
      (rudel-obby-server-state-idle::rudel-obby/obby_document):
      (rudel-obby-server-state-idle::rudel-obby/obby_document/record): use
      `rudel-dispatch' instead of `rudel-obby-dispatch'
  2. * rudel-debug.el (local variables): prevent byte-compilation

    authored
    * obby/rudel-obby-debug.el (header): downcased keywords
      (local variables): prevent byte-compilation
  3. * rudel.el (rudel-user::rudel-change-notify): new method; run change

    authored
      hook
    * obby/rudel-obby-server.el
      (rudel-obby-server-state-idle::rudel-obby/obby_user_colour): call
      `rudel-change-notify' instead of `object-run-hook-with-args' after
      modifying the user object
    * obby/rudel-obby-client.el
      (rudel-obby-client-state-idle::rudel-rudel-obby/net6_client_join):
      call `rudel-change-notify' after modifying the user object
  4. * obby/rudel-obby.el (rudel-ask-connect-info): when extracting

    authored
      properties from info list, there is no need to ensure info being
      non-nil
  5. * rudel.el (rudel-host-session): pass partial info list to

    authored
      `rudel-ask-host-info'; cleanup; extended documentation string
    * obby/rudel-obby.el (rudel-obby-backend::rudel-ask-host-info): try
      extract address and port from info list before prompting
Commits on Dec 6, 2009
  1. * obby/rudel-obby-errors.el (require rudel-errors): not really

    authored
      required, but logical
      (rudel-obby-invalid-username):
      (rudel-obby-username-in-use):
      (rudel-obby-color-in-use): new error symbols
  2. * obby/rudel-obby-util.el (header): updated keywords; extended

    authored
      commentary section; cosmetic changes to history section
      (rudel-obby-dispatch): removed; obsolete
    * obby/rudel-obby-state.el (header): updated keywords
      (rudel-obby-document-handler): make abstract
      (rudel-obby-document-handler::document-container-slot): new slot;
      name of slot which holds the object with the document list
      (rudel-obby-document-handler::rudel-obby/obby_document): find
      document list in the named slot
Commits on Dec 5, 2009
  1. * obby/rudel-obby-server.el (rudel-obby-client::initialize-instance):

    authored
      removed &rest from slots argument; updated documentation string
      (rudel-obby-client::rudel-broadcast): renamed argument arguments ->
      args; updated documentation string
      (rudel-obby-server::initialize-instance): removed &rest from slots
      argument; added documentation string
Commits on Dec 4, 2009
  1. * socket/rudel-socket.el (rudel-socket-listener): new class;

    authored
      implements `rudel-listener'
      (rudel-tcp-backend::rudel-wait-for-connections): removed argument
      dispatch-callback; added argument info-callback; ensure info
      contains required properties; create a listener socket and pass it
      to a new listener object
    * rudel.el (rudel-host-session): added argument info; generate empty
      info list in interactive form; create a listener object and pass it
      to the protocol backend
    * rudel-transport.el (rudel-listener): new abstract class; generic
      functionality for accepting incoming connections
      (rudel-transport-backend::rudel-wait-for-connections): removed
      argument dispatch-callback; added argument info-callback; updated
      documentation string
    * rudel-protocol.el (rudel-protocol-backend::rudel-ask-connect-info):
      added optional argument info; updated documentation string
      (rudel-protocol-backend::rudel-ask-host-info): added optional
      argument info; updated documentation string
    * obby/rudel-obby.el (rudel-obby-backend::rudel-ask-host-info): added
      optional argument info
      (rudel-obby-backend::rudel-host): renamed
      argument`transport-backend' -> `listener'; do not install dispatch
      function; the server does this itself
    * obby/rudel-obby-server.el (require rudel-obby): required to silence
      the byte-compiler
      (rudel-obby-server::listener): new slot; stores listener object of
      the server
      (rudel-obby-server::initialize-instance): install `rudel-add-client'
      into the listener as dispatch function
Commits on Dec 3, 2009
  1. * rudel.el (rudel-host-session): determine a transport and a protocol

    authored
      backend; ask the protocol backend to create the session 
    * rudel-util.el (rudel-socket-owner):
      (rudel-filter-dispatch):
      (rudel-sentinel-dispatch): removed; made obsolete by transports
    * rudel-protocol.el (rudel-protocol-backend::rudel-host): added
      backend argument, which is the transport backend; updated
      documentation string
    * rudel-debug.el (rudel-state-machine::rudel-state-change): attached
      method to `rudel-state-machine' instead of `rudel-socket-owner'
      (rudel-debug-stream-name): determine the name from a transport
      object instead of a socket
    * obby/rudel-obby.el (require rudel-transport): required for
      transports
      (rudel-obby-backend::rudel-connect): use a transport object instead
      of a socket
      (rudel-obby-backend::rudel-ask-host-info): added :address property
      (rudel-obby-backend::rudel-host): added transport-backend argument;
      do not create a socket but call the
      `rudel-wait-for-connections' method of the transport backend
      (rudel-obby-send): removed; made obsolete by transports
      (rudel-obby-generate-message): new function; used in parsing
      transport filters to serialize obby messages
    * obby/rudel-obby-util.el (require rudel-transport-util): new; for
      `rudel-transport-make-filter-stack'
      (rudel-obby-socket-owner): removed; made obsolete by transports
    * obby/rudel-obby-server.el (header): bumped version to 0.3
      (rudel-obby-client): removed base class `rudel-obby-socket-owner'
      (rudel-obby-client::transport): new slot; stores transport object
      (rudel-obby-client::initialize-instance): build a transport filter
      stack and install `rudel-accept' as filter
      (rudel-obby-client::rudel-message): removed; `rudel-accept' is
      called by the transport
      (rudel-obby-client::rudel-send): new; send data through transport
      (rudel-obby-server): removed base class `rudel-socket-owner'
      (rudel-obby-server::rudel-add-client): expect a transport object
      instead of a socket
    * obby/rudel-obby-debug.el (header): cosmetic changes
      (require rudel-obby-client): new; required since all methods are now
      attached to the `rudel-obby-connection' class
      (rudel-obby-connection::rudel-send): now attached to the
      `rudel-obby-connection' class
      (rudel-obby-connection::rudel-accept): renamed `rudel-receive' ->
      `rudel-accept'; now attached to the `rudel-obby-connection' class
      (rudel-obby-socket-owner::rudel-message): removed; obsolete
      (rudel-obby-connection::rudel-switch): now attached to the
      `rudel-obby-connection' class
    * obby/rudel-obby-client.el (header): bumped version to 0.3
      (rudel-obby-client-state-encryption-start::rudel-obby/net6_encryption_begin):
      call transport method to enable encryption
      (rudel-obby-connection): removed base class `rudel-socket-owner'
      (rudel-obby-connection::transport): new slot; stores transport
      object
      (rudel-obby-connection::initialize-instance): build a transport
      filter stack and install `rudel-accept' as filter
      (rudel-obby-connection::rudel-send): new; send data through the
      transport
      (rudel-obby-connection::rudel-message): removed; obsolete
Something went wrong with that request. Please try again.