| // | 
 | // 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 |