williamr@2: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: @file williamr@2: @internalTechnology williamr@2: */ williamr@2: williamr@2: williamr@2: #if !defined(NETMESSAGES_H) williamr@2: #define NETMESSAGES_H williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: #define NET_MESSAGE_DECL( _class, _uid, _type ) \ williamr@2: public: \ williamr@2: static inline _class * NewL(void) \ williamr@2: { Meta::STypeId typeId( (_uid ) , (_type) ); \ williamr@2: return static_cast< _class *>(Meta::SMetaDataECom::NewInstanceL(typeId)); } \ williamr@2: static inline _class * LoadL(TPtrC8& aDes) \ williamr@2: { return static_cast< _class *>(Meta::SMetaDataECom::LoadL(aDes)); } \ williamr@2: static inline TUid GetUid(void) { return TUid::Uid(_uid) ; } \ williamr@2: public: \ williamr@2: DATA_VTABLE williamr@2: williamr@2: namespace NetMessages williamr@2: { williamr@2: williamr@2: /** An class recognised by CWorkerThread. When a client of the root server wants to send a message to a module williamr@2: via RRootServ::SendMessage method it serialises an instance of CNetMessage based class and passes it as williamr@2: a aData parameter williamr@2: @see RRootServ::SendMessage williamr@2: @released since 9.1 williamr@2: */ williamr@2: class CMessage : public Meta::SMetaDataECom williamr@2: { williamr@2: public: williamr@2: TYPEID_TABLE williamr@2: }; williamr@2: williamr@2: } // namespace NetMessages williamr@2: #endif // NETMESSAGES_H