⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fwbaseclass.cpp

📁 一个用HLA编写的聊天程序
💻 CPP
字号:
//CFWBaseClass.cpp: the implementation of the CFWBaseClass class
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"

#if KDRTI_VERSION < 7
#include <RTI.h>
#else
#include <RTI.hh>
#include <fedtime.hh>
#endif

#ifdef	KD_RTI
#include <time.h>
#else
#include <fedtime.hh>
#endif

#include "FWBaseClass.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//{{FW_PUBLIC_STATIC_ATTRIBUTE_DEFINE_BEGIN <<----- Don't delete it!>>
RTI::Boolean			CFWBaseClass::ms_doRegistry = RTI::RTI_FALSE;
std::string				CFWBaseClass::m_ObjClassName = "";
char*					CFWBaseClass::ms_PrivilegeToDeleteStr = "privilegeToDelete";
RTI::AttributeHandle	CFWBaseClass::ms_PrivilegeToDeleteId = 0;
RTI::RTIambassador*		CFWBaseClass::m_RtiAmb = NULL;
//}}FW_PUBLIC_STATIC_ATTRIBUTE_DEFINE_END <<----- Don't delete it!>>

CFWBaseClass::CFWBaseClass()
{
	m_InstanceId = OBJNOHANDLE;
	m_IsExisting = RTI::RTI_FALSE;
	m_ProxyFlag = RTI::RTI_FALSE;
	m_IsTransferPrivilegeToDelete = RTI::RTI_FALSE;
	m_IsOwnedPrivilegeToDelete = RTI::RTI_FALSE;
}

void CFWBaseClass::SetRtiAmb(RTI::RTIambassador &theRtiAmb)
{
	m_RtiAmb = &theRtiAmb;
}

void CFWBaseClass::SetInstID(RTI::ObjectHandle idValue)
{
	m_InstanceId = idValue;
}

RTI::ObjectHandle CFWBaseClass::GetInstID()
{
	return m_InstanceId;
}

void CFWBaseClass::SetRegistration( RTI::Boolean regFlag)
{
	ms_doRegistry = regFlag;
}

RTI::AttributeHandle CFWBaseClass::FindAttributeHandle(CString theAttrName)
{
	RTI::AttributeHandle theFindValue = ATTRNOHANDLE;

	if(theAttrName == ms_PrivilegeToDeleteStr) {
		theFindValue = ms_PrivilegeToDeleteId;
	} else {
		theFindValue = ATTRNOHANDLE;
	}

	return theFindValue;
}

void CFWBaseClass::CreateNVPSet(RTI::AttributeHandleValuePairSet *pAttributes, CStringArray &theAttrNames)
{
	return;
}

RTI::Boolean CFWBaseClass::IsUpdate()
{
	return RTI::RTI_FALSE;
}

void CFWBaseClass::SetUpdateControl(RTI::Boolean updateFlag,const RTI::AttributeHandleSet& theAttrHandles)
{
	return;
}

void CFWBaseClass::SetOwnedAttrsFlag(RTI::Boolean ownedFlag, const RTI::AttributeHandleSet& theAttrHandles)
{
	RTI::AttributeHandle theHandle;

	for (unsigned int i = 0; i < theAttrHandles.size(); i++) {
		theHandle = theAttrHandles.getHandle(i);
		if(theHandle == ms_PrivilegeToDeleteId) {
			m_IsOwnedPrivilegeToDelete = ownedFlag;
			break;
		}
	}

	return;
}

void CFWBaseClass::SetTransferOwnerFlag(RTI::Boolean transferFlag, const RTI::AttributeHandleSet& theAttrHandles)
{
	RTI::AttributeHandle theHandle;

	for (unsigned int i = 0; i < theAttrHandles.size(); i++) {
		theHandle = theAttrHandles.getHandle(i);
		if(theHandle == ms_PrivilegeToDeleteId) {
			m_IsTransferPrivilegeToDelete = transferFlag;
			break;
		}
	}

	return;
}

void CFWBaseClass::ReflectAttributeValues(const RTI::AttributeHandleValuePairSet& theAttributes)
{
	return;
}

RTI::Boolean CFWBaseClass::GetReflectedStatusOfAttr(CString theAttrName)
{
	return RTI::RTI_FALSE;
}

void CFWBaseClass::SetReflectedStatusOfAttrs(CStringArray &theAttrNames, RTI::Boolean theStatus)
{
	return;
}

void CFWBaseClass::Init(const RTI::ObjectClassHandle &theObject)
{
	try{
		ASSERT(theObject >= 0);

		ms_PrivilegeToDeleteId = m_RtiAmb->getAttributeHandle(ms_PrivilegeToDeleteStr, theObject);

		return;
	}
	catch(RTI::Exception& e)
	{
		CString errInfo;

		errInfo = "error located: CFWBaseClass::Init(RTI::ObjectClassHandle)\n";
		errInfo += "error message:";
		errInfo += CString(e._reason);
		errInfo += "\n";
		TRACE0(errInfo);
		throw errInfo;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -