# Load the shared object
useDynLib(gdsfmt,
    gdsCreateGDS, gdsOpenGDS, gdsCloseGDS, gdsSyncGDS, gdsTidyUp,
    gdsShowFile, gdsDiagInfo, gdsDiagInfo2, gdsNodeChildCnt, gdsNodeName,
    gdsRenameNode, gdsNodeEnumName, gdsNodeIndex, gdsNodeObjDesp,
    gdsAddNode, gdsAddFolder, gdsAddFile, gdsGetFile, gdsDeleteNode,
    gdsPutAttr, gdsPutAttr2, gdsGetAttr, gdsDeleteAttr, gdsObjCompress,
    gdsObjCompressClose, gdsObjSetDim, gdsObjAppend, gdsObjAppend2,
    gdsObjReadData, gdsObjReadExData, gdsDataFmt, gdsApplySetStart,
    gdsApplyCall, gdsApplyCreateSelection, gdsObjWriteAll, gdsObjWriteData,
    gdsAssign, gdsCache, gdsMoveTo, gdsCopyTo, gdsIsElement, gdsIsSparse,
    gdsLastErrGDS, gdsFileSize, gdsNodeValid, gdsSystem, gdsGetFolder,
    gdsDigest, gdsFmtSize, gdsSummary, gdsUnloadNode, gdsReopenGDS,
    gdsExistPath, gdsInitPkg
)

# Export the following names
export(
    add.gdsn, addfile.gdsn, addfolder.gdsn, append.gdsn, apply.gdsn,
    assign.gdsn, cache.gdsn, cleanup.gds, closefn.gds, clusterApply.gdsn,
    cnt.gdsn, compression.gdsn, copyto.gdsn, createfn.gds, delete.attr.gdsn,
    delete.gdsn, diagnosis.gds, digest.gdsn, get.attr.gdsn, getfile.gdsn,
    getfolder.gdsn, index.gdsn, is.element.gdsn, is.sparse.gdsn, lasterr.gds,
    ls.gdsn, moveto.gdsn, name.gdsn, objdesp.gdsn, openfn.gds, permdim.gdsn,
    print.gds.class, print.gdsn.class, put.attr.gdsn, read.gdsn, readex.gdsn,
    readmode.gdsn, rename.gdsn, setdim.gdsn, showfile.gds, summarize.gdsn,
    sync.gds, system.gds, write.gdsn, unload.gdsn, exist.gdsn
)
exportMethods(show)

# Import
import(methods)
importFrom("stats", "runif")
importFrom("utils", "memory.size", "write.table")

# Registering S3 methods
S3method(print, gds.class)
S3method(print, gdsn.class)
