Packages

o

com.avsystem.commons.jetty.rpc

JettyRPCFramework

object JettyRPCFramework extends StandardRPCFramework with LazyLogging

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

Type Members

  1. type AsRawRPC[RealRPC] = AsRaw[RawRPC, RealRPC]
    Definition Classes
    RPCFramework
  2. type AsRawRealRPC[RealRPC] = AsRawReal[RawRPC, RealRPC]
    Definition Classes
    RPCFramework
  3. type AsRealRPC[RealRPC] = AsReal[RawRPC, RealRPC]
    Definition Classes
    RPCFramework
  4. case class Call(chain: List[JettyRPCFramework.RawInvocation], leaf: JettyRPCFramework.RawInvocation) extends Product with Serializable
  5. type ParamTypeMetadata[T] = scala.reflect.ClassTag[T]
    Definition Classes
    JettyRPCFrameworkRPCFramework
  6. class RPCClient extends AnyRef
  7. class RPCHandler extends AbstractHandler
  8. final class RawValue extends AnyVal
  9. type Reader[T] = GenCodec[T]
    Definition Classes
    JettyRPCFrameworkRPCFramework
  10. type ResultTypeMetadata[T] = DummyImplicit
    Definition Classes
    JettyRPCFrameworkRPCFramework
  11. type Writer[T] = GenCodec[T]
    Definition Classes
    JettyRPCFrameworkRPCFramework
  12. trait FunctionRawRPC extends AnyRef
    Definition Classes
    FunctionRPCFramework
  13. 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
  14. trait GetterRawRPC extends AnyRef
    Definition Classes
    GetterRPCFramework
  15. 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
  16. trait ProcedureRawRPC extends AnyRef
    Definition Classes
    ProcedureRPCFramework
  17. case class ProcedureSignature(name: String, paramMetadata: List[ProcedureRPCFramework.ParamMetadata[_]], annotations: List[MetadataAnnotation]) extends Signature with TypedMetadata[Unit] with Product with Serializable
    Definition Classes
    ProcedureRPCFramework
  18. 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
  19. trait BaseRawRpcCompanion extends RawRpcCompanion[RawRPC]
    Definition Classes
    RPCFramework
  20. case class ParamMetadata[T](name: String, annotations: List[MetadataAnnotation], typeMetadata: ParamTypeMetadata[T]) extends TypedMetadata[T] with Product with Serializable
    Definition Classes
    RPCFramework
  21. 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]
  22. case class RawInvocation(rpcName: String, args: List[RawValue]) extends Product with Serializable
    Definition Classes
    RPCFramework
  23. trait Signature extends AnyRef
    Definition Classes
    RPCFramework
  24. trait FullRPCInfo[T] extends BaseFullRPCInfo[T]
    Definition Classes
    StandardRPCFramework
  25. 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
    Definition Classes
    StandardRPCFramework
  26. trait RawRPC extends GetterRawRPC with FunctionRawRPC with ProcedureRawRPC
    Definition Classes
    StandardRPCFramework

Value Members

  1. 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
  2. macro def materializeAsRawReal[T]: AsRawRealRPC[T]
    Definition Classes
    RPCFramework
  3. 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
  4. implicit macro def materializeFullInfo[T]: FullRPCInfo[T]
    Definition Classes
    RPCFramework
  5. macro def materializeMetadata[RealRPC]: RPCMetadata[RealRPC]
    Definition Classes
    RPCFramework
  6. def newClient[T](httpClient: HttpClient, uri: String, maxResponseLength: Int = 2 * 1024 * 1024)(implicit asRealRPC: AsRealRPC[T]): T
  7. def newHandler[T](impl: T, contextTimeout: FiniteDuration = 30.seconds)(implicit asRawRPC: AsRawRPC[T]): Handler
  8. def read[T](raw: RawValue)(implicit arg0: Reader[T]): T
    Definition Classes
    JettyRPCFrameworkRPCFramework
  9. implicit def readerBasedAsReal[T](implicit arg0: Reader[T]): AsReal[RawValue, T]
    Definition Classes
    RPCFramework
  10. implicit def readerBasedFutureAsReal[T](implicit arg0: Reader[T]): AsReal[commons.Future[RawValue], commons.Future[T]]
    Definition Classes
    FunctionRPCFramework
  11. def write[T](value: T)(implicit arg0: Writer[T]): RawValue
    Definition Classes
    JettyRPCFrameworkRPCFramework
  12. implicit def writerBasedAsRaw[T](implicit arg0: Writer[T]): AsRaw[RawValue, T]
    Definition Classes
    RPCFramework
  13. implicit def writerBasedFutureAsRaw[T](implicit arg0: Writer[T]): AsRaw[commons.Future[RawValue], commons.Future[T]]
    Definition Classes
    FunctionRPCFramework
  14. object Call extends HasGenCodec[Call] with Serializable
  15. object AsRawRPC
    Definition Classes
    RPCFramework
  16. object AsRawRealRPC
    Definition Classes
    RPCFramework
  17. object AsRealRPC
    Definition Classes
    RPCFramework
  18. object RawInvocation extends Serializable
    Definition Classes
    RPCFramework
  19. object RPCMetadata extends RpcMetadataCompanion[RPCMetadata] with Serializable
    Definition Classes
    StandardRPCFrameworkRPCFramework
  20. object RawRPC extends BaseRawRpcCompanion
    Definition Classes
    StandardRPCFrameworkRPCFramework