// 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/DOTalkerDDL.h"
#include "Network/NetZ/DOTalker.h"
BEGIN_NAMESPACE_QUAZAL;

_DOC_ImplementSomeGeneralMethods(DOTalker)
_PR_userdo_derived_impl(DOTalker,RootDO);
_PR_globaldo_derived_impl(DOTalker,RootDO);

_DOC_DOTalker::_DOC_DOTalker(qUnsignedInt32 uiClassID):
	DOClassTemplate<DOCLASS(DOTalker), _DOC_ROOT_ROOTDO>(uiClassID) {
}

bool _DOC_DOTalker::IsAKindOf(DOClassID idDOCID) {
	if(DOCLASSID(DOTalker) == idDOCID) return true;
	return _DOC_ROOT_ROOTDO::IsAKindOf(idDOCID);
}
void _DOC_DOTalker::DataSetsOperation(qUnsignedInt32 uiOp) {
	_DOC_ROOT_ROOTDO::DataSetsOperation(uiOp);
	_DOC_RegisterProtocol(1,_PR_basic_update_protocol_protodecl( _DSDECL_DSTalkerProps ));
	_DOC_RegisterFilter(1,_PR_upon_request_filter_filterdecl( _DSDECL_DSTalkerProps ));
	_DSDECL_DSTalkerProps::RegisterCounters(uiOp);
};
qBool _DOC_DOTalker::FormatVariableValue(const DuplicatedObject *pDO, Variable *pDataset, Variable *pVariable, NS_QUAZAL String *pstrResult) const {
	_DOC_FormatMatchingVariableValue(DOTalker,d_props);
	return _DOC_ROOT_ROOTDO::FormatVariableValue(pDO, pDataset, pVariable, pstrResult);
}

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

bool _DOC_DOTalker::DispatchRMCCall(CallMethodOperation* pContext) {
	return _DOC_ROOT_ROOTDO::DispatchRMCCall(pContext);
}

bool _DOC_DOTalker::DispatchRMCResult(RMCContext* pContext) {
	return _DOC_ROOT_ROOTDO::DispatchRMCResult(pContext);
}


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


_DO_DOTalker::_DO_DOTalker()  {_DO_InitDO(DOTalker);}

_DO_ImplementSomeGeneralMethods(DOTalker);



void _DO_DOTalker::RegisterDatasets() {
	_DO_RegisterDataset(d_props);
}

void _DO_DOTalker::SpecificAddDSToDiscoveryMessage(Message* pMsg, Station* pStation) {
	_DO_DSAddToDiscovery(d_props,pStation,1);
	ROOT_ROOTDO::SpecificAddDSToDiscoveryMessage(pMsg, pStation);
}

void _DO_DOTalker::SpecificExtractDSFromDiscoveryMessage(Message* pMsg) {
	_DO_DSExtractFromDiscovery(d_props,1);
	ROOT_ROOTDO::SpecificExtractDSFromDiscoveryMessage(pMsg);
}

void _DO_DOTalker::CallOperationOnDatasets(DOOperation* pOperation, Operation::Event eEvent) {
	_DO_CallOperationOnDataset(d_props,1);
	ROOT_ROOTDO::CallOperationOnDatasets(pOperation,eEvent);
}

bool _DO_DOTalker::SpecificUpdate(DataSet *pDataset, const Time& tUpdateTime) {
	_DO_DatasetUpdate(d_props,1);
	return ROOT_ROOTDO::SpecificUpdate(pDataset, tUpdateTime);
}

bool _DO_DOTalker::SpecificRefresh(DataSet *pDataset, const Time& tRefreshTime) {
	_DO_DataSetRefresh(d_props);
	return ROOT_ROOTDO::SpecificRefresh(pDataset, tRefreshTime);
}

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

	switch (byDatasetIndex) {
		_DO_DSExtract(d_props,1);
	}
	return ROOT_ROOTDO::SpecificExtractADataset(pMsg, byDatasetIndex);
}

END_NAMESPACE_QUAZAL;
