| // |
| // Copyright 2005 The Android Open Source Project |
| // |
| // Our collection of devices. |
| // |
| #ifndef _SIM_PHONE_COLLECTION_H |
| #define _SIM_PHONE_COLLECTION_H |
| |
| #include <stdlib.h> |
| #include "PhoneData.h" |
| |
| /* |
| * Only one instance of this class exists. It contains a list of all |
| * known devices, and methods for scanning for devices. |
| */ |
| class PhoneCollection { |
| public: |
| /* get the global instance */ |
| static PhoneCollection* GetInstance(void) { |
| if (mpInstance == NULL) |
| mpInstance = new PhoneCollection; |
| return mpInstance; |
| } |
| /* destroy the global instance when shutting down */ |
| static void DestroyInstance(void) { |
| delete mpInstance; |
| mpInstance = NULL; |
| } |
| |
| /* scan for phones in subdirectories of "directory" */ |
| void ScanForPhones(const char* directory); |
| |
| /* get phone data */ |
| int GetPhoneCount(void) const { return mPhoneList.size(); } // slow |
| PhoneData* GetPhoneData(int idx); |
| PhoneData* GetPhoneData(const char* name); |
| |
| /* layout.xml filename -- a string constant used in various places */ |
| static const char* kLayoutFile; |
| |
| private: |
| PhoneCollection(void) {} |
| ~PhoneCollection(void) {} |
| |
| /* the phone data; make this a Vector someday */ |
| android::List<PhoneData> mPhoneList; |
| |
| /* storage for global instance pointer */ |
| static PhoneCollection* mpInstance; |
| }; |
| |
| #endif // _SIM_PHONE_COLLECTION_H |