src/datasource/mdsrv-datasource.js
/**
* @file MDsrv Datasource
* @author Alexander Rose <alexander.rose@weirdbyte.de>
* @private
*/
import { getFileInfo } from '../utils.js'
import { autoLoad } from '../loader/loader-utils.js'
import Datasource from './datasource.js'
class MdsrvDatasource extends Datasource {
constructor (baseUrl) {
super()
this.baseUrl = baseUrl || ''
}
getListing (path) {
path = path || ''
let url = this.baseUrl + 'dir/' + path
if (url[url.length - 1] !== '/') url += '/'
return autoLoad(url, {
ext: 'json'
}).then(function (jsonData) {
return {
path: path,
data: jsonData.data
}
})
}
getUrl (src) {
const info = getFileInfo(src)
return this.baseUrl + 'file/' + info.path + info.query
}
getCountUrl (src) {
const info = getFileInfo(src)
return this.baseUrl + 'traj/numframes/' + info.path + info.query
}
getFrameUrl (src, frameIndex) {
const info = getFileInfo(src)
return this.baseUrl + 'traj/frame/' + frameIndex + '/' + info.path + info.query
}
getFrameParams (src, atomIndices) {
return 'atomIndices=' + atomIndices.join(';')
}
getPathUrl (src, atomIndex) {
const info = getFileInfo(src)
return this.baseUrl + 'traj/path/' + atomIndex + '/' + info.path + info.query
}
}
export default MdsrvDatasource