################################################################################
## DList
################################################################################

## collector in C-code
useDynLib( "DSL" )

## imports
importFrom("methods", "getFunction")
importFrom("utils", "object.size")

## DList constructor
export( "DList" )

## Generic functions
export( "as.DList" )

## Check for "DList" objects
export( "is.DList" )

## Methods on DList
S3method( "[[", "DList" )
##S3method("[[<-", "DList")
S3method( "length", "DList" )
S3method( "names", "DList" )
S3method( "names<-", "DList" )
S3method( "print", "DList" )

## DList coercion
S3method( "as.DList", "list" )
S3method( "as.DList", "DList" )
S3method( "as.DList", "character" )
S3method( "as.list", "DList" )

################################################################################
## Key/value pairs
################################################################################

export( "DKeys" )

################################################################################
## DStorage
################################################################################

## Storage backend
export( "DStorage",
        "is.DStorage" )

S3method( "print", "DStorage" )
S3method( "summary", "DStorage" )

################################################################################
## DList Operations
################################################################################

# MapReduce, gather, and lapply functions
export( "DGather" )
export( "DLapply" )
export( "DMap" )
export( "DReduce" )

################################################################################
## DList Storage
################################################################################

export( "DL_storage",
        "DL_storage<-" )

S3method( "DL_storage",   "DList" )
S3method( "DL_storage<-", "DList" )
S3method( "DL_storage",   "DStorage" )
