Change behaviour of stream-intersection with multiple traces
[babeltrace.git] / include / babeltrace / ctf / events-internal.h
index bd50100d0ea37a7fed53d116f335f3a5e66d2aaf..097865937d84bc34af1353126ecab25b2f6d1584 100644 (file)
  *
  * The above copyright notice and this permission notice shall be
  * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
  */
 
 #include <babeltrace/iterator-internal.h>
 
 struct ctf_stream_definition;
 
+/*
+ * These structures are public mappings to internal ctf_event structures.
+ */
+struct bt_ctf_event {
+       struct ctf_event_definition *parent;
+};
+
+struct bt_ctf_event_decl {
+       struct ctf_event_declaration parent;
+       GPtrArray *context_decl;
+       GPtrArray *fields_decl;
+       GPtrArray *packet_header_decl;
+       GPtrArray *event_context_decl;
+       GPtrArray *event_header_decl;
+       GPtrArray *packet_context_decl;
+};
+
 struct bt_ctf_iter {
        struct bt_iter parent;
-       struct ctf_event_definition current_ctf_event;  /* last read event */
+       struct bt_ctf_event current_ctf_event;  /* last read event */
        GArray *callbacks;                              /* Array of struct bt_stream_callbacks */
        struct bt_callback_chain main_callbacks;        /* For all events */
        /*
@@ -51,6 +76,16 @@ struct bt_ctf_iter {
         * bt_iter.
         */
        GPtrArray *dep_gc;
+       uint64_t events_lost;
 };
 
+int ctf_find_packets_intersection(struct bt_context *ctx,
+               uint64_t *ts_begin, uint64_t *ts_end);
+void ctf_update_current_packet_index(struct ctf_stream_definition *stream,
+               struct packet_index *prev_index,
+               struct packet_index *cur_index);
+int ctf_find_tc_stream_packet_intersection_union(struct bt_context *ctx,
+               uint64_t *ts_begin, uint64_t *ts_end);
+int ctf_tc_set_stream_intersection_mode(struct bt_context *ctx);
+
 #endif /*_BABELTRACE_CTF_EVENTS_INTERNAL_H */
This page took 0.029026 seconds and 4 git commands to generate.