// 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 "TTLPCH.h"
#include <NetZ.h>
#include "NetZTTL/DOGlassDDL.h"
#include "NetZTTL/DOGlass.h"
BEGIN_NAMESPACE_QUAZAL;

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

_DOC_DOGlass::_DOC_DOGlass(qUnsignedInt32 uiClassID):
	DOClassTemplate<DOCLASS(DOGlass), _DOC_DOActor>(uiClassID) {
}

bool _DOC_DOGlass::IsAKindOf(DOClassID idDOCID) {
	if(DOCLASSID(DOGlass) == idDOCID) return true;
	return _DOC_DOActor::IsAKindOf(idDOCID);
}
void _DOC_DOGlass::DataSetsOperation(qUnsignedInt32 uiOp) {
	_DOC_DOActor::DataSetsOperation(uiOp);
	_DOC_RegisterProtocol(7,_PR_basic_update_protocol_protodecl( _DSDECL_DSGlassState ));
	_DOC_RegisterFilter(7,_PR_upon_request_filter_filterdecl( _DSDECL_DSGlassState ));
	_DSDECL_DSGlassState::RegisterCounters(uiOp);
};
qBool _DOC_DOGlass::FormatVariableValue(const DuplicatedObject *pDO, Variable *pDataset, Variable *pVariable, NS_QUAZAL String *pstrResult) const {
	_DOC_FormatMatchingVariableValue(DOGlass,d_state);
	return _DOC_DOActor::FormatVariableValue(pDO, pDataset, pVariable, pstrResult);
}

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

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

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


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


_DO_DOGlass::_DO_DOGlass()  {_DO_InitDO(DOGlass);}

_DO_ImplementSomeGeneralMethods(DOGlass);



void _DO_DOGlass::RegisterDatasets() {
	_DO_RegisterDataset(d_state);
}

void _DO_DOGlass::SpecificAddDSToDiscoveryMessage(Message* pMsg, Station* pStation) {
	_DO_DSAddToDiscovery(d_state,pStation,7);
	DOActor::SpecificAddDSToDiscoveryMessage(pMsg, pStation);
}

void _DO_DOGlass::SpecificExtractDSFromDiscoveryMessage(Message* pMsg) {
	_DO_DSExtractFromDiscovery(d_state,7);
	DOActor::SpecificExtractDSFromDiscoveryMessage(pMsg);
}

void _DO_DOGlass::CallOperationOnDatasets(DOOperation* pOperation, Operation::Event eEvent) {
	_DO_CallOperationOnDataset(d_state,7);
	DOActor::CallOperationOnDatasets(pOperation,eEvent);
}

bool _DO_DOGlass::SpecificUpdate(DataSet *pDataset, const Time& tUpdateTime) {
	_DO_DatasetUpdate(d_state,7);
	return DOActor::SpecificUpdate(pDataset, tUpdateTime);
}

bool _DO_DOGlass::SpecificRefresh(DataSet *pDataset, const Time& tRefreshTime) {
	_DO_DataSetRefresh(d_state);
	return DOActor::SpecificRefresh(pDataset, tRefreshTime);
}

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

	switch (byDatasetIndex) {
		_DO_DSExtract(d_state,7);
	}
	return DOActor::SpecificExtractADataset(pMsg, byDatasetIndex);
}

END_NAMESPACE_QUAZAL;
