summaryrefslogtreecommitdiff
path: root/ace/CLASSIX/CLASSIX_Group_Stamp.h
blob: a69d732edc2c1344a5365781f6169c479537b71c (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
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
/* -*- C++ -*- */
// $Id$

// ============================================================================
//
// = LIBRARY
//     ace
//
// = FILENAME
//     CLASSIX_Group_Stamp.h
//
// = AUTHOR(S)
//     Nokia Telecommunications
//
// ============================================================================

#ifndef ACE_CLASSIX_GROUP_STAMP_H
#define ACE_CLASSIX_GROUP_STAMP_H

/* ------------------------------------------------------------------------- */
#include "ace/CLASSIX/CLASSIX_Group.h"

#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */

class ACE_CLASSIX_Group_Stamp : public ACE_CLASSIX_Group
    // = TITLE
    //   Wrapper over Chorus's Group using <Stamp> for naming the group.
    //
    // = DESCRIPTION
    //   This is a subclass of <ACE_CLASSIX_Group>.
    //
    //   Its encapsulated group is named by a <stamp>.  However,
    //   <KnCap> is still the unique identifier of the group.
    //
    // = NOTE
    //   As at the time of writing, The stamp is contained in the ui.uiTail
    //   field of <KnCap>.
    //
    // = SEE ALSO
    //   <ACE_CLASSIX_Group>, <ACE_CLASSIX_Group_Dynamic>
    //
{
 public:
    enum
    {
        ILLEGAL_STAMP = 0
        /* Have we defined the range of valid stamps? */
    };

    // = INITIALIZATION
    ACE_CLASSIX_Group_Stamp();
    // default constructor.  Does not contain group information..
    ACE_CLASSIX_Group_Stamp(int /* stamp */);
    // creates a group use the specfied stamp
    virtual void set_addr(void*,  /* pointer to the stamp */
                          int = 0 /* not used */);
    // Replaces the existing group according to the supplied stamp

    // = ACCESS
    virtual ACE_CLASSIX_Addr::Addr_Type is_type(void) const;
    // returns STAMP type

    int get_stamp() const;
    // Returns the stamp
    // If the address is not configured, the return value is unpredictable.

    // = HELPER
    void dump(void) const;



 private:
    u_int stamp_;

    // disable copy/assignment constructor
    ACE_CLASSIX_Group_Stamp(ACE_CLASSIX_Group_Stamp const&);
    ACE_CLASSIX_Group_Stamp const& operator=(ACE_CLASSIX_Group_Stamp const&);
};

/* ------------------------------------------------------------------------- */

#if defined (__ACE_INLINE__)
#include "ace/CLASSIX/CLASSIX_Group_Stamp.i"
#endif /* __ACE_INLINE__ */

#endif /* ACE_CLASSIX_GROUP_STAMP_H */