Sha256: f95eacb3bed73bee3ce9cc16a399d68ba5fe5112864eebac14e089e8f55c81f3

Contents?: true

Size: 1.7 KB

Versions: 48

Compression:

Stored size: 1.7 KB

Contents

# This file is part of CPEE.
# 
# CPEE is free software: you can redistribute it and/or modify it under the terms
# of the GNU General Public License as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any later version.
# 
# CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.  See the GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License along with
# CPEE (file COPYING in the main directory).  If not, see
# <http://www.gnu.org/licenses/>.

class NotificationsHandler < Riddl::Utils::Notifications::Producer::HandlerBase
  def ws_open(socket)
    @data.add_websocket(@key,socket)
  end
  def ws_close
    @data.unserialize_notifications!(:del,@key)
    @data.notify('properties/handlers/change', :instance => @data.instance)
  end
  def ws_message(data)
    begin
      doc = XML::Smart::string(data)
      callback = doc.find("string(/vote/@id)")
      result = doc.find("string(/vote)")
      @data.callbacks[callback].callback(result == 'true' ? true : false)
      @data.callbacks.delete(callback)
    rescue
      puts "Invalid message over websocket"
    end
  end

  def create
    @data.unserialize_notifications!(:cre,@key)
    @data.notify('properties/handlers/change', :instance => @data.instance)
  end
  def delete
    @data.unserialize_notifications!(:del,@key)
    @data.notify('properties/handlers/change', :instance => @data.instance)
  end
  def update
    @data.unserialize_notifications!(:upd,@key)
    @data.notify('properties/handlers/change', :instance => @data.instance)
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
cpee-1.3.175 lib/cpee/handler_notifications.rb
cpee-1.3.174 lib/cpee/handler_notifications.rb
cpee-1.3.173 lib/cpee/handler_notifications.rb
cpee-1.3.172 lib/cpee/handler_notifications.rb
cpee-1.3.171 lib/cpee/handler_notifications.rb
cpee-1.3.170 lib/cpee/handler_notifications.rb
cpee-1.3.169 lib/cpee/handler_notifications.rb
cpee-1.3.167 lib/cpee/handler_notifications.rb
cpee-1.3.166 lib/cpee/handler_notifications.rb
cpee-1.3.164 lib/cpee/handler_notifications.rb
cpee-1.3.163 lib/cpee/handler_notifications.rb
cpee-1.3.162 lib/cpee/handler_notifications.rb
cpee-1.3.161 lib/cpee/handler_notifications.rb
cpee-1.3.160 lib/cpee/handler_notifications.rb
cpee-1.3.159 lib/cpee/handler_notifications.rb
cpee-1.3.158 lib/cpee/handler_notifications.rb
cpee-1.3.157 lib/cpee/handler_notifications.rb
cpee-1.3.156 lib/cpee/handler_notifications.rb
cpee-1.3.155 lib/cpee/handler_notifications.rb
cpee-1.3.154 lib/cpee/handler_notifications.rb