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.
 
 
 
 
 
 

90 lines
1.9 KiB

//***************************************************************************
//
// File:
//
// Module: MS SNMP Provider
//
// Purpose:
//
// Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
//
//***************************************************************************
/*---------------------------------------------------------
Filename: ssent.cpp
Written By: B.Rajeev
----------------------------------------------------------*/
#include "precomp.h"
#include "common.h"
#include "ssent.h"
void SessionSentStateStore::Register(IN SessionFrameId id,
IN SnmpOperation &operation,
IN const SnmpErrorReport &error_report)
{
store[id] = new ErrorInfo(operation, error_report);
}
SnmpErrorReport SessionSentStateStore::Remove(IN SessionFrameId id, OUT SnmpOperation *&operation)
{
ErrorInfo *error_info;
BOOL found = store.Lookup(id, error_info);
if ( !found )
{
operation = NULL;
return SnmpErrorReport(Snmp_Error, Snmp_Local_Error);
}
store.RemoveKey(id);
SnmpErrorReport to_return(error_info->GetErrorReport());
operation = error_info->GetOperation();
delete error_info;
return to_return;
}
void SessionSentStateStore::Remove(IN SessionFrameId id)
{
SnmpOperation *operation;
Remove(id, operation);
}
SessionSentStateStore::~SessionSentStateStore(void)
{
// get the first position
POSITION current = store.GetStartPosition();
// while the position isn't null
while ( current != NULL )
{
SessionFrameId id;
ErrorInfo *error_info;
// get the next pair
store.GetNextAssoc(current, id, error_info);
// delete the ptr
delete error_info;
}
// remove all the keys
store.RemoveAll();
}