2 * Copyright (c) 2004-2007 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: An interface for objects that can be written into stream.
19 #ifndef MVPBKSTREAMABLE_H
20 #define MVPBKSTREAMABLE_H
25 // FORWARD DECLARATIONS
32 * An interface for objects that can be written into stream.
36 protected: // destructor
40 virtual ~MVPbkStreamable() { }
44 * Outputs this objects state to aStream.
46 * @param aStream A stream for writing the object state.
48 virtual void ExternalizeL( RWriteStream& aStream ) const = 0;
51 * Returns the externalized size of the object in bytes.
53 * @return The externalized size of the object.
55 virtual TInt ExternalizedSize() const = 0;
58 * Returns an extension point for this interface or NULL.
60 * @param aExtensionUid no extensions defined currently.
61 * @return An extension point for this interface or NULL.
63 virtual TAny* StreamableExtension( TUid /*aExtensionUid*/ )
68 #endif // MVPBKSTREAMABLE_H