williamr@2: // Copyright (c) 2005-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: #if (!defined TRBUF_H) williamr@2: #define TRBUF_H williamr@2: williamr@2: #include <e32base.h> williamr@2: #include <e32std.h> williamr@2: williamr@2: namespace Elements williamr@2: { williamr@2: williamr@2: class TRBuf8 : public RBuf8 williamr@2: /** williamr@2: class to provide a RBuf8 destructor williamr@2: */ williamr@2: { williamr@2: public: williamr@2: static TRBuf8* New(TInt aMaxLength) williamr@2: { williamr@2: TRBuf8* self = new TRBuf8; williamr@2: if (self!=NULL) williamr@2: { williamr@2: if (self->Create(aMaxLength)!=KErrNone) williamr@2: { williamr@2: delete self; williamr@2: self = NULL; williamr@2: } williamr@2: } williamr@2: return self; williamr@2: } williamr@2: williamr@2: static TRBuf8* NewL(TInt aMaxLength) williamr@2: { williamr@2: TRBuf8* self = new (ELeave) TRBuf8; williamr@2: CleanupStack::PushL(self); williamr@2: self->CreateL(aMaxLength); williamr@2: CleanupStack::Pop(self); williamr@2: return self; williamr@2: } williamr@2: williamr@2: ~TRBuf8() williamr@2: { williamr@2: Close(); williamr@2: } williamr@2: }; williamr@2: williamr@2: class TRBuf16 : public RBuf16 williamr@2: /** williamr@2: class to provide a RBuf16 destructor williamr@2: */ williamr@2: { williamr@2: public: williamr@2: static TRBuf16* New(TInt aMaxLength) williamr@2: { williamr@2: TRBuf16* self = new TRBuf16; williamr@2: if (self!=NULL) williamr@2: { williamr@2: if (self->Create(aMaxLength)!=KErrNone) williamr@2: { williamr@2: delete self; williamr@2: self = NULL; williamr@2: } williamr@2: } williamr@2: return self; williamr@2: } williamr@2: williamr@2: static TRBuf16* NewL(TInt aMaxLength) williamr@2: { williamr@2: TRBuf16* self = new (ELeave) TRBuf16; williamr@2: CleanupStack::PushL(self); williamr@2: self->CreateL(aMaxLength); williamr@2: CleanupStack::Pop(self); williamr@2: return self; williamr@2: } williamr@2: williamr@2: ~TRBuf16() williamr@2: { williamr@2: Close(); williamr@2: } williamr@2: }; williamr@2: williamr@2: #if defined(_UNICODE) williamr@2: typedef TRBuf16 TRBuf; williamr@2: #else williamr@2: typedef TRBuf8 TRBuf; williamr@2: #endif williamr@2: williamr@2: } //namespace Elements williamr@2: williamr@2: williamr@2: #endif //TRBUF_H