summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiListener.idl3p
blob: 3aa3f4a64e3bb26a559e0cdcb2ed725dbdcae162 (plain)
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
/**
 * @file dds4CCM_MultiListener.idl3p
 *
 */

#ifndef DDS4CCM_MULTILISTENER_IDL3P
#define DDS4CCM_MULTILISTENER_IDL3P

#include "dds4ccm/idl/dds4ccm_Base.idl3"

module CCM_DDS
{
  enum GroupingMode {
    INSTANCE_HISTORY,
    LAST_SAMPLE_ALL_INSTANCES,
    ALL_SAMPLES_ALL_INSTANCES
  };

  interface MultiListener<typename T> {
    typedef sequence<T> T$Seq;
    void on_data (in T$Seq instances, in ReadInfoSeq infos);
    attribute GroupingMode grouping_mode;
    // behaviour
    // - depending on grouping_mode similar to get_one_history(any new instance),
    // get_all or get_all_history, except that in push mode instead of
    // pull mode
    // - triggered only if enabled is the associated ListenerControl
    // - query filter (if any) in the associated Reader 
  };
};

#endif