package main
Concrete effect types and their interpreters that implement the quasar functionality.
- Alphabetic
- By Inheritance
- main
- Logging
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- sealed trait BackendConfig extends slamdata.Predef.Product with slamdata.Predef.Serializable
- final case class ClassName(value: slamdata.Predef.String) extends slamdata.Predef.AnyVal with Product with Serializable
- final case class ClassPath(value: IList[File]) extends slamdata.Predef.AnyVal with Product with Serializable
- final case class CmdLineConfig(configPath: slamdata.Predef.Option[FsFile], loadConfig: BackendConfig, cmd: Cmd) extends Product with Serializable
- type CoreEff[A] = Coproduct[MetaStoreLocation, CoreEff0, A]
- type CoreEff0[A] = Coproduct[Module, CoreEff1, A]
- type CoreEff1[A] = Coproduct[Mounting, CoreEff2, A]
- type CoreEff2[A] = Coproduct[Analyze, CoreEff3, A]
- type CoreEff3[A] = Coproduct[QueryFile, CoreEff4, A]
- type CoreEff4[A] = Coproduct[ReadFile, CoreEff5, A]
- type CoreEff5[A] = Coproduct[WriteFile, CoreEff6, A]
- type CoreEff6[A] = Coproduct[ManageFile, CoreEff7, A]
- type CoreEff7[A] = Coproduct[VCacheKVS, CoreEff8, A]
- type CoreEff8[A] = Coproduct[Timing, CoreErrs, A]
-
type
CoreEffIO[A] = Coproduct[Task, CoreEff, A]
Effect comprising the core Quasar apis.
Effect comprising the core Quasar apis. NB: CoM is avoided due to significantly longer compile times at usage sites.
- type CoreEffIORW[A] = Coproduct[VCacheExpR, CoreEffIOW, A]
- type CoreEffIOW[A] = Coproduct[VCacheExpW, CoreEffIO, A]
-
type
CoreErrs[A] = Coproduct[Failure, CoreErrs1, A]
The types of failure from core apis.
- type CoreErrs0[A] = Coproduct[MountingFailure, FileSystemFailure, A]
- type CoreErrs1[A] = Coproduct[PathMismatchFailure, CoreErrs0, A]
- final case class FS(core: ~>[BackendEffect, QErrs_TaskM], mounting: ~>[Mounting, QErrs_TaskM], shutdown: Task[slamdata.Predef.Unit]) extends Product with Serializable
- class FilesystemQueries[S[_]] extends AnyRef
- type FsAsk[A] = Read[BackendDef[PhysFsEffM], A]
- type HierarchicalFsEff[A] = Coproduct[PhysFsEffM, HierarchicalFsEff0, A]
- type HierarchicalFsEff0[A] = Coproduct[MountedResultH, MonotonicSeq, A]
-
type
HierarchicalFsEffM[A] = Free[HierarchicalFsEff, A]
The effects required by hierarchical FileSystem operations.
- type HierarchicalFsRef[A] = AtomicRef[~>[BackendEffect, [β$12$]Free[[A]Coproduct[[A]Free[[A]Coproduct[Task, [A]Failure[PhysicalError, A], A], A], [A]Coproduct[[A]KeyValueStore[ResultHandle, (Path[Abs, Dir, Sandboxed], ResultHandle), A], MonotonicSeq, A], A], β$12$]], A]
- type MainErrT[F[_], A] = EitherT[F, slamdata.Predef.String, A]
- type MainTask[A] = EitherT[Task, slamdata.Predef.String, A]
- sealed abstract class MetaStoreLocation[A] extends AnyRef
- type MountEff[A] = Coproduct[PhysFsEffM, MountEff0, A]
- type MountEff0[A] = Coproduct[HierarchicalFsRef, MountedFsRef, A]
-
type
MountEffM[A] = Free[MountEff, A]
Effects required for mounting.
- type MountedFsRef[A] = AtomicRef[Mounts[DefinitionResult[PhysFsEffM]], A]
- type PhysFsEff[A] = Coproduct[Task, PhysErr, A]
-
type
PhysFsEffM[A] = Free[PhysFsEff, A]
Effects that physical filesystems are permitted.
-
type
QErrs[A] = Coproduct[PhysErr, CoreErrs, A]
All possible types of failure in the system (apis + physical).
- type QErrs_CRW_Task[A] = Coproduct[[A]Read[AnyRef { ... /* 2 definitions in type refinement */ }, A], [A]Coproduct[[A]Write[AnyRef { ... /* 2 definitions in type refinement */ }, A], [A]Coproduct[Task, [A]Coproduct[[A]Failure[PhysicalError, A], [A]Coproduct[[A]Failure[Error, A], [A]Coproduct[[A]Failure[PathTypeMismatch, A], [A]Coproduct[[A]Failure[MountingError, A], [A]Failure[FileSystemError, A], A], A], A], A], A], A], A]
- type QErrs_CRW_TaskM[A] = Free[QErrs_CRW_Task, A]
- type QErrs_Task[A] = Coproduct[Task, QErrs, A]
- type QErrs_TaskM[A] = Free[QErrs_Task, A]
-
final
case class
Quasar(interp: ~>[CoreEff, QErrs_CRW_TaskM], shutdown: Task[slamdata.Predef.Unit]) extends Product with Serializable
The Quasar Filesystem.
The Quasar Filesystem. Contains the
CoreEff
that can be used to interpret most operations. Also has convenience methods for executing common operation withinTask
. Theshutdown
task should be called once you are done with it.- shutdown
Trigger the underlying connector drivers to shutdown cleanly.
-
final
case class
QuasarAPIImpl[F[_]](inter: ~>[CoreEff, F])(implicit evidence$1: Monad[F]) extends Product with Serializable
The top level Quasar programmatic API.
The top level Quasar programmatic API. Not yet complete, but will be made more exhaustive over time.
Value Members
- val MainTask: MonadError[[γ$0$]EitherT[Task, String, γ$0$], slamdata.Predef.String]
- val QuasarAPI: QuasarAPIImpl[[β$1$]Free[[A]Coproduct[MetaStoreLocation, [A]Coproduct[Module, [A]Coproduct[Mounting, [A]Coproduct[Analyze, [A]Coproduct[QueryFile, [A]Coproduct[ReadFile, [A]Coproduct[WriteFile, [A]Coproduct[ManageFile, [A]Coproduct[[A]KeyValueStore[Path[Abs, File, Sandboxed], ViewCache, A], [A]Coproduct[Timing, [A]Coproduct[[A]Failure[Error, A], [A]Coproduct[[A]Failure[PathTypeMismatch, A], [A]Coproduct[[A]Failure[MountingError, A], [A]Failure[FileSystemError, A], A], A], A], A], A], A], A], A], A], A], A], A], A], β$1$]]
-
def
attemptMountAll[S[_]](config: MountingsConfig)(implicit S: :<:[Mounting, S]): Free[S, slamdata.Predef.Map[APath, slamdata.Predef.String]]
Mount all the mounts defined in the given configuration, returning the paths that failed to mount along with the reasons why.
- def connectionIOToTask(metaRef: TaskRef[MetaStore]): ~>[ConnectionIO, Task]
-
def
initMetaStoreOrStart[C](config: CmdLineConfig, start: (C, ~>[CoreEff, QErrs_CRW_TaskM]) ⇒ MainTask[slamdata.Predef.Boolean], persist: (DbConnectionConfig) ⇒ MainTask[slamdata.Predef.Unit])(implicit arg0: DecodeJson[C], configOps: ConfigOps[C]): MainTask[slamdata.Predef.Unit]
Either initialize the metastore or execute the start depending on what command is provided by the user in the command line arguments
Either initialize the metastore or execute the start depending on what command is provided by the user in the command line arguments
- start
The body of logic, should return true whether to shutdown quasar or not
-
def
initUpdateMigrate[A](schema: Schema[A], tx: Transactor[Task], cfgFile: slamdata.Predef.Option[FsFile]): MainTask[slamdata.Predef.Unit]
Initialize or update MetaStore Schema and migrate mounts from config file
-
val
log: Logger
- Attributes
- protected
- Definition Classes
- Logging
-
val
logFailedMount: ((APath, slamdata.Predef.String)) ⇒ Task[slamdata.Predef.Unit]
Prints a warning about the mount failure to the console.
-
def
mountHandler[S[_]](implicit S: :<:[FsAsk, S]): Free[S, MountRequestHandler[PhysFsEffM, HierarchicalFsEff]]
Provides the mount handlers to update the hierarchical filesystem whenever a mount is added or removed.
-
def
physicalFileSystems(config: BackendConfig): Task[BackendDef[PhysFsEffM]]
The physical filesystems currently supported.
The physical filesystems currently supported. Please note that it is really best if you only sequence this task once per runtime. It won't misbehave, but it will waste resources if you run it multiple times. Thus, all uses of the value from this Task should be handled by
Read[BackendDef[PhysFsEffM], ?]
(or an analogousKleisli
).- Annotations
- @SuppressWarnings()
-
object
BackendConfig extends Serializable
APaths relative to real filesystem root
- object Caching
-
object
CompositeFileSystem
A FileSystem supporting filesystems mounted at various points in the hierarchy.
- object CoreEff
- object HierarchicalFsEff
- object KvsMounter
- object MetaStoreLocation
- object MountEff
- object PhysFsEff
- object Prettify
- object QErrs
- object QErrs_CRW_Task
- object Quasar extends Serializable
- object analysis
- object config
- object metastore