networkcontrol/qoslib/src/flowspec.cpp
changeset 0 af10295192d8
equal deleted inserted replaced
-1:000000000000 0:af10295192d8
       
     1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 #include "qoslib.h"
       
    17 #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
       
    18 #include <networking/qoslib_internal.h>
       
    19 #endif
       
    20 
       
    21 /* 
       
    22  * These methods are valid for Symbian OS 9.0 and onwards.
       
    23  */ 
       
    24 /**
       
    25 Default constructor.
       
    26  
       
    27 @publishedPartner
       
    28 @released
       
    29 @capability NetworkServices Restrict QoS operations in similar way as 
       
    30 normal socket operations.
       
    31 */
       
    32 EXPORT_C CQoSParameters::CQoSParameters()
       
    33     {
       
    34     iExtensionList.SetOffset(_FOFF(CExtensionBase, iLink));
       
    35     }
       
    36 
       
    37 /**
       
    38 Destructor.
       
    39   
       
    40 Deletes all extensions.
       
    41  
       
    42 @publishedPartner
       
    43 @released
       
    44 @capability NetworkServices Restrict QoS operations in similar way as 
       
    45 normal socket operations.
       
    46 */
       
    47 EXPORT_C CQoSParameters::~CQoSParameters()
       
    48     {
       
    49     TQoSExtensionQueueIter iter(iExtensionList);
       
    50     CExtensionBase *extension;
       
    51 
       
    52     while ((extension = iter++) != NULL)
       
    53         {
       
    54         iExtensionList.Remove(*extension);
       
    55         delete extension;
       
    56         }
       
    57     }
       
    58 
       
    59 /** 
       
    60 Copies the parameters and extensions from aFlowSpec into this object.
       
    61 
       
    62 Any existing extensions are deleted.
       
    63 
       
    64 @publishedPartner
       
    65 @released
       
    66 @capability NetworkServices Restrict QoS operations in similar way as 
       
    67 normal socket operations.
       
    68 @param aFlowSpec Contains the CQoSParameters object that is copied into this 
       
    69 object.
       
    70 @leave If there is no memory available for extensions. 
       
    71 */
       
    72 EXPORT_C void CQoSParameters::CopyL(CQoSParameters& aFlowSpec)
       
    73     {
       
    74     TQoSExtensionQueueIter iter_old(iExtensionList);
       
    75     TQoSExtensionQueueIter iter(aFlowSpec.Extensions());
       
    76     CExtensionBase *ext;
       
    77 
       
    78     // Delete old extensions
       
    79     while ((ext = iter_old++) != NULL)
       
    80         {
       
    81         iExtensionList.Remove(*ext);
       
    82         delete ext;
       
    83         }
       
    84 
       
    85     // Add new extensions
       
    86     while ((ext = iter++) != NULL)
       
    87         {
       
    88         AddExtensionL(*ext);
       
    89         }
       
    90     iQoS = aFlowSpec.iQoS;
       
    91     }
       
    92 
       
    93 // Keep private copy of extensions
       
    94 /**
       
    95 Copies the extension into the list of extensions. 
       
    96 
       
    97 If there already exists an extension with the same type, it is replaced.
       
    98 
       
    99 @publishedPartner
       
   100 @released
       
   101 @capability NetworkServices Restrict QoS operations in similar way as 
       
   102 normal socket operations.
       
   103 @param aExtension The extension that is added to the list of extenstions.
       
   104 @leave If there is no memory available for the extension.
       
   105 @return KErrNone, always. 
       
   106 */
       
   107 EXPORT_C TInt CQoSParameters::AddExtensionL(CExtensionBase& aExtension)
       
   108     {
       
   109     CExtensionBase *ext = FindExtension(aExtension.Type());
       
   110     if (ext)
       
   111         {
       
   112         ext->Copy(aExtension);
       
   113         }
       
   114     else
       
   115         {
       
   116         ext = aExtension.CreateL();
       
   117         ext->Copy(aExtension);
       
   118         iExtensionList.AddLast(*ext);
       
   119         }
       
   120     return KErrNone;
       
   121     }
       
   122 
       
   123 
       
   124 /**
       
   125 Removes the extension with the specified extension type from the list of 
       
   126 extensions.
       
   127 
       
   128 @publishedPartner
       
   129 @released
       
   130 @capability NetworkServices Restrict QoS operations in similar way as 
       
   131 normal socket operations.
       
   132 @param aType The type of extension to be removed from the list of extensions.
       
   133 @return KErrNone, if the extension is found; otherwise, KErrNotFound. 
       
   134 */
       
   135 EXPORT_C TInt CQoSParameters::RemoveExtension(TInt aType)
       
   136     {
       
   137     CExtensionBase *extension = FindExtension(aType);
       
   138     if (!extension)
       
   139         {
       
   140         return KErrNotFound;
       
   141         }
       
   142     iExtensionList.Remove(*extension);
       
   143     delete extension;
       
   144     return KErrNone;
       
   145     }
       
   146 
       
   147 /**
       
   148 Gets an extension with the specified extension type.
       
   149 
       
   150 @publishedPartner
       
   151 @released
       
   152 @capability NetworkServices Restrict QoS operations in similar way as 
       
   153 normal socket operations.
       
   154 @param aType The type of extension that is to be searched for from the list 
       
   155 of extensions.
       
   156 @return A pointer to an extension if the extension is found, otherwise NULL. 
       
   157 */
       
   158 EXPORT_C CExtensionBase* CQoSParameters::FindExtension(TInt aType)
       
   159     {
       
   160     TQoSExtensionQueueIter iter(iExtensionList);
       
   161     CExtensionBase *ext;
       
   162 
       
   163     while ((ext = iter++) != NULL) 
       
   164         {
       
   165         if (ext->Type() == aType)
       
   166             {
       
   167             return ext;
       
   168             }
       
   169         }
       
   170     return NULL;
       
   171     }
       
   172 
       
   173 /**
       
   174 Gets a list of extensions that have been added to this object.
       
   175 
       
   176 @publishedPartner
       
   177 @released
       
   178 @capability NetworkServices Restrict QoS operations in similar way as 
       
   179 normal socket operations.
       
   180 @return A list of extensions. 
       
   181 */
       
   182 EXPORT_C TQoSExtensionQueue& CQoSParameters::Extensions()
       
   183     {
       
   184     return iExtensionList;
       
   185     }
       
   186 
       
   187 /**
       
   188 Gets the bandwidth for uplink direction. 
       
   189  
       
   190 Bandwidth defines the requested transfer rate that the application requests.
       
   191 
       
   192 @publishedPartner
       
   193 @released
       
   194 @capability NetworkServices Restrict QoS operations in similar way as 
       
   195 normal socket operations.
       
   196 @return Current bandwidth for uplink direction (in bytes/second). 
       
   197 */
       
   198 EXPORT_C TInt CQoSParameters::GetUplinkBandwidth() const
       
   199     {
       
   200     return iQoS.GetUplinkBandwidth();
       
   201     }
       
   202 
       
   203 /**
       
   204 Gets the maximum burst size for uplink direction. 
       
   205  
       
   206 Maximum burst size defines the burst size that the application might send.
       
   207 
       
   208 @publishedPartner
       
   209 @released
       
   210 @capability NetworkServices Restrict QoS operations in similar way as 
       
   211 normal socket operations.
       
   212 @return Current maximum burst size for uplink direction (in bytes). 
       
   213 */
       
   214 EXPORT_C TInt CQoSParameters::GetUpLinkMaximumBurstSize() const
       
   215     {
       
   216     return iQoS.GetUpLinkMaximumBurstSize();
       
   217     }
       
   218 
       
   219 /**
       
   220 Gets the maximum packet size for uplink direction.
       
   221 
       
   222 @publishedPartner
       
   223 @released
       
   224 @capability NetworkServices Restrict QoS operations in similar way as 
       
   225 normal socket operations.
       
   226 @return Current maximum packet size for uplink direction (in bytes). 
       
   227 */
       
   228 EXPORT_C TInt CQoSParameters::GetUpLinkMaximumPacketSize() const
       
   229     {
       
   230     return iQoS.GetUpLinkMaximumPacketSize();
       
   231     }
       
   232 
       
   233 /**
       
   234 Gets the average packet size for uplink direction. 
       
   235  
       
   236 Average packet size is used when doing traffic policing and estimating 
       
   237 effect of protocol headers.
       
   238 
       
   239 @publishedPartner
       
   240 @released
       
   241 @capability NetworkServices Restrict QoS operations in similar way as 
       
   242 normal socket operations.
       
   243 @return Current average packet size for uplink direction (in bytes). 
       
   244 */
       
   245 EXPORT_C TInt CQoSParameters::GetUpLinkAveragePacketSize() const
       
   246     {
       
   247     return iQoS.GetUpLinkAveragePacketSize();
       
   248     }
       
   249 
       
   250 /**
       
   251 Gets the delay for uplink direction.
       
   252 
       
   253 @publishedPartner
       
   254 @released
       
   255 @capability NetworkServices Restrict QoS operations in similar way as 
       
   256 normal socket operations.
       
   257 @return Currrent delay for uplink direction (in milliseconds). 
       
   258 */
       
   259 EXPORT_C TInt CQoSParameters::GetUpLinkDelay() const
       
   260     {
       
   261     return iQoS.GetUpLinkDelay();
       
   262     }
       
   263 
       
   264 /**
       
   265 Gets the priority for uplink direction. 
       
   266  
       
   267 Priority can be used to prioritise between traffic flows inside the terminal.
       
   268 
       
   269 @publishedPartner
       
   270 @released
       
   271 @capability NetworkServices Restrict QoS operations in similar way as 
       
   272 normal socket operations.
       
   273 @return Current priority for uplink direction: 0 is the highest priority, 
       
   274 7 is lowest. 
       
   275 */
       
   276 EXPORT_C TInt CQoSParameters::GetUpLinkPriority() const
       
   277     {
       
   278     return iQoS.GetUpLinkPriority();
       
   279     }
       
   280 
       
   281 /**
       
   282 Gets the bandwidth for downlink direction. 
       
   283  
       
   284 Bandwidth defines the requested transfer rate that the application requests.
       
   285 
       
   286 @publishedPartner
       
   287 @released
       
   288 @capability NetworkServices Restrict QoS operations in similar way as 
       
   289 normal socket operations.
       
   290 @return Current bandwidth for downlink direction (in bytes/second). 
       
   291 */
       
   292 EXPORT_C TInt CQoSParameters::GetDownlinkBandwidth() const
       
   293     {
       
   294     return iQoS.GetDownlinkBandwidth();
       
   295     }
       
   296 
       
   297 /**
       
   298 Gets the maximum burst size for downlink direction. 
       
   299  
       
   300 Maximum burst size defines the burst size that the application might send.
       
   301 
       
   302 @publishedPartner
       
   303 @released
       
   304 @capability NetworkServices Restrict QoS operations in similar way as 
       
   305 normal socket operations.
       
   306 @return Current maximum burst size for downlink direction (in bytes). 
       
   307 */
       
   308 EXPORT_C TInt CQoSParameters::GetDownLinkMaximumBurstSize() const
       
   309     {
       
   310     return iQoS.GetDownLinkMaximumBurstSize();
       
   311     }
       
   312 
       
   313 /**
       
   314 Gets the maximum packet size for downlink direction.
       
   315 
       
   316 @publishedPartner
       
   317 @released
       
   318 @capability NetworkServices Restrict QoS operations in similar way as 
       
   319 normal socket operations.
       
   320 @return Current maximum packet size for downlink direction (in bytes). 
       
   321 */
       
   322 EXPORT_C TInt CQoSParameters::GetDownLinkMaximumPacketSize() const
       
   323     {
       
   324     return iQoS.GetDownLinkMaximumPacketSize();
       
   325     }
       
   326 
       
   327 /**
       
   328 Gets the average packet size for downlink direction. 
       
   329  
       
   330 Average packet size is used when doing traffic policing and estimating 
       
   331 effect of protocol headers.
       
   332 
       
   333 @publishedPartner
       
   334 @released
       
   335 @capability NetworkServices Restrict QoS operations in similar way as 
       
   336 normal socket operations.
       
   337 @return Current average packet size for downlink direction (in bytes). 
       
   338 */
       
   339 EXPORT_C TInt CQoSParameters::GetDownLinkAveragePacketSize() const
       
   340     {
       
   341     return iQoS.GetDownLinkAveragePacketSize();
       
   342     }
       
   343 
       
   344 /**
       
   345 Gets the delay for downlink direction.
       
   346 
       
   347 @publishedPartner
       
   348 @released
       
   349 @capability NetworkServices Restrict QoS operations in similar way as 
       
   350 normal socket operations.
       
   351 @return Currrent delay for downlink direction (in milliseconds). 
       
   352 */
       
   353 EXPORT_C TInt CQoSParameters::GetDownLinkDelay() const
       
   354     {
       
   355     return iQoS.GetDownLinkDelay();
       
   356     }
       
   357 
       
   358 /**
       
   359 Gets the priority for downlink direction. 
       
   360  
       
   361 Priority can be used to prioritise between traffic flows inside the terminal.
       
   362 
       
   363 @publishedPartner
       
   364 @released
       
   365 @capability NetworkServices Restrict QoS operations in similar way as 
       
   366 normal socket operations.
       
   367 @return Current priority for downlink direction: 0 is the highest priority, 
       
   368 7 is lowest. 
       
   369 */
       
   370 EXPORT_C TInt CQoSParameters::GetDownLinkPriority() const
       
   371     {
       
   372     return iQoS.GetDownLinkPriority();
       
   373     }
       
   374 
       
   375 /**
       
   376 Sets the bandwidth for uplink direction. 
       
   377  
       
   378 Bandwidth defines the requested transfer rate that the application requests.
       
   379 Bandwidth must be > 0.
       
   380 
       
   381 @publishedPartner
       
   382 @released
       
   383 @capability NetworkServices Restrict QoS operations in similar way as 
       
   384 normal socket operations.
       
   385 @param aBandwidth Value (in bytes/second) to which to set the bandwidth for 
       
   386 uplink direction. 
       
   387 */
       
   388 EXPORT_C void CQoSParameters::SetUplinkBandwidth(TInt aBandwidth)
       
   389     {
       
   390     iQoS.SetUplinkBandwidth(aBandwidth);
       
   391     }
       
   392 
       
   393 /**
       
   394 Sets the maximum burst size for uplink direction. 
       
   395  
       
   396 Maximum burst size defines the burst size that the application might send. 
       
   397 Maximum burst size must be > 0.
       
   398 
       
   399 @publishedPartner
       
   400 @released
       
   401 @capability NetworkServices Restrict QoS operations in similar way as 
       
   402 normal socket operations.
       
   403 @param aSize Value (in bytes) to which to set the maximum burst size for 
       
   404 uplink direction. 
       
   405 */
       
   406 EXPORT_C void CQoSParameters::SetUpLinkMaximumBurstSize(TInt aSize)
       
   407     {
       
   408     iQoS.SetUpLinkMaximumBurstSize(aSize);
       
   409     }
       
   410 
       
   411 /**
       
   412 Sets the maximum packet size for uplink direction.
       
   413 
       
   414 @publishedPartner
       
   415 @released
       
   416 @capability NetworkServices Restrict QoS operations in similar way as 
       
   417 normal socket operations.
       
   418 @param aMaxSize Value (in bytes) to which to set the maximum packet size for 
       
   419 uplink direction. 
       
   420 */
       
   421 EXPORT_C void CQoSParameters::SetUpLinkMaximumPacketSize(TInt aMaxSize)
       
   422     {
       
   423     iQoS.SetUpLinkMaximumPacketSize(aMaxSize);
       
   424     }
       
   425 
       
   426 /**
       
   427 Sets the average packet size for uplink direction. 
       
   428  
       
   429 Average packet size is used when doing traffic policing and estimating 
       
   430 effect of protocol headers. The average packet size must be <= maximum 
       
   431 packet size.
       
   432 
       
   433 @publishedPartner
       
   434 @released
       
   435 @capability NetworkServices Restrict QoS operations in similar way as 
       
   436 normal socket operations.
       
   437 @param aSize Value (in bytes) to which to set the average packet size 
       
   438 for uplink direction. 
       
   439 */
       
   440 EXPORT_C void CQoSParameters::SetUpLinkAveragePacketSize(TInt aSize)
       
   441     {
       
   442     iQoS.SetUpLinkAveragePacketSize(aSize);
       
   443     }
       
   444 
       
   445 /**
       
   446 Sets the requested delay for uplink direction.
       
   447 
       
   448 @publishedPartner
       
   449 @released
       
   450 @capability NetworkServices Restrict QoS operations in similar way as 
       
   451 normal socket operations.
       
   452 @param aDelay Value (in milliseconds) to which to set the delay for uplink 
       
   453 direction. 
       
   454 */
       
   455 EXPORT_C void CQoSParameters::SetUpLinkDelay(TInt aDelay)
       
   456     {
       
   457     iQoS.SetUpLinkDelay(aDelay);
       
   458     }
       
   459 
       
   460 /**
       
   461 Sets the priority for uplink direction. 
       
   462  
       
   463 Priority can be used to prioritise between traffic flows inside the terminal.
       
   464 
       
   465 @publishedPartner
       
   466 @released
       
   467 @capability NetworkServices Restrict QoS operations in similar way as 
       
   468 normal socket operations.
       
   469 @param aPriority Value (0-7) to which to set the priority for uplink 
       
   470 direction: 0 is the highest priority, 7 is lowest. 
       
   471 */
       
   472 EXPORT_C void CQoSParameters::SetUpLinkPriority(TInt aPriority)
       
   473     {
       
   474     iQoS.SetUpLinkPriority(aPriority);
       
   475     }
       
   476 
       
   477 /**
       
   478 Sets the bandwidth for downlink direction. 
       
   479  
       
   480 Bandwidth defines the requested transfer rate that the application requests.
       
   481 Bandwidth must be > 0.
       
   482 
       
   483 @publishedPartner
       
   484 @released
       
   485 @capability NetworkServices Restrict QoS operations in similar way as 
       
   486 normal socket operations.
       
   487 @param aBandwidth Value (in bytes/second) to which to set the bandwidth for 
       
   488 downlink direction. 
       
   489 */
       
   490 EXPORT_C void CQoSParameters::SetDownlinkBandwidth(TInt aBandwidth)
       
   491     {
       
   492     iQoS.SetDownlinkBandwidth(aBandwidth);
       
   493     }
       
   494 
       
   495 /**
       
   496 Sets the maximum burst size for downlink direction. 
       
   497  
       
   498 Maximum burst size defines the burst size that the application might send. 
       
   499 Maximum burst size must be > 0.
       
   500 
       
   501 @publishedPartner
       
   502 @released
       
   503 @capability NetworkServices Restrict QoS operations in similar way as 
       
   504 normal socket operations.
       
   505 @param aSize Value (in bytes) to which to set the maximum burst size for 
       
   506 downlink direction. 
       
   507 */
       
   508 EXPORT_C void CQoSParameters::SetDownLinkMaximumBurstSize(TInt aSize)
       
   509     {
       
   510     iQoS.SetDownLinkMaximumBurstSize(aSize);
       
   511     }
       
   512 
       
   513 /**
       
   514 Sets the maximum packet size for downlink direction.
       
   515 
       
   516 @publishedPartner
       
   517 @released
       
   518 @capability NetworkServices Restrict QoS operations in similar way as 
       
   519 normal socket operations.
       
   520 @param aMaxSize Value (in bytes) to which to set the maximum packet size for 
       
   521 downlink direction. 
       
   522 */
       
   523 EXPORT_C void CQoSParameters::SetDownLinkMaximumPacketSize(TInt aMaxSize)
       
   524     {
       
   525     iQoS.SetDownLinkMaximumPacketSize(aMaxSize);
       
   526     }
       
   527 
       
   528 /**
       
   529 Sets the average packet size for downlink direction. 
       
   530  
       
   531 Average packet size is used when doing traffic policing and estimating 
       
   532 effect of protocol headers. The average packet size must be <= maximum 
       
   533 packet size.
       
   534 
       
   535 @publishedPartner
       
   536 @released
       
   537 @capability NetworkServices Restrict QoS operations in similar way as 
       
   538 normal socket operations.
       
   539 @param aSize Value (in bytes) to which to set the average packet size 
       
   540 for downlink direction. 
       
   541 */
       
   542 EXPORT_C void CQoSParameters::SetDownLinkAveragePacketSize(TInt aSize)
       
   543     {
       
   544     iQoS.SetDownLinkAveragePacketSize(aSize);
       
   545     }
       
   546 
       
   547 /**
       
   548 Sets the requested delay for downlink direction.
       
   549 
       
   550 @publishedPartner
       
   551 @released
       
   552 @capability NetworkServices Restrict QoS operations in similar way as 
       
   553 normal socket operations.
       
   554 @param aDelay Value (in milliseconds) to which to set the delay for downlink 
       
   555 direction. 
       
   556 */
       
   557 EXPORT_C void CQoSParameters::SetDownLinkDelay(TInt aDelay)
       
   558     {
       
   559     iQoS.SetDownLinkDelay(aDelay);
       
   560     }
       
   561 
       
   562 /**
       
   563 Sets the priority for downlink direction. 
       
   564  
       
   565 Priority can be used to prioritise between traffic flows inside the terminal.
       
   566 
       
   567 @publishedPartner
       
   568 @released
       
   569 @capability NetworkServices Restrict QoS operations in similar way as 
       
   570 normal socket operations.
       
   571 @param aPriority Value (0-7) to which to set the priority for downlink 
       
   572 direction: 0 is the highest priority, 7 is lowest. 
       
   573 */
       
   574 EXPORT_C void CQoSParameters::SetDownLinkPriority(TInt aPriority)
       
   575     {
       
   576     iQoS.SetDownLinkPriority(aPriority);
       
   577     }
       
   578 
       
   579 /**
       
   580 Gets the name of the flowspec.
       
   581 
       
   582 @publishedPartner
       
   583 @released
       
   584 @capability NetworkServices Restrict QoS operations in similar way as 
       
   585 normal socket operations.
       
   586 @return Current name of the flowspec. 
       
   587 */
       
   588 EXPORT_C const TName& CQoSParameters::GetName() const
       
   589     {
       
   590     return iQoS.GetName();
       
   591     }
       
   592 
       
   593 /**
       
   594 Gets the adaptation mode.
       
   595 
       
   596 @publishedPartner
       
   597 @released
       
   598 @capability NetworkServices Restrict QoS operations in similar way as 
       
   599 normal socket operations.
       
   600 @return Current value for adapt mode. 
       
   601 */
       
   602 EXPORT_C TBool CQoSParameters::AdaptMode() const
       
   603     {
       
   604     return iQoS.AdaptMode();
       
   605     }
       
   606 
       
   607 /**
       
   608 Returns the headers included mode.
       
   609 
       
   610 @publishedPartner
       
   611 @released
       
   612 @capability NetworkServices Restrict QoS operations in similar way as 
       
   613 normal socket operations.
       
   614 @return Current value for header included mode. 
       
   615 */
       
   616 EXPORT_C TBool CQoSParameters::GetHeaderMode() const
       
   617     {
       
   618     return iQoS.GetHeaderMode();
       
   619     }
       
   620 
       
   621 /** 
       
   622 Sets the name of the flowspec. 
       
   623  
       
   624 This allows application to specify a user friendly name for a flowspec.
       
   625 
       
   626 @publishedPartner
       
   627 @released
       
   628 @capability NetworkServices Restrict QoS operations in similar way as 
       
   629 normal socket operations.
       
   630 @param aName The name for the flowspec. Maximum length for the name is 
       
   631 KMaxName.
       
   632 */
       
   633 EXPORT_C void CQoSParameters::SetName(const TName& aName)
       
   634     {
       
   635     // Member variable iName was taken into use temporarily
       
   636     iName.Copy(aName);
       
   637     iQoS.SetName(aName);
       
   638     }
       
   639 
       
   640 /**
       
   641 Sets the adaptation mode. 
       
   642  
       
   643 If the application is willing to accept lower QoS than requested, 
       
   644 it should set the adapt mode on. By default adapt mode is not set.
       
   645 
       
   646 @publishedPartner
       
   647 @released
       
   648 @capability NetworkServices Restrict QoS operations in similar way as 
       
   649 normal socket operations.
       
   650 @param aCanAdapt The value for adapt mode. 
       
   651 */
       
   652 EXPORT_C void CQoSParameters::SetAdaptMode(TBool aCanAdapt)
       
   653     {
       
   654     iQoS.SetAdaptMode(aCanAdapt);
       
   655     }
       
   656 
       
   657 /**
       
   658 Sets the header mode. If the application wants QoS Framework to include 
       
   659 network and transport layer header values in bitrate calculations or not. 
       
   660 By default the mode is set to include the headers in the calculations. 
       
   661 Protocols such as RTSP or SIP, which already include the header sizes in 
       
   662 their calculations will want to alter the mode so that header values are 
       
   663 not included in calculations twice.
       
   664 
       
   665 @publishedPartner
       
   666 @released
       
   667 @capability NetworkServices Restrict QoS operations in similar way as 
       
   668 normal socket operations.
       
   669 @param aHeadersIncluded The value for header mode.
       
   670 */
       
   671 EXPORT_C void CQoSParameters::SetHeaderMode(TBool aHeadersIncluded)
       
   672     {
       
   673     iQoS.SetHeaderMode(aHeadersIncluded);
       
   674     }
       
   675 
       
   676 EXPORT_C TInt CQoSParameters::GetDownLinkDelayVariation() const
       
   677     {
       
   678     return KErrNotSupported;
       
   679     }
       
   680 
       
   681 
       
   682 EXPORT_C TInt CQoSParameters::GetUpLinkDelayVariation() const
       
   683     {
       
   684     return KErrNotSupported;
       
   685     }
       
   686 
       
   687 
       
   688 EXPORT_C void CQoSParameters::SetDownLinkDelayVariation(TInt /* aVariation */)
       
   689     {
       
   690     // This method is not yet supported
       
   691     }
       
   692 
       
   693 
       
   694 EXPORT_C void CQoSParameters::SetUpLinkDelayVariation(TInt /* aVariation */)
       
   695     {
       
   696     // This method is not yet supported
       
   697     }
       
   698 
       
   699