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

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

#ifndef ACE_CLASSIX_DGRAM_MCAST_H
#define ACE_CLASSIX_DGRAM_MCAST_H

/* ------------------------------------------------------------------------- */
#include <ace/CLASSIX/CLASSIX_Stream.h>

class ACE_CLASSIX_Dgram_Mcast : public ACE_CLASSIX_Stream
    // = TITLE
    //   Provides Dgram_Mcast interfaces for CLASSIX IPC communications.
    //
    // = DESCRIPTION
    //   This class represents multiple end-points for message delivery.
    //   All the remote ports are belong to the same group identified by
    //   a stamp.
    //   It uses the broadcast mode provided by ipcSend() to deliver
    //   messages.
    //
    //   This class is most likely used in the server.
    //   
{
 public:
    // = INITIALIZATION
    ACE_CLASSIX_Dgram_Mcast(void);
    // Default constructor, does not setup anything

    ACE_CLASSIX_Dgram_Mcast(int /* stamp */, 
			    const ACE_CLASSIX_Port& = 
			    *ACE_CLASSIX_DEFAULT_PORT::instance());
    // remote SAP = port group, local SAP = default port

    int set_saps(int /* stamp */, 
	     const ACE_CLASSIX_Port& = 
	     *ACE_CLASSIX_DEFAULT_PORT::instance());
    // remote SAP = port group, local SAP = default port

    //virtual ssize_t send (const void *, /* buf */ 
    // size_t /* n */) const;


    // = HELPER
    void dump (void) const;
    // Dump the state of an object.
    
    ACE_ALLOC_HOOK_DECLARE;
    // Declare the dynamic allocation hooks.

 protected:

    virtual int set_mode_(u_int = K_BROADMODE); /* theMode */ 
    // Sets the addressing mode with the current setting of coTarget
    virtual int set_mode_(u_int, /* mode */ int /* site */);
    // Sets the addressing mode as well as the coTarget

    // Site information for delivery mode, see <ACE_CLASSIX_Stream::dest_ >
    // Can be changed by control()/set_mode_()
    int                 dest_site_;


 private:
   // Disable copy constructor
  ACE_CLASSIX_Dgram_Mcast(ACE_CLASSIX_Dgram_Mcast const&);
  ACE_CLASSIX_Dgram_Mcast const& operator=(ACE_CLASSIX_Dgram_Mcast const&); 
};

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

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

#endif /* ACE_CLASSIX_DGRAM_MCAST_H */