importFrom(chunknet, ChunkReferenceArray)
importFrom(utils, head)

export(
	checkpoint,
	combine,
	d,
	dematerialise,
	distribute,
	DistributedObject,
	DistributedObjectReference,
	do.dcall,
	dpath,
	dReduce,
	emerge,
	init_locator,
	init_worker,
	map_reduce,
	materialise,
	object.size,
	read.dcsv,
	read.dmatrix,
	read.lcsv,
	restore,
	shuffle,
	table,
	write.dcsv
)

S3method('$', DistributedObject)
S3method(as.list, DistributedObject)
S3method(Complex, DistributedObject)
S3method("[", DistributedObject)
S3method(emerge, default)
S3method(emerge, DistributedObject)
S3method(Math, DistributedObject)
S3method(Ops, DistributedObject)
S3method(print, DistributedObject)
S3method(print, DistributedObjectReference)
S3method(rbind, DistributedObject)
S3method(shuffle, DistributedObject)
S3method(solve, DistributedObject)
S3method(subset, DistributedObject)
S3method(Summary, DistributedObject)
S3method(table, default)
S3method(table, DistributedObject)
S3method(table, DistributedObject)
S3method(t, ChunkReferenceArray)
S3method(dim, DistributedObject)
S3method(head, DistributedObject)
S3method(length, DistributedObject)
S3method(object.size, default)
S3method(object.size, DistributedObject)

S3method(combine, data.frame)
S3method(combine, default)
S3method(combine, list)
S3method(combine, table)

S3method(dplyr::arrange, DistributedObject)
S3method(dplyr::filter, DistributedObject)
S3method(dplyr::group_by, DistributedObject)
S3method(dplyr::mutate, DistributedObject)
S3method(dplyr::select, DistributedObject)
S3method(dplyr::summarise, DistributedObject)

S3method(prealign, DistributedObject)
S3method(prealign, RecyclesWithChunks)
S3method(prealign, default)

S3method(restore, Checkpoint)
S3method(restore, Location)
S3method(print, Checkpoint)

S3method(DistributedObject, list)
S3method(DistributedObject, ChunkReferenceArray)

S3method(DistributedObjectReference, ChunkReferenceArray)
S3method(DistributedObjectReference, DistributedObject)

S3method(ChunkReferenceArray, DistributedObject)

S3method(materialise, DistributedObject)
S3method(dematerialise, DistributedObjectReference)
