summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/dds4ccm/idl/dds4ccm_MultiUpdater.idl3p
blob: 09ceebf67110d2ca59c9025969208c37b4b2b853 (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
33
34
35
36
37
38
39
40
41
// $Id$

/**
 * @file dds4ccm_MultiUpdater.idl3p
 *
 */

#ifndef DDS4CCM_MULTIUPDATER_IDL3P
#define DDS4CCM_MULTIUPDATER_IDL3P

#include "connectors/dds4ccm/idl/dds4ccm_Base.idl3"

module CCM_DDS
{
  interface MultiUpdater<typename T> {
    typedef sequence<T> T$Seq;
    unsigned long create (in T$Seq instances)  // returns nb of created instances
      raises (AlreadyCreated,
              InternalError);

    unsigned long update (in T$Seq instances)  // returns nb of updated instances
      raises (NonExistent,
              InternalError);
    unsigned long delete (in T$Seq instances)  // returns nb of deleted instances
      raises (NonExistent,
              InternalError);
    readonly attribute boolean is_lifecycle_checked;
    attribute boolean is_coherent_write;
    //  behaviour:
    //  - exceptions AlreadyCreated or NonExistent are raised only if
    //    is_lifecycle_checked
    //  - global check is performed before actual write or dispose
    //    (in case of error, all the erroneous instances are reported
    //    in the exception)
    //  - attempt to write or dispose is stopped at the first error
    //  - if is_coherent_write, write orders are placed betwen begin/end
    //    coherent updates (even if an error occurs)
  };
};

#endif /* DDS4CCM_MULTIUPDATER_IDL3P */