// DO NOT MODIFY THIS FILE, IT HAS BEEN GENERATED.
// File generated by Quazal DDL Compiler, Version 4.1 [SP2] (Build 1224.83)
// Copyright (C) 1998-2004, Quazal Technologies Inc.

#include "Network/NetworkPCH.h"
#include <NetZ.h>
#include "Network/NetZ/DOActorDDL.h"
#include "Network/NetZ/DOActor.h"
BEGIN_NAMESPACE_QUAZAL;

_DOC_ImplementSomeGeneralMethods(DOActor)
_PR_userdo_derived_impl(DOActor,DOMessageOwner);
_PR_globaldo_derived_impl(DOActor,DOMessageOwner);

_DOC_DOActor::_DOC_DOActor(qUnsignedInt32 uiClassID):
	DOClassTemplate<DOCLASS(DOActor), _DOC_DOMessageOwner>(uiClassID) {
}

bool _DOC_DOActor::IsAKindOf(DOClassID idDOCID) {
	if(DOCLASSID(DOActor) == idDOCID) return true;
	return _DOC_DOMessageOwner::IsAKindOf(idDOCID);
}
void _DOC_DOActor::DataSetsOperation(qUnsignedInt32 uiOp) {
	_DOC_DOMessageOwner::DataSetsOperation(uiOp);
	_DOC_RegisterProtocol(1,_PR_basic_update_protocol_protodecl( _DSDECL_DSBuffer ));
	_DOC_RegisterFilter(1,_PR_upon_request_filter_filterdecl( _DSDECL_DSBuffer ));
	_DOC_RegisterProtocol(2,_PR_basic_update_protocol_protodecl( _DSDECL_DSActorInteraction ));
	_DOC_RegisterFilter(2,_PR_upon_request_filter_filterdecl( _DSDECL_DSActorInteraction ));
	_DOC_RegisterProtocol(3,_PR_basic_update_protocol_protodecl( _DSDECL_DSBuffer ));
	_DOC_RegisterFilter(3,_PR_upon_request_filter_filterdecl( _DSDECL_DSBuffer ));
	_DOC_RegisterProtocol(4,_PR_basic_update_protocol_protodecl( _DSDECL_DSBuffer ));
	_DOC_RegisterFilter(4,_PR_upon_request_filter_filterdecl( _DSDECL_DSBuffer ));
	_DOC_RegisterProtocol(5,_PR_basic_update_protocol_protodecl( _DSDECL_DSActorMigrate ));
	_DOC_RegisterFilter(5,_PR_upon_request_filter_filterdecl( _DSDECL_DSActorMigrate ));
	_DOC_RegisterProtocol(6,_PR_basic_update_protocol_protodecl( _DSDECL_DSActorProps ));
	_DOC_RegisterFilter(6,_PR_constant_filterdecl( _DSDECL_DSActorProps ));
	_DSDECL_DSBuffer::RegisterCounters(uiOp);
	_DSDECL_DSActorInteraction::RegisterCounters(uiOp);
	_DSDECL_DSBuffer::RegisterCounters(uiOp);
	_DSDECL_DSBuffer::RegisterCounters(uiOp);
	_DSDECL_DSActorMigrate::RegisterCounters(uiOp);
	_DSDECL_DSActorProps::RegisterCounters(uiOp);
};
qBool _DOC_DOActor::FormatVariableValue(const DuplicatedObject *pDO, Variable *pDataset, Variable *pVariable, NS_QUAZAL String *pstrResult) const {
	_DOC_FormatMatchingVariableValue(DOActor,d_configData);
	_DOC_FormatMatchingVariableValue(DOActor,d_interaction);
	_DOC_FormatMatchingVariableValue(DOActor,d_masterData);
	_DOC_FormatMatchingVariableValue(DOActor,d_masterMetaData);
	_DOC_FormatMatchingVariableValue(DOActor,d_migrate);
	_DOC_FormatMatchingVariableValue(DOActor,d_props);
	return _DOC_DOMessageOwner::FormatVariableValue(pDO, pDataset, pVariable, pstrResult);
}

bool _DOC_DOActor::DispatchAction(DuplicatedObject* pDO, MethodID idMethod, Message* pMsg) {
	return _DOC_DOMessageOwner::DispatchAction(pDO, idMethod, pMsg);
}

bool _DOC_DOActor::DispatchRMCCall(CallMethodOperation* pContext) {
	return _DOC_DOMessageOwner::DispatchRMCCall(pContext);
}

bool _DOC_DOActor::DispatchRMCResult(RMCContext* pContext) {
	return _DOC_DOMessageOwner::DispatchRMCResult(pContext);
}


void _DOC_DOActor::FillDupSpacesInfo(DupSpace::Role eRole, DupSpace::ID* pArray, qUnsignedInt* puiIndex) {
	_DOC_DOMessageOwner::FillDupSpacesInfo(eRole, pArray, puiIndex);
}


_DO_DOActor::_DO_DOActor()  {_DO_InitDO(DOActor);}

_DO_ImplementSomeGeneralMethods(DOActor);



void _DO_DOActor::RegisterDatasets() {
	_DO_RegisterDataset(d_configData);
	_DO_RegisterDataset(d_interaction);
	_DO_RegisterDataset(d_masterData);
	_DO_RegisterDataset(d_masterMetaData);
	_DO_RegisterDataset(d_migrate);
	_DO_RegisterDataset(d_props);
}

void _DO_DOActor::SpecificAddDSToDiscoveryMessage(Message* pMsg, Station* pStation) {
	_DO_DSAddToDiscovery(d_configData,pStation,1);
	_DO_DSAddToDiscovery(d_interaction,pStation,2);
	_DO_DSAddToDiscovery(d_masterData,pStation,3);
	_DO_DSAddToDiscovery(d_masterMetaData,pStation,4);
	_DO_DSAddToDiscovery(d_migrate,pStation,5);
	_DO_DSAddToDiscovery(d_props,pStation,6);
	DOMessageOwner::SpecificAddDSToDiscoveryMessage(pMsg, pStation);
}

void _DO_DOActor::SpecificExtractDSFromDiscoveryMessage(Message* pMsg) {
	_DO_DSExtractFromDiscovery(d_configData,1);
	_DO_DSExtractFromDiscovery(d_interaction,2);
	_DO_DSExtractFromDiscovery(d_masterData,3);
	_DO_DSExtractFromDiscovery(d_masterMetaData,4);
	_DO_DSExtractFromDiscovery(d_migrate,5);
	_DO_DSExtractFromDiscovery(d_props,6);
	DOMessageOwner::SpecificExtractDSFromDiscoveryMessage(pMsg);
}

void _DO_DOActor::CallOperationOnDatasets(DOOperation* pOperation, Operation::Event eEvent) {
	_DO_CallOperationOnDataset(d_configData,1);
	_DO_CallOperationOnDataset(d_interaction,2);
	_DO_CallOperationOnDataset(d_masterData,3);
	_DO_CallOperationOnDataset(d_masterMetaData,4);
	_DO_CallOperationOnDataset(d_migrate,5);
	_DO_CallOperationOnDataset(d_props,6);
	DOMessageOwner::CallOperationOnDatasets(pOperation,eEvent);
}

bool _DO_DOActor::SpecificUpdate(DataSet *pDataset, const Time& tUpdateTime) {
	_DO_DatasetUpdate(d_configData,1);
	_DO_DatasetUpdate(d_interaction,2);
	_DO_DatasetUpdate(d_masterData,3);
	_DO_DatasetUpdate(d_masterMetaData,4);
	_DO_DatasetUpdate(d_migrate,5);
	_DO_DatasetUpdate(d_props,6);
	return DOMessageOwner::SpecificUpdate(pDataset, tUpdateTime);
}

bool _DO_DOActor::SpecificRefresh(DataSet *pDataset, const Time& tRefreshTime) {
	_DO_DataSetRefresh(d_configData);
	_DO_DataSetRefresh(d_interaction);
	_DO_DataSetRefresh(d_masterData);
	_DO_DataSetRefresh(d_masterMetaData);
	_DO_DataSetRefresh(d_migrate);
	_DO_DataSetRefresh(d_props);
	return DOMessageOwner::SpecificRefresh(pDataset, tRefreshTime);
}

bool _DO_DOActor::SpecificExtractADataset(Message* pMsg, qByte byDatasetIndex) { 

	switch (byDatasetIndex) {
		_DO_DSExtract(d_configData,1);
		_DO_DSExtract(d_interaction,2);
		_DO_DSExtract(d_masterData,3);
		_DO_DSExtract(d_masterMetaData,4);
		_DO_DSExtract(d_migrate,5);
		_DO_DSExtract(d_props,6);
	}
	return DOMessageOwner::SpecificExtractADataset(pMsg, byDatasetIndex);
}

END_NAMESPACE_QUAZAL;
