00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef HxCorbaDatabase_idl
00011 #define HxCorbaDatabase_idl
00012
00013 #include "HxCorbaVxSegmentation.idl"
00014
00015 module HxCorba
00016 {
00017 exception DatabaseException
00018 {
00019 long dbCode;
00020 string dbMessage;
00021 string message;
00022 };
00023
00024 interface VxSegmentBuilder
00025 {
00026 void addInt(in string id, in long value)
00027 raises(DatabaseException);
00028 void addDouble(in string id, in double value)
00029 raises(DatabaseException);
00030 void addString(in string id, in string value)
00031 raises(DatabaseException);
00032
00033 void close();
00034 };
00035
00036 interface VxSegmentationBuilder
00037 {
00038 void setDescription(in string description);
00039 VxSegmentBuilder addSegment(in long start, in long end)
00040 raises(DatabaseException);
00041
00042 void close();
00043 };
00044
00045 struct FeatureCondition
00046 {
00047 string featType;
00048 string feature;
00049 string expression;
00050 };
00051
00052 typedef sequence<FeatureCondition> FeatureCondSeq;
00053
00054 struct SegmentationCondition
00055 {
00056 string segName;
00057 FeatureCondSeq featureCond;
00058 };
00059
00060 typedef sequence<SegmentationCondition> SegmentationConditionSeq;
00061
00062 struct OverlappingCondition
00063 {
00064 boolean total;
00065 SegmentationCondition segCond;
00066 };
00067
00068 typedef sequence<OverlappingCondition> OverlappingCondSeq;
00069
00070 interface VxJoinedSegments
00071 {
00072 long start();
00073 long end();
00074
00075 long getInt(in string segmentation, in string id);
00076 double getDouble(in string segmentation, in string id);
00077 string getString(in string segmentation, in string id);
00078
00079 long getIntFlag(in string segmentation, in string id, out boolean present);
00080 double getDoubleFlag(in string segmentation, in string id, out boolean present);
00081 string getStringFlag(in string segmentation, in string id, out boolean present);
00082
00083 StringSeq listSegmentations();
00084 VxSegment getSegment(in string segmentation);
00085 };
00086
00087 typedef sequence<VxJoinedSegments> VxJoinedSegmentsSeq;
00088
00089 interface DatabaseSession
00090 {
00091 StringSeq listVideos();
00092 StringSeq listSegmentations(in string videoName);
00093 VxSegmentation getSegmentation(in string videoName, in string segName);
00094
00095 void addSegmentation(in VxSegmentation seg,
00096 in string videoName, in string segName,
00097 in string description)
00098 raises(DatabaseException);
00099
00100 VxSegmentationBuilder buildSegmentation(in string videoName,
00101 in string segName) raises(DatabaseException);
00102
00103
00104 VxSegmentSeq querySegments(in string sqlQuery)
00105 raises(DatabaseException);
00106
00107
00108
00109 VxSegmentSeq querySegmentations(in string videoName,
00110 in SegmentationCondition segCond,
00111 in OverlappingCondSeq overlappings)
00112 raises(DatabaseException);
00113
00114 VxJoinedSegmentsSeq queryIntersections(in string videoName,
00115 in SegmentationConditionSeq conds)
00116 raises(DatabaseException);
00117
00118 string queryXML(in string sqlQuery)
00119 raises(DatabaseException);
00120
00121
00122
00123
00124
00125
00126
00127 void close();
00128 };
00129
00130 interface Database
00131 {
00132 DatabaseSession openSession(in string username, in string password)
00133 raises(DatabaseException);
00134 };
00135
00136 };
00137
00138 #endif