###############################################################################
##
##  Copyright (C) 2014 Tavendo GmbH
##
##  Licensed under the Apache License, Version 2.0 (the "License");
##  you may not use this file except in compliance with the License.
##  You may obtain a copy of the License at
##
##      http://www.apache.org/licenses/LICENSE-2.0
##
##  Unless required by applicable law or agreed to in writing, software
##  distributed under the License is distributed on an "AS IS" BASIS,
##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
##  See the License for the specific language governing permissions and
##  limitations under the License.
##
###############################################################################

from twisted.internet.defer import returnValue
from autobahn.twisted.wamp import Application


app = Application('com.example')


@app.register()
def add2(a, b):
   print("add2() called")
   return a + b


@app.register('com.example.hello')
def hello():
   print("hello() called")
   res = yield app.session.call('com.example.add2', 2, 3)
   returnValue("Hello {}".format(res))


@app.signal('onjoined')
def onjoined():
   print("realm joined!")


if __name__ == "__main__":
   app.run("ws://localhost:8080/ws", "realm1", standalone = True)
