
com.avsystem.commons.rpc.RPC.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of commons-annotations_2.12.0-RC1 Show documentation
Show all versions of commons-annotations_2.12.0-RC1 Show documentation
AVSystem commons library for Scala
The newest version!
package com.avsystem.commons
package rpc
import scala.annotation.StaticAnnotation
/**
* Marker annotation for all RPC interfaces. Must be applied on every trait/class representing an RPC interface.
*
* An RPC interface is a trait or class whose abstract methods will be interpreted as remote methods by the
* RPC framework. Remote methods must be defined according to following rules:
*
* - types of arguments must be serializable by uPickle library
* - return type must be either `Unit`, `Future[T]` where `T` is a type serializable by uPickle library or
* another RPC interface
* - method must not have type parameters
*
* RPC interfaces may also have non-abstract members - these will be invoked locally. However, they may invoke
* remote members in their implementations.
*/
class RPC extends StaticAnnotation
© 2015 - 2025 Weber Informatics LLC | Privacy Policy