00001 /* 00002 * ============================================================================== 00003 * Name : LbsFields.h 00004 * Part of : Mobile Location Framework/Location FW 00005 * Interface : Location Acquisition API 00006 * Description : Position data Fields manager 00007 * Version : 00008 * 00009 * Copyright (c) 2002-2005 Nokia Corporation. 00010 * This material, including documentation and any related 00011 * computer programs, is protected by copyright controlled by 00012 * Nokia Corporation. All rights are reserved. Copying, 00013 * including reproducing, storing, adapting or translating, any 00014 * or all of this material requires the prior written consent of 00015 * Nokia Corporation. This material also contains confidential 00016 * information which may not be disclosed to others without the 00017 * prior written consent of Nokia Corporation. 00018 * ============================================================================== 00019 */ 00020 00021 #ifndef __LBSFIELDS_H__ 00022 #define __LBSFIELDS_H__ 00023 00024 #include <e32std.h> 00025 #include <LbsFieldIds.h> 00026 00039 typedef TUint16 TPositionFieldId; 00040 00045 typedef TPositionFieldId TPositionFieldIdList[]; 00046 class HPositionGenericInfo; 00047 00048 00057 class PositionFieldManager 00058 { 00059 public: 00063 enum TFieldType 00064 { 00066 EUndefined, 00068 ETInt8, 00070 ETInt16, 00072 ETInt32, 00074 ETInt64, 00076 ETUint8, 00078 ETUint16, 00080 ETUint32, 00082 ETReal32, 00084 ETReal64, 00086 ETTime, 00088 ETTimeIntervalMicroSeconds, 00090 ETDesC8, 00092 ETDesC16 00093 }; 00094 00095 friend class HPositionGenericInfo; 00096 private: 00111 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00112 TInt8 aValue, 00113 HPositionGenericInfo& aInfo); 00114 00127 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00128 TInt8& aValue, 00129 const HPositionGenericInfo& aInfo); 00130 00145 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00146 TInt16 aValue, 00147 HPositionGenericInfo& aInfo); 00148 00161 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00162 TInt16& aValue, 00163 const HPositionGenericInfo& aInfo); 00164 00179 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00180 TInt32 aValue, 00181 HPositionGenericInfo& aInfo); 00182 00195 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00196 TInt32& aValue, 00197 const HPositionGenericInfo& aInfo); 00198 00213 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00214 const TInt64& aValue, 00215 HPositionGenericInfo& aInfo); 00216 00229 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00230 TInt64& aValue, 00231 const HPositionGenericInfo& aInfo); 00232 00247 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00248 TUint8 aValue, 00249 HPositionGenericInfo& aInfo); 00250 00263 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00264 TUint8& aValue, 00265 const HPositionGenericInfo& aInfo); 00266 00281 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00282 TUint16 aValue, 00283 HPositionGenericInfo& aInfo); 00284 00297 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00298 TUint16& aValue, 00299 const HPositionGenericInfo& aInfo); 00300 00315 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00316 TUint32 aValue, 00317 HPositionGenericInfo& aInfo); 00318 00331 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00332 TUint32& aValue, 00333 const HPositionGenericInfo& aInfo); 00334 00349 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00350 TReal32 aValue, 00351 HPositionGenericInfo& aInfo); 00352 00365 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00366 TReal32& aValue, 00367 const HPositionGenericInfo& aInfo); 00368 00383 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00384 const TReal64& aValue, 00385 HPositionGenericInfo& aInfo); 00386 00399 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00400 TReal64& aValue, 00401 const HPositionGenericInfo& aInfo); 00402 00417 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00418 const TDesC8& aValue, 00419 HPositionGenericInfo& aInfo); 00420 00433 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00434 TDes8& aValue, 00435 const HPositionGenericInfo& aInfo); 00436 00451 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00452 const TDesC16& aValue, 00453 HPositionGenericInfo& aInfo); 00454 00467 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00468 TDes16& aValue, 00469 const HPositionGenericInfo& aInfo); 00470 00483 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00484 TPtrC8& aValue, 00485 const HPositionGenericInfo& aInfo); 00486 00499 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00500 TPtrC16& aValue, 00501 const HPositionGenericInfo& aInfo); 00502 00517 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00518 const TTime& aValue, 00519 HPositionGenericInfo& aInfo); 00520 00533 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00534 TTime& aValue, 00535 const HPositionGenericInfo& aInfo); 00536 00551 IMPORT_C static TInt SetValue(TPositionFieldId aFieldId, 00552 const TTimeIntervalMicroSeconds& aValue, 00553 HPositionGenericInfo& aInfo); 00554 00567 IMPORT_C static TInt GetValue(TPositionFieldId aFieldId, 00568 TTimeIntervalMicroSeconds& aValue, 00569 const HPositionGenericInfo& aInfo); 00570 }; 00571 00578 class TPositionFieldIndex 00579 { 00580 public: 00582 inline TPositionFieldIndex(); 00583 00590 inline TPositionFieldId FieldId() const; 00596 inline TUint16 FieldStartPos() const; 00603 inline PositionFieldManager::TFieldType FieldType() const; 00610 inline void SetFieldId(TPositionFieldId aFieldId); 00616 inline void SetFieldStartPos(TUint16 aFieldStartPos); 00623 inline void SetFieldType(PositionFieldManager::TFieldType aFieldType); 00624 00625 private: 00627 TPositionFieldId iFieldId; 00630 TUint16 iFieldStartPos; 00632 PositionFieldManager::TFieldType iFieldType; 00633 }; 00634 00635 //__LBSFIELDS_H__ 00636 #endif