Packages

o

com.avsystem.commons.rpc.akka

AkkaRPCFramework

object AkkaRPCFramework extends GetterRPCFramework with ProcedureRPCFramework with FunctionRPCFramework with MonixRPCFramework

RPC Framework implemented with Akka as transportation layer.

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AkkaRPCFramework
  2. MonixRPCFramework
  3. FunctionRPCFramework
  4. ProcedureRPCFramework
  5. GetterRPCFramework
  6. RPCFramework
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. trait FunctionRawRPC extends AnyRef
    Definition Classes
    FunctionRPCFramework
  2. case class FunctionSignature[T](name: String, paramMetadata: List[FunctionRPCFramework.ParamMetadata[_]], annotations: List[MetadataAnnotation], resultTypeMetadata: FunctionRPCFramework.ResultTypeMetadata[T]) extends Signature with TypedMetadata[commons.Future[T]] with Product with Serializable
    Definition Classes
    FunctionRPCFramework
  3. trait GetterRawRPC extends AnyRef
    Definition Classes
    GetterRPCFramework
  4. case class GetterSignature[T](name: String, paramMetadata: List[GetterRPCFramework.ParamMetadata[_]], annotations: List[MetadataAnnotation], resultMetadata: RpcMetadataCompanion.Lazy[T]) extends Signature with TypedMetadata[T] with Product with Serializable
    Definition Classes
    GetterRPCFramework
  5. trait ProcedureRawRPC extends AnyRef
    Definition Classes
    ProcedureRPCFramework
  6. case class ProcedureSignature(name: String, paramMetadata: List[ProcedureRPCFramework.ParamMetadata[_]], annotations: List[MetadataAnnotation]) extends Signature with TypedMetadata[Unit] with Product with Serializable
    Definition Classes
    ProcedureRPCFramework
  7. trait BaseFullRPCInfo[RealRPC] extends AnyRef

    Base trait for traits or classes "implementing" FullRPCInfo in various RPC frameworks.

    Base trait for traits or classes "implementing" FullRPCInfo in various RPC frameworks. Having a separate subtrait/subclass for every framework is beneficial for ScalaJS DCE.

    Definition Classes
    RPCFramework
  8. trait BaseRawRpcCompanion extends RawRpcCompanion[RawRPC]
    Definition Classes
    RPCFramework
  9. case class ParamMetadata[T](name: String, annotations: List[MetadataAnnotation], typeMetadata: ParamTypeMetadata[T]) extends TypedMetadata[T] with Product with Serializable
    Definition Classes
    RPCFramework
  10. abstract class RPCCompanion[RealRPC] extends AnyRef

    Convenience abstract class for companion objects of RPC interfaces.

    Convenience abstract class for companion objects of RPC interfaces. Makes sure all three RPC type classes (AsRawRPC, AsRealRPC and RPCMetadata) are macro-materialized for that RPC interface and confines macro materialization to the same compilation unit where the RPC interface is defined. This is a good practice to avoid incremental compilation problems and duplication of macro-generated code in various callsites. In order to be able to use RPCCompanion, the RPC framework must define FullRPCInfo as a trait or class. Additionally, some special wizardry has been employed to make sure that when an RPC interface is a part of shared (cross-compiled) code of a ScalaJS application then ScalaJS optimizer can remove unused instances of macro generated typeclasses.

    Definition Classes
    RPCFramework
    Example:
    1. object SomeRPCFramework extends StandardRPCFramework { ... }
      @RPC trait SomeRPC {
        def doSomething(str: String): Unit
        def callSomething(int: Int): Future[String]
      }
      object SomeRPC extends SomeRPCFramework.RPCCompanion[SomeRPC]
  11. case class RawInvocation(rpcName: String, args: List[RawValue]) extends Product with Serializable
    Definition Classes
    RPCFramework
  12. trait Signature extends AnyRef
    Definition Classes
    RPCFramework
  13. type AsRawRPC[RealRPC] = AsRaw[RawRPC, RealRPC]
    Definition Classes
    RPCFramework
  14. type AsRawRealRPC[RealRPC] = AsRawReal[RawRPC, RealRPC]
    Definition Classes
    RPCFramework
  15. type AsRealRPC[RealRPC] = AsReal[RawRPC, RealRPC]
    Definition Classes
    RPCFramework
  16. abstract class FullRPCInfo[T] extends BaseFullRPCInfo[T]
  17. case class ObserveSignature[T](name: String, paramMetadata: List[AkkaRPCFramework.ParamMetadata[_]], annotations: List[MetadataAnnotation], resultTypeMetadata: ResultTypeMetadata[T]) extends Signature with TypedMetadata[Observable[T]] with Product with Serializable
  18. type ParamTypeMetadata[T] = DummyImplicit
    Definition Classes
    AkkaRPCFrameworkRPCFramework
  19. case class RPCMetadata[T](name: String, annotations: List[MetadataAnnotation], procedureSignatures: Map[String, AkkaRPCFramework.ProcedureSignature], functionSignatures: Map[String, AkkaRPCFramework.FunctionSignature[_]], observeSignatures: Map[String, ObserveSignature[_]], getterSignatures: Map[String, AkkaRPCFramework.GetterSignature[_]]) extends Product with Serializable
  20. trait RawRPC extends GetterRawRPC with ProcedureRawRPC with FunctionRawRPC with MonixRawRPC
  21. type RawValue = ByteString
    Definition Classes
    AkkaRPCFrameworkRPCFramework
  22. type Reader[T] = GenCodec[T]
    Definition Classes
    AkkaRPCFrameworkRPCFramework
  23. type ResultTypeMetadata[T] = DummyImplicit
    Definition Classes
    AkkaRPCFrameworkRPCFramework
  24. type Writer[T] = GenCodec[T]
    Definition Classes
    AkkaRPCFrameworkRPCFramework
  25. trait MonixRawRPC extends AnyRef
    Definition Classes
    MonixRPCFramework

Value Members

  1. object AsRawRPC
    Definition Classes
    RPCFramework
  2. object AsRawRealRPC
    Definition Classes
    RPCFramework
  3. object AsRealRPC
    Definition Classes
    RPCFramework
  4. object RawInvocation extends Serializable
    Definition Classes
    RPCFramework
  5. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def ##(): Int
    Definition Classes
    AnyRef → Any
  7. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. def client[T](config: AkkaRPCClientConfig)(implicit system: ActorSystem, asRealRPC: AsRealRPC[T]): T

    Returns client RPC of type T.

    Returns client RPC of type T. Each method call on returned object will make a remote call.

  10. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. macro def materializeAsRaw[T]: AsRawRPC[T]

    Materializes a factory of implementations of RawRPC which translate invocations of its raw methods to invocations of actual methods on rpcImpl.

    Materializes a factory of implementations of RawRPC which translate invocations of its raw methods to invocations of actual methods on rpcImpl. Method arguments and results are serialized and deserialized from/to RawValue using Reader and Writer typeclasses.

    Definition Classes
    RPCFramework
  18. macro def materializeAsRawReal[T]: AsRawRealRPC[T]
    Definition Classes
    RPCFramework
  19. macro def materializeAsReal[T]: AsRealRPC[T]

    Materializes a factory of implementations of T which are proxies that implement all abstract methods of T by forwarding them to rawRpc.

    Materializes a factory of implementations of T which are proxies that implement all abstract methods of T by forwarding them to rawRpc. Method arguments and results are serialized and deserialized from/to RawValue using Reader and Writer typeclasses.

    Definition Classes
    RPCFramework
  20. implicit macro def materializeFullInfo[T]: FullRPCInfo[T]
    Definition Classes
    RPCFramework
  21. macro def materializeMetadata[RealRPC]: RPCMetadata[RealRPC]
    Definition Classes
    RPCFramework
  22. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  23. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  24. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  25. def read[T](raw: RawValue)(implicit arg0: Reader[T]): T
    Definition Classes
    AkkaRPCFrameworkRPCFramework
  26. implicit def readerBasedAsReal[T](implicit arg0: Reader[T]): AsReal[RawValue, T]
    Definition Classes
    RPCFramework
  27. implicit def readerBasedFutureAsReal[T](implicit arg0: Reader[T]): AsReal[commons.Future[RawValue], commons.Future[T]]
    Definition Classes
    FunctionRPCFramework
  28. implicit def readerBasedObservableAsReal[T](implicit arg0: Reader[T]): AsReal[Observable[RawValue], Observable[T]]
    Definition Classes
    MonixRPCFramework
  29. def serverActor[T](rpc: T, config: AkkaRPCServerConfig = AkkaRPCServerConfig.default)(implicit system: ActorSystem, asRawRpc: AsRawRPC[T]): ActorRef

    Creates server actor which listens for incoming requests.

    Creates server actor which listens for incoming requests.

    To stop server from listening, kill an actor returned from the method.

    T

    type of RPC

    rpc

    actual implementation of T RPC

    config

    contains configuration on created actor name, timeouts etc.

  30. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  31. def toString(): String
    Definition Classes
    AnyRef → Any
  32. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  35. def write[T](value: T)(implicit arg0: Writer[T]): RawValue
    Definition Classes
    AkkaRPCFrameworkRPCFramework
  36. implicit def writerBasedAsRaw[T](implicit arg0: Writer[T]): AsRaw[RawValue, T]
    Definition Classes
    RPCFramework
  37. implicit def writerBasedFutureAsRaw[T](implicit arg0: Writer[T]): AsRaw[commons.Future[RawValue], commons.Future[T]]
    Definition Classes
    FunctionRPCFramework
  38. implicit def writerBasedObservableAsRaw[T](implicit arg0: Writer[T]): AsRaw[Observable[RawValue], Observable[T]]
    Definition Classes
    MonixRPCFramework
  39. object RPCMetadata extends RpcMetadataCompanion[RPCMetadata] with Serializable
    Definition Classes
    AkkaRPCFrameworkRPCFramework
  40. object RawRPC extends BaseRawRpcCompanion
    Definition Classes
    AkkaRPCFrameworkRPCFramework

Inherited from MonixRPCFramework

Inherited from FunctionRPCFramework

Inherited from ProcedureRPCFramework

Inherited from GetterRPCFramework

Inherited from RPCFramework

Inherited from AnyRef

Inherited from Any

Ungrouped