## Namespace for package 'parallel'
useDynLib("parallel", .registration = TRUE, .fixes = "C_")

export(nextRNGStream, nextRNGSubStream, clusterSetRNGStream)

if(tools:::.OStype() == "unix") {
    export(mccollect, mcparallel, mc.reset.stream, mcaffinity)
}

export(clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
       clusterExport, clusterMap, clusterSplit, detectCores,
       getDefaultCluster,
       makeCluster, makeForkCluster, makePSOCKcluster, mcMap,
       mclapply, mcmapply, parApply, parCapply, parLapply,
       parLapplyLB, parRapply, parSapply, parSapplyLB, pvec,
       setDefaultCluster, splitIndices, stopCluster)

S3method(print, SOCKcluster)
S3method(print, SOCKnode)
S3method(print, SOCK0node)
S3method("[", cluster)
S3method(closeNode, SOCKnode)
S3method(closeNode, SOCK0node)
S3method(closeNode, default)
S3method(recvData, SOCKnode)
S3method(recvData, SOCK0node)
S3method(recvOneData, SOCKcluster)
S3method(sendData, SOCKnode)
S3method(sendData, SOCK0node)
S3method(stopCluster, default)

## To support snow clusters
#S3method(closeNode, NWSnode)
#S3method(recvData, NWSnode)
#S3method(recvOneData, NWScluster)
#S3method(sendData, NWSnode)
#S3method(stopCluster, NWScluster)
S3method(recvData, MPInode)
S3method(recvOneData, MPIcluster)
S3method(sendData, MPInode)
S3method(stopCluster, MPIcluster)
S3method(stopCluster, spawnedMPIcluster)
