Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

73 lines
2.2 KiB

//***************************************************************************
//
// File:
//
// Module: MS SNMP Provider
//
// Purpose:
//
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
//
//***************************************************************************
/*--------------------------------------------------
Filename: idmap.hpp
Author: B.Rajeev
Purpose: Provides declarations for the IdMapping class.
--------------------------------------------------*/
#ifndef __ID_MAPPING__
#define __ID_MAPPING__
#include "forward.h"
#include "common.h"
#define ILLEGAL_TRANSPORT_FRAME_ID 0
typedef CMap<TransportFrameId, TransportFrameId &, SessionFrameId, SessionFrameId &> ForwardStore;
typedef CMap<SessionFrameId, SessionFrameId &, TransportFrameId, TransportFrameId &> BackwardStore;
// When a session frame is passed to the transport for transmission, the
// transport assigns a TransportFrameId to the frame.
// The IdMapping class provides a mapping between the SessionFrameIds and
// TransportFrameIds
// NOTE: At any time, several transport frame ids may be associated with a
// session frame id, but the session frame id is only associated with the
// last registered transport frame id. DissociateSessionFrameId is called,
// the session frame id association is lost, however, other transport frame
// ids remain associated with the session frame id
// If this is not desired in the future, a list of associated transport frame
// ids must be maintained for each session frame id
class IdMapping
{
// We need access by both the SessionFrameId and the TransportFrameId.
// To avoid a CMap traversal, two CMaps are used to store the
// FrameIds, indexed by the TransportFrameId and the
// SessionFrameId respectively.
ForwardStore forward_store;
BackwardStore backward_store;
public:
void Associate(IN TransportFrameId transport_frame_id,
IN SessionFrameId session_frame_id);
SessionFrameId DisassociateTransportFrameId(IN TransportFrameId transport_frame_id);
TransportFrameId DisassociateSessionFrameId(IN SessionFrameId session_frame_id);
BOOL CheckIfAssociated(IN SessionFrameId session_frame_id);
~IdMapping(void);
};
#endif // __ID_MAPPING__