Bachelorthesis/Modbus-DLL/include/ModbusProtocolDLL/ModbusProtocolAddOn.cpp

86 lines
2.2 KiB
C++

/*-------------------------------------------------------------------
VCSignalProtocolAddOn.h
-------------------------------------------------------------------
(c) Vector Informatik GmbH. All rights reserved.
------------------------------------------------------------------- */
#include "StdAfx.h"
#include "ModbusProtocolAddOn.h"
#include "ModbusProtocol.h"
////////////////////////////////////////////////////////////////////////
//
// Implementation of ModbusProtocolAddOn
//
////////////////////////////////////////////////////////////////////////
ModbusProtocolAddOn *ModbusProtocolAddOn::sInstance = NULL;
//----------------------------------------------------------------------
//!
/**
*/
ModbusProtocolAddOn::ModbusProtocolAddOn()
{
sInstance = this;
}
//----------------------------------------------------------------------
//!
/**
*/
ModbusProtocolAddOn& ModbusProtocolAddOn::Instance()
{
if (sInstance == 0) throw;
return *sInstance;
}
////////////////////////////////////////////////////////////////////////
// IProtocolAddOn
////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------
//!
/**
*/
VDEF ModbusProtocolAddOn::CreateProtocol( const char /*in*/ *protocolSymbol, NIPB::IProtocol /*out*/ **protocol )
{
if (protocol == 0) return NIPB::kInvalidArg;
if (protocolSymbol == 0) return NIPB::kInvalidArg;
*protocol = new ModbusProtocol();
return NIPB::kOK;
}
//----------------------------------------------------------------------
//!
/**
*/
VDEF ModbusProtocolAddOn::ReleaseProtocol( NIPB::IProtocol /*in*/ *protocol)
{
ModbusProtocol *prot = dynamic_cast<ModbusProtocol*>( protocol );
delete prot;
return NIPB::kOK;
}
////////////////////////////////////////////////////////////////////////
// Public Methods
////////////////////////////////////////////////////////////////////////
//----------------------------------------------------------------------
//!
/**
*/
void ModbusProtocolAddOn::Release()
{
delete this;
}
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////