-
Notifications
You must be signed in to change notification settings - Fork 1
/
MotionDatabase.ice
146 lines (122 loc) · 4.5 KB
/
MotionDatabase.ice
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <Glacier2/Session.ice>
module MotionDatabase {
exception InternalErrorException {
string errorMessage;
};
exception InvalidParameterException {
string parameterName;
};
exception NotAuthorizedException {};
exception TooManyOpenFilesException {};
class Institution;
class MotionDescriptionTreeNode;
class File;
class Motion;
class Project;
class Subject;
class MoCapObject;
sequence<byte> ByteSequence;
sequence<long> LongSequence;
sequence<string> StringSequence;
sequence<Institution> InstitutionList;
sequence<MotionDescriptionTreeNode> MotionDescriptionTreeNodeList;
sequence<File> FileList;
sequence<Motion> MotionList;
sequence<Project> ProjectList;
sequence<Subject> SubjectList;
sequence<MoCapObject> MoCapObjectList;
dictionary<string, short> StringShortDictionary;
enum VisibilityLevel { Public, Protected, Internal };
class Institution {
long id;
string acronym;
string name;
};
class MotionDescriptionTreeNode {
long id;
string label;
MotionDescriptionTreeNodeList children;
};
class DatabaseObject {
long id;
long createdDate;
string createdUser;
long modifiedDate;
string modifiedUser;
StringSequence writeGroups;
StringSequence readProtectedGroups;
StringShortDictionary fileTypeCounts;
};
class File {
long id;
long createdDate;
string createdUser;
string fileName;
string fileType;
long attachedToId;
string description;
VisibilityLevel visibility;
File originatedFrom;
};
class Motion extends DatabaseObject {
Institution associatedInstitution;
MotionDescriptionTreeNodeList motionDescriptions;
Project associatedProject;
SubjectList associatedSubjects;
MoCapObjectList associatedObjects;
string date;
string comment;
};
class Project extends DatabaseObject {
string name;
string comment;
};
class Subject extends DatabaseObject {
string firstName;
string lastName;
string comment;
byte gender;
short age;
short weight;
short height;
StringShortDictionary anthropometricsTable;
};
class MoCapObject extends DatabaseObject {
string label;
string comment;
string modelSettingsJSON;
};
interface FileReader {
void destroy();
idempotent long getSize() throws InternalErrorException;
ByteSequence readChunk(long length) throws InternalErrorException, InvalidParameterException;
idempotent void seek(long pos) throws InternalErrorException, InvalidParameterException;
};
interface FileWriter {
void destroy();
void writeChunk(ByteSequence data) throws InternalErrorException;
};
interface MotionDatabaseSession extends Glacier2::Session {
idempotent string pingServer(string echoString);
idempotent InstitutionList listInstitutions() throws InternalErrorException;
idempotent MotionDescriptionTreeNodeList getMotionDescriptionTree() throws InternalErrorException;
idempotent Motion getMotion(long motionId) throws InternalErrorException, InvalidParameterException;
idempotent long countMotions(LongSequence filterMotionDescription, LongSequence filterProject, LongSequence filterInstitution,
LongSequence filterSubject, LongSequence filterObject, string motionDescriptionSearchTerm) throws InternalErrorException,
InvalidParameterException;
idempotent MotionList listMotions(LongSequence filterMotionDescription, LongSequence filterProject, LongSequence filterInstitution,
LongSequence filterSubject, LongSequence filterObject, string motionDescriptionSearchTerm, string sortField, long limit,
long offset) throws InternalErrorException, InvalidParameterException;
idempotent ProjectList listProjects() throws InternalErrorException;
idempotent SubjectList listSubjects() throws InternalErrorException;
idempotent MoCapObjectList listObjects() throws InternalErrorException;
idempotent File getFile(long fileId) throws InternalErrorException, InvalidParameterException;
idempotent FileList listFiles(long databaseObjectId) throws InternalErrorException, InvalidParameterException;
idempotent FileReader* getFileReader(long fileId) throws InternalErrorException, InvalidParameterException, NotAuthorizedException,
TooManyOpenFilesException;
FileWriter* getFileWriter(long databaseObjectId, string fileName, string fileType, string description, VisibilityLevel visibility,
optional(1) long originatedFromId) throws InternalErrorException, InvalidParameterException, NotAuthorizedException,
TooManyOpenFilesException;
void deleteFile(long fileId) throws InternalErrorException, InvalidParameterException, NotAuthorizedException;
};
};