Home | History | Annotate | Download | only in app
      1 //
      2 // Copyright 2005 The Android Open Source Project
      3 //
      4 // Our collection of devices.
      5 //
      6 #ifndef _SIM_PHONE_COLLECTION_H
      7 #define _SIM_PHONE_COLLECTION_H
      8 
      9 #include <stdlib.h>
     10 #include "PhoneData.h"
     11 
     12 /*
     13  * Only one instance of this class exists.  It contains a list of all
     14  * known devices, and methods for scanning for devices.
     15  */
     16 class PhoneCollection {
     17 public:
     18     /* get the global instance */
     19     static PhoneCollection* GetInstance(void) {
     20         if (mpInstance == NULL)
     21             mpInstance = new PhoneCollection;
     22         return mpInstance;
     23     }
     24     /* destroy the global instance when shutting down */
     25     static void DestroyInstance(void) {
     26         delete mpInstance;
     27         mpInstance = NULL;
     28     }
     29 
     30     /* scan for phones in subdirectories of "directory" */
     31     void ScanForPhones(const char* directory);
     32 
     33     /* get phone data */
     34     int GetPhoneCount(void) const { return mPhoneList.size(); } // slow
     35     PhoneData* GetPhoneData(int idx);
     36     PhoneData* GetPhoneData(const char* name);
     37 
     38     /* layout.xml filename -- a string constant used in various places */
     39     static const char* kLayoutFile;
     40 
     41 private:
     42     PhoneCollection(void) {}
     43     ~PhoneCollection(void) {}
     44 
     45     /* the phone data; make this a Vector someday */
     46     android::List<PhoneData>    mPhoneList;
     47 
     48     /* storage for global instance pointer */
     49     static PhoneCollection* mpInstance;
     50 };
     51 
     52 #endif // _SIM_PHONE_COLLECTION_H
     53