Trait

com.avsystem.commons.rpc

StandardRPCFramework

Related Doc: package rpc

Permalink

trait StandardRPCFramework extends GetterRPCFramework with FunctionRPCFramework with ProcedureRPCFramework

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

Type Members

  1. type AsRawRPC[RealRPC] = AsRaw[RawRPC, RealRPC]

    Permalink
    Definition Classes
    RPCFramework
  2. type AsRawRealRPC[RealRPC] = AsRawReal[RawRPC, RealRPC]

    Permalink
    Definition Classes
    RPCFramework
  3. type AsRealRPC[RealRPC] = AsReal[RawRPC, RealRPC]

    Permalink
    Definition Classes
    RPCFramework
  4. trait BaseFullRPCInfo[RealRPC] extends AnyRef

    Permalink

    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
  5. trait BaseRawRpcCompanion extends RawRpcCompanion[RawRPC]

    Permalink
    Definition Classes
    RPCFramework
  6. trait FullRPCInfo[T] extends BaseFullRPCInfo[T]

    Permalink
  7. trait FunctionRawRPC extends AnyRef

    Permalink
    Definition Classes
    FunctionRPCFramework
  8. 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

    Permalink
    Definition Classes
    FunctionRPCFramework
  9. trait GetterRawRPC extends AnyRef

    Permalink
    Definition Classes
    GetterRPCFramework
  10. 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

    Permalink
    Definition Classes
    GetterRPCFramework
  11. case class ParamMetadata[T](name: String, annotations: List[MetadataAnnotation], typeMetadata: ParamTypeMetadata[T]) extends TypedMetadata[T] with Product with Serializable

    Permalink
    Definition Classes
    RPCFramework
  12. abstract type ParamTypeMetadata[T]

    Permalink
    Definition Classes
    RPCFramework
  13. trait ProcedureRawRPC extends AnyRef

    Permalink
    Definition Classes
    ProcedureRPCFramework
  14. case class ProcedureSignature(name: String, paramMetadata: List[ProcedureRPCFramework.ParamMetadata[_]], annotations: List[MetadataAnnotation]) extends Signature with TypedMetadata[Unit] with Product with Serializable

    Permalink
    Definition Classes
    ProcedureRPCFramework
  15. abstract class RPCCompanion[RealRPC] extends AnyRef

    Permalink

    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]
  16. case class RPCMetadata[T](name: String, annotations: List[MetadataAnnotation], procedureSignatures: Map[String, StandardRPCFramework.ProcedureSignature], functionSignatures: Map[String, StandardRPCFramework.FunctionSignature[_]], getterSignatures: Map[String, StandardRPCFramework.GetterSignature[_]]) extends Product with Serializable

    Permalink
  17. case class RawInvocation(rpcName: String, args: List[RawValue]) extends Product with Serializable

    Permalink
    Definition Classes
    RPCFramework
  18. trait RawRPC extends GetterRawRPC with FunctionRawRPC with ProcedureRawRPC

    Permalink
  19. abstract type RawValue

    Permalink
    Definition Classes
    RPCFramework
  20. abstract type Reader[T]

    Permalink
    Definition Classes
    RPCFramework
  21. abstract type ResultTypeMetadata[T]

    Permalink
    Definition Classes
    RPCFramework
  22. trait Signature extends AnyRef

    Permalink
    Definition Classes
    RPCFramework
  23. abstract type Writer[T]

    Permalink
    Definition Classes
    RPCFramework

Abstract Value Members

  1. abstract def read[T](raw: RawValue)(implicit arg0: Reader[T]): T

    Permalink
    Definition Classes
    RPCFramework
  2. abstract def write[T](value: T)(implicit arg0: Writer[T]): RawValue

    Permalink
    Definition Classes
    RPCFramework

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object AsRawRPC

    Permalink
    Definition Classes
    RPCFramework
  5. object AsRawRealRPC

    Permalink
    Definition Classes
    RPCFramework
  6. object AsRealRPC

    Permalink
    Definition Classes
    RPCFramework
  7. object RPCMetadata extends RpcMetadataCompanion[RPCMetadata] with Serializable

    Permalink
    Definition Classes
    StandardRPCFrameworkRPCFramework
  8. object RawInvocation extends Serializable

    Permalink
    Definition Classes
    RPCFramework
  9. object RawRPC extends BaseRawRpcCompanion

    Permalink
    Definition Classes
    StandardRPCFrameworkRPCFramework
  10. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  14. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  16. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  18. macro def materializeAsRaw[T]: AsRawRPC[T]

    Permalink

    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
  19. macro def materializeAsRawReal[T]: AsRawRealRPC[T]

    Permalink
    Definition Classes
    RPCFramework
  20. macro def materializeAsReal[T]: AsRealRPC[T]

    Permalink

    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
  21. implicit macro def materializeFullInfo[T]: FullRPCInfo[T]

    Permalink
    Definition Classes
    RPCFramework
  22. macro def materializeMetadata[RealRPC]: RPCMetadata[RealRPC]

    Permalink
    Definition Classes
    RPCFramework
  23. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  24. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  25. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  26. implicit def readerBasedAsReal[T](implicit arg0: Reader[T]): AsReal[RawValue, T]

    Permalink
    Definition Classes
    RPCFramework
  27. implicit def readerBasedFutureAsReal[T](implicit arg0: Reader[T]): AsReal[commons.Future[RawValue], commons.Future[T]]

    Permalink
    Definition Classes
    FunctionRPCFramework
  28. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  29. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  30. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  31. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. implicit def writerBasedAsRaw[T](implicit arg0: Writer[T]): AsRaw[RawValue, T]

    Permalink
    Definition Classes
    RPCFramework
  34. implicit def writerBasedFutureAsRaw[T](implicit arg0: Writer[T]): AsRaw[commons.Future[RawValue], commons.Future[T]]

    Permalink
    Definition Classes
    FunctionRPCFramework

Inherited from ProcedureRPCFramework

Inherited from FunctionRPCFramework

Inherited from GetterRPCFramework

Inherited from RPCFramework

Inherited from AnyRef

Inherited from Any

Ungrouped