Skip to content

Multicast

General Usage

Note

Not written yet.

Runtime Calls

RPC2_CreateMgrp

int RPC2_CreateMgrp(
    out RPC2_Handle *MgroupHandle,
    in RPC2_McastIdent *McastAddr,
    in RPC2_PortIdent *McastPort,
    in RPC2_SubsysIdent *Subsys,
    in RPC2_Integer SecurityLevel,
    in RPC2_EncryptionKey SessionKey,
    in RPC2_Integer EncryptionType,
    in long SideEffectType
);

Creates a new RPC2 mgroup identifier, unique to a particular <multicast address, port, subsystem> combination, and returns it to the caller. Once the identifier has been assigned, RPC2 mgroup members may be added and deleted via RPC2_AddToMgrp and RPC2_RemoveFromMgrp calls. The security level, encryption type and side effect types of each added connection must match the corresponding parameters of this RPC2_CreateMgrp call.

Parameters
MgroupHandle

An integer, unique to a specific client, returned by the call. When combined with the client's network address, it uniquely identifies this mgroup connection. This is not necessarily a small-valued integer.

McastAddr

The IP multicast address of the desired multicast group. This is the address that a server must use in a join request.

McastPort

The IP multicast port of the desired multicast group. This is the port that a server must use in a join request.

Subsys

The subsystem identifier of the desired multicast group. This is the subsystem that a server must use in a join request.

SecurityLevel

The security level of the desired multicast group. This is the security level that a server must use in a join request.

SessionKey

The session key of the desired multicast group. This is the session key that a server must use in a join request.

EncryptionType

The encryption type of the desired multicast group. This is the encryption type that a server must use in a join request.

SideEffectType

The side effect type of the desired multicast group. This is the side effect type that a server must use in a join request.

Completion Codes
RPC2_SUCCESS

All went well.

RPC2_SEFAIL1

Side effect routines reported temporary failure.

RPC2_SEFAIL2

Side effect routines reported critical failure.

RPC2_FAIL

Some other mishap occurred.

RPC2_AddToMgrp

int RPC2_AddToMgrp(
    in RPC2_Handle MgroupHandle,
    in RPC2_Handle ConnHandle
);

Adds ConnHandle to the mgroup associated with MgroupHandle. RPC2 contacts the remote site to initialize its mgroup connection information. The security level, encryption type and side effect type of the connection being added must match that specified when Mgroup was defined.

Parameters
MgroupHandle

Identifies the mgroup to which the new server should be added.

ConnHandle

Identifies the connection to be added to the mgroup.

Completion Codes
RPC2_SUCCESS

All went well.

RPC2_NOMGROUP

MgroupHandle is not a valid mgroup.

RPC2_NOCONNECTION

ConnHandle is not a valid connection.

RPC2_BADSECURITY

SecurityLevel or EncryptionType of ConnHandle does not match that of MgroupHandle.

RPC2_DUPLICATEMEMBER

ConnHandle is already a member of MgroupHandle.

RPC2_MGRPBUSY

A call is in progress on MgroupHandle.

RPC2_CONNBUSY

A call is in progress on ConnHandle.

RPC2_SEFAIL1

Error code returned by side effect routine.

RPC2_SEFAIL2

Error code returned by side effect routine.

RPC2_NAKED

The remote site corresponding to ConnHandle is not a member of the multicast group.

RPC2_FAIL

Some other mishap occurred.

RPC2_RemoveFromMgrp

int RPC2_RemoveFromMgrp(
    in RPC2_Handle MgroupHandle,
    in RPC2_Handle ConnHandle
);

Removes ConnHandle from the mgroup associated with MgroupHandle.

Parameters
MgroupHandle

Identifies the mgroup to be shrunk.

ConnHandle

Identifies the connection to be removed from the mgroup.

Completion Codes
RPC2_SUCCESS

All went well.

RPC2_NOMGROUP

MgroupHandle does not refer to a valid mgroup connection.

RPC2_NOCONNECTION

ConnHandle is bogus.

RPC2_NOTGROUPMEMBER

ConnHandle is not a member of MgroupHandle.

RPC2_MGRPBUSY

A call is in progress on MgroupHandle.

RPC2_FAIL

Some strange mishap occurred.

RPC2_DeleteMgrp

int RPC2_DeleteMgrp(
    in RPC2_Handle MgroupHandle
);

Deletes a RPC2 mgroup, removing any existing members before deletion

Parameters
MgroupHandle

Identifies the mgroup to be deleted.

Completion Codes
RPC2_SUCCESS

All went well.

RPC2_NOMGROUP

MgroupHandle does not refer to a valid mgroup connection.

RPC2_MGRPBUSY

A call is in progress on MgroupHandle.

RPC2_FAIL

Some other mishap occurred.