useDynLib(scidb)
import("methods")
importFrom("Matrix",nnzero, sparseMatrix, unpack, sparseVector)
importFrom("utils", head, tail)
importFrom("stats", aggregate, sd, var, reshape)
import("RCurl", iterators)

# Functions
export("scidb")
export("df2scidb")
export("scidbeval")
export("build")
export("redimension")
export("repart")
export("cumulate")
export("between")
export("cast")
export("slice")
export("as.scidb")
export("scidblist")
export("scidbls")
export("scidbconnect")
export("scidbremove")
export("scidbrm")
export("iquery")
export("project")
export("bind")
export("rename")
export("count")
export("attribute_rename")
export("index_lookup")

# S4 methods
exportClasses("scidb","scidbdf")
exportMethods("%*%",print,is.scidb,diag,show,head,tail,sum,image,crossprod,tcrossprod,is.scidbdf,aggregate,apply,sweep,sd,var,min,max,t,abs,sin,cos,tan,asin,acos,atan,unpack,reshape,regrid,svd,xgrid,glm.fit,lag)

# S3 methods
S3method("Ops",scidb)
S3method("[",scidb)
#S3method("[<-",scidb)
S3method("names",scidb)
S3method("names<-",scidb)
S3method("merge",scidb)
S3method("rownames",scidb)
S3method("colnames",scidb)
S3method("rownames<-",scidb)
S3method("colnames<-",scidb)
S3method("dimnames",scidb)
S3method("dimnames<-",scidb)
S3method("str",scidb)
S3method("ncol",scidb)
S3method("nrow",scidb)
S3method("dim",scidb)
S3method("length",scidb)
S3method("sort",scidb)
S3method("unique",scidb)
S3method("subset",scidb)
S3method("log",scidb)
S3method("diff",scidb)
S3method("cbind",scidb)

S3method("Ops",scidbdf)
S3method("[",scidbdf)
S3method("$",scidbdf)
S3method("names",scidbdf)
S3method("names<-",scidbdf)
S3method("rownames",scidbdf)
S3method("colnames",scidbdf)
S3method("dimnames",scidbdf)
S3method("merge",scidbdf)
S3method("str",scidbdf)
S3method("ncol",scidbdf)
S3method("nrow",scidbdf)
S3method("dim",scidbdf)
S3method("length",scidbdf)
S3method("sort",scidbdf)
S3method("unique",scidbdf)
S3method("subset",scidbdf)
S3method("log",scidbdf)
S3method("cbind",scidbdf)
