Class

com.twitter.inject.thrift.modules

ThriftClientModule

Related Doc: package modules

Permalink

abstract class ThriftClientModule[ThriftService] extends TwitterModule with ThriftClientModuleTrait

A TwitterModule allows users to configure a Finagle ThriftMux client and does NOT provide ability to filter or configure per-method Scrooge-generated interfaces. The client interface can be expressed as a MethodPerEndpoint or higher-kinded interface.

Provides bindings for a Scrooge-generated MethodPerEndpoint or higher-kinded interface.

See the ThriftMethodBuilderClientModule for building a ThriftMux client that allows for filtering and configuration per-method of the Scrooge-generated interface.

ThriftService

A Scrooge-generated MethodPerEndpoint or the higher-kinded type of the Scrooge-generated service, e.g., MyService[Future].

Note

This TwitterModule expects a com.twitter.finagle.thrift.ClientId to be bound to the object graph but does not assume how it is done. A com.twitter.finagle.thrift.ClientId can be bound by including the ThriftClientIdModule in your server configuration.

See also

What is ThriftMux?

Finagle Clients

String, label: String)

Linear Supertypes
ThriftClientModuleTrait, StackClientModuleTrait[ThriftClientRequest, Array[Byte], Client], TwitterModule, TwitterBaseModule, TwitterModuleLifecycle, Logging, util.logging.Logging, TwitterModuleFlags, AbstractModule, Module, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ThriftClientModule
  2. ThriftClientModuleTrait
  3. StackClientModuleTrait
  4. TwitterModule
  5. TwitterBaseModule
  6. TwitterModuleLifecycle
  7. Logging
  8. Logging
  9. TwitterModuleFlags
  10. AbstractModule
  11. Module
  12. AnyRef
  13. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ThriftClientModule()(implicit arg0: ClassTag[ThriftService])

    Permalink

Abstract Value Members

  1. abstract def dest: String

    Permalink
    Definition Classes
    StackClientModuleTrait
  2. abstract def label: String

    Permalink
    Definition Classes
    StackClientModuleTrait

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. def addError(arg0: Message): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  5. def addError(arg0: Throwable): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  6. def addError(arg0: String, arg1: <repeated...>[AnyRef]): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  7. def addTypeConverter[T](converter: TypeConverter)(implicit arg0: Manifest[T]): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  8. def asClosable(client: Client): Closable

    Permalink
    Attributes
    protected
    Definition Classes
    ThriftClientModuleTrait → StackClientModuleTrait
  9. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  10. final def baseClient: Client

    Permalink
    Attributes
    protected
    Definition Classes
    ThriftClientModuleTrait → StackClientModuleTrait
  11. def bind[T](annotation: Annotation)(implicit arg0: Manifest[T]): ScalaAnnotatedBindingBuilder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  12. def bind[T, A <: Annotation](implicit arg0: Manifest[T], arg1: Manifest[A]): ScalaAnnotatedBindingBuilder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  13. def bind[T](implicit arg0: Manifest[T]): ScalaAnnotatedBindingBuilder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  14. def bind[T](arg0: Class[T]): AnnotatedBindingBuilder[T]

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  15. def bind[T](arg0: TypeLiteral[T]): AnnotatedBindingBuilder[T]

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  16. def bind[T](arg0: Key[T]): LinkedBindingBuilder[T]

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  17. def bindAssistedFactory[T]()(implicit arg0: Manifest[T]): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  18. def bindConstant(): AnnotatedConstantBindingBuilder

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  19. def bindInterceptor(arg0: Matcher[_ >: Class[_]], arg1: Matcher[_ >: Method], arg2: <repeated...>[MethodInterceptor]): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  20. def bindListener(arg0: Matcher[_ >: Binding[_]], arg1: <repeated...>[ProvisionListener]): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  21. def bindListener(arg0: Matcher[_ >: TypeLiteral[_]], arg1: TypeListener): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  22. def bindMultiple[T](annotation: Annotation)(implicit arg0: Manifest[T]): ScalaMultibinder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  23. def bindMultiple[T, A <: Annotation](implicit arg0: Manifest[T], arg1: Manifest[A]): ScalaMultibinder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  24. def bindMultiple[T](implicit arg0: Manifest[T]): ScalaMultibinder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  25. def bindOption[T](annotation: Annotation)(implicit arg0: Manifest[T]): ScalaOptionBinder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  26. def bindOption[T, A <: Annotation](implicit arg0: Manifest[T], arg1: Manifest[A]): ScalaOptionBinder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  27. def bindOption[T](implicit arg0: Manifest[T]): ScalaOptionBinder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  28. def bindScope[T <: Annotation](scope: Scope)(implicit arg0: Manifest[T]): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    TwitterModule
  29. def bindScope(arg0: Class[_ <: Annotation], arg1: Scope): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  30. def bindSingleton[T](annotation: Annotation)(implicit arg0: Manifest[T]): ScalaAnnotatedBindingBuilder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  31. def bindSingleton[T, A <: Annotation](implicit arg0: Manifest[T], arg1: Manifest[A]): ScalaAnnotatedBindingBuilder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  32. def bindSingleton[T](implicit arg0: Manifest[T]): ScalaAnnotatedBindingBuilder[T]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
  33. def binder(): Binder

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  34. def clientId(injector: Injector): ClientId

    Permalink

    Override to supply a custom ClientId, e.g., override protected def clientId(injector: Injector): ClientId = ClientId("myclient") }}}

    Override to supply a custom ClientId, e.g., override protected def clientId(injector: Injector): ClientId = ClientId("myclient") }}}

    Attributes
    protected
    Definition Classes
    ThriftClientModuleTrait
    Note

    The default requires a ClientId be bound to the injector, for example via a ThriftClientIdModule.

  35. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  36. def closeOnExit(f: ⇒ Unit): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModuleLifecycle
  37. def configure(): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule → AbstractModule
  38. final def configure(arg0: Binder): Unit

    Permalink
    Definition Classes
    AbstractModule → Module
  39. final def configureClient(injector: Injector, client: Client): Client

    Permalink
    Attributes
    protected
    Definition Classes
    ThriftClientModuleTrait → StackClientModuleTrait
  40. def configureThriftMuxClient(injector: Injector, client: Client): Client

    Permalink

    This method allows for further configuration of the ThriftMux client for parameters not exposed by this module or for overriding defaults provided herein, e.g.,

    This method allows for further configuration of the ThriftMux client for parameters not exposed by this module or for overriding defaults provided herein, e.g.,

    override def configureThriftMuxClient(client: ThriftMux.Client): ThriftMux.Client = {
      client
        .withProtocolFactory(myCustomProtocolFactory))
        .withStatsReceiver(someOtherScopedStatsReceiver)
        .withMonitor(myAwesomeMonitor)
        .withTracer(notTheDefaultTracer)
        .withResponseClassifier(ThriftResponseClassifier.ThriftExceptionsAsFailures)
    }
    injector

    the com.twitter.inject.Injector which can be used to help configure the given com.twitter.finagle.ThriftMux.Client.

    client

    the com.twitter.finagle.ThriftMux.Client to configure.

    returns

    a configured ThriftMux.Client.

    Attributes
    protected
    Definition Classes
    ThriftClientModuleTrait
  41. def convertToTypes(arg0: Matcher[_ >: TypeLiteral[_]], arg1: TypeConverter): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  42. final def createFlag[T](name: String, default: T, help: String, flaggable: Flaggable[T]): Flag[T]

    Permalink
    Definition Classes
    TwitterModuleFlags
  43. final def createMandatoryFlag[T](name: String, help: String, usage: String, flaggable: Flaggable[T]): Flag[T]

    Permalink
    Definition Classes
    TwitterModuleFlags
  44. def currentStage(): Stage

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  45. def debug(marker: Marker, message: ⇒ Any, cause: Throwable): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  46. def debug(message: ⇒ Any, cause: Throwable): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  47. def debug(marker: Marker, message: ⇒ Any): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  48. def debug(message: ⇒ Any): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  49. def debugFutureResult[T](msg: String)(func: ⇒ Future[T]): Future[T]

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  50. def debugResult[T](message: ⇒ String)(fn: ⇒ T): T

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  51. def defaultClosableAwaitPeriod: Duration

    Permalink
    Attributes
    protected
    Definition Classes
    StackClientModuleTrait
  52. def defaultClosableGracePeriod: Duration

    Permalink
    Attributes
    protected
    Definition Classes
    StackClientModuleTrait
  53. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  55. def error(marker: Marker, message: ⇒ Any, cause: Throwable): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  56. def error(message: ⇒ Any, cause: Throwable): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  57. def error(marker: Marker, message: ⇒ Any): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  58. def error(message: ⇒ Any): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  59. def errorResult[T](message: ⇒ String)(fn: ⇒ T): T

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  60. def failfastOnFlagsNotParsed: Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    TwitterModuleFlags
  61. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  62. final def flag[T](name: String, help: String)(implicit arg0: Flaggable[T], arg1: Manifest[T]): Flag[T]

    Permalink
    Definition Classes
    TwitterModuleFlags
  63. final def flag[T](name: String, default: T, help: String)(implicit arg0: Flaggable[T]): Flag[T]

    Permalink
    Definition Classes
    TwitterModuleFlags
  64. val flags: ArrayBuffer[Flag[_]]

    Permalink
    Attributes
    protected[com.twitter.inject]
    Definition Classes
    TwitterModuleFlags
  65. def frameworkConfigureClient(injector: Injector, client: Client): Client

    Permalink
    Attributes
    protected[com.twitter]
    Definition Classes
    ThriftClientModuleTrait → StackClientModuleTrait
  66. def frameworkModules: Seq[Module]

    Permalink
    Attributes
    protected[com.twitter.inject]
    Definition Classes
    TwitterBaseModule
  67. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  68. def getMembersInjector[T](implicit arg0: Manifest[T]): MembersInjector[T]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    TwitterModule
    Annotations
    @throws( ... )
  69. def getMembersInjector[T](arg0: TypeLiteral[T]): MembersInjector[T]

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  70. def getMembersInjector[T](arg0: Class[T]): MembersInjector[T]

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  71. def getProvider[T](implicit arg0: Manifest[T]): Provider[T]

    Permalink
    Attributes
    protected[this]
    Definition Classes
    TwitterModule
    Annotations
    @throws( ... )
  72. def getProvider[T](arg0: Class[T]): Provider[T]

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  73. def getProvider[T](arg0: Key[T]): Provider[T]

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  74. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  75. def info(marker: Marker, message: ⇒ Any, cause: Throwable): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  76. def info(message: ⇒ Any, cause: Throwable): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  77. def info(marker: Marker, message: ⇒ Any): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  78. def info(message: ⇒ Any): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  79. def infoResult[T](message: ⇒ String)(fn: ⇒ T): T

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  80. final def initialClientConfiguration(injector: Injector, client: Client, statsReceiver: StatsReceiver): Client

    Permalink
    Attributes
    protected
    Definition Classes
    ThriftClientModule → ThriftClientModuleTrait → StackClientModuleTrait
  81. def install(module: Module): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule → AbstractModule
    Annotations
    @throws( ... )
  82. def isDebugEnabled(marker: Marker): Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  83. def isDebugEnabled: Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  84. def isErrorEnabled(marker: Marker): Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  85. def isErrorEnabled: Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  86. def isInfoEnabled(marker: Marker): Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  87. def isInfoEnabled: Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  88. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  89. def isTraceEnabled(marker: Marker): Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  90. def isTraceEnabled: Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  91. def isWarnEnabled(marker: Marker): Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  92. def isWarnEnabled: Boolean

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  93. def javaModules: Collection[Module]

    Permalink
    Attributes
    protected[com.twitter.inject]
    Definition Classes
    TwitterBaseModule
  94. final def logger: Logger

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  95. final def loggerName: String

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  96. def modules: Seq[Module]

    Permalink
    Attributes
    protected[com.twitter.inject]
    Definition Classes
    TwitterBaseModule
  97. def monitor: Monitor

    Permalink
    Attributes
    protected
    Definition Classes
    StackClientModuleTrait
  98. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  99. final def newClient(injector: Injector, statsReceiver: StatsReceiver): Client

    Permalink
    Attributes
    protected
    Definition Classes
    ThriftClientModuleTrait → StackClientModuleTrait
  100. final def newService(injector: Injector, statsReceiver: StatsReceiver): Service[ThriftClientRequest, Array[Byte]]

    Permalink
    Attributes
    protected
    Definition Classes
    StackClientModuleTrait
  101. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  103. final def providesThriftClient(injector: Injector, clientId: ClientId, statsReceiver: StatsReceiver): ThriftService

    Permalink
    Annotations
    @Singleton() @Provides()
  104. def requestInjection(arg0: Any): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  105. def requestStaticInjection[T]()(implicit arg0: Manifest[T]): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    TwitterModule
  106. def requestStaticInjection(arg0: <repeated...>[Class[_]]): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  107. def requestTimeout: Duration

    Permalink
    Attributes
    protected
    Definition Classes
    StackClientModuleTrait
  108. def requireBinding(arg0: Class[_]): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  109. def requireBinding(arg0: Key[_]): Unit

    Permalink
    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  110. def retryBudget: RetryBudget

    Permalink
    Attributes
    protected
    Definition Classes
    StackClientModuleTrait
  111. final def scopeStatsReceiver(injector: Injector, statsReceiver: StatsReceiver): StatsReceiver

    Permalink
    Attributes
    protected
    Definition Classes
    ThriftClientModule → StackClientModuleTrait
  112. def sessionAcquisitionTimeout: Duration

    Permalink
    Attributes
    protected
    Definition Classes
    StackClientModuleTrait
  113. def singletonPostWarmupComplete(injector: Injector): Unit

    Permalink
    Attributes
    protected[com.twitter.inject]
    Definition Classes
    TwitterModuleLifecycle
  114. def singletonShutdown(injector: Injector): Unit

    Permalink
    Attributes
    protected[com.twitter.inject]
    Definition Classes
    TwitterModuleLifecycle
  115. def singletonStartup(injector: Injector): Unit

    Permalink
    Attributes
    protected[com.twitter.inject]
    Definition Classes
    TwitterModuleLifecycle
  116. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  117. def time[T](formatStr: String)(func: ⇒ T): T

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  118. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  119. def trace(marker: Marker, message: ⇒ Any, cause: Throwable): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  120. def trace(message: ⇒ Any, cause: Throwable): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  121. def trace(marker: Marker, message: ⇒ Any): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  122. def trace(message: ⇒ Any): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  123. def traceResult[T](message: ⇒ String)(fn: ⇒ T): T

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  124. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  127. def warn(marker: Marker, message: ⇒ Any, cause: Throwable): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  128. def warn(message: ⇒ Any, cause: Throwable): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  129. def warn(marker: Marker, message: ⇒ Any): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  130. def warn(message: ⇒ Any): Unit

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging
  131. def warnResult[T](message: ⇒ String)(fn: ⇒ T): T

    Permalink
    Attributes
    protected[this]
    Definition Classes
    Logging

Deprecated Value Members

  1. def createMultiBinder[MultiBindType](implicit arg0: Manifest[MultiBindType]): ScalaMultibinder[MultiBindType]

    Permalink
    Attributes
    protected
    Definition Classes
    TwitterModule
    Annotations
    @deprecated
    Deprecated

    (Since version 2019-10-16) Use bindMultiple[T]

Inherited from ThriftClientModuleTrait

Inherited from StackClientModuleTrait[ThriftClientRequest, Array[Byte], Client]

Inherited from TwitterModule

Inherited from TwitterBaseModule

Inherited from TwitterModuleLifecycle

Inherited from Logging

Inherited from util.logging.Logging

Inherited from TwitterModuleFlags

Inherited from AbstractModule

Inherited from Module

Inherited from AnyRef

Inherited from Any

Ungrouped