00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #ifndef __UAPI__REFCOUNTER
00021 #define __UAPI__REFCOUNTER
00022 
00023 #include "exports.h"
00024 #include "types.h"
00025 #include "ReturnCode.h"
00026 
00027 
00028 namespace android
00029 {
00030   namespace speech
00031   {
00032     namespace recognition
00033     {
00034       namespace utilities
00035       {
00040         class UAPI_EXPORT RefCounter
00041         {
00042           public:
00050             RefCounter(void* object, bool loggingAllowed, ReturnCode::Type& returnCode);
00051             virtual ~RefCounter();
00052             
00059             virtual ARRAY_LIMIT increment(ReturnCode::Type& returnCode);
00060             
00067             virtual ARRAY_LIMIT decrement(ReturnCode::Type& returnCode);
00068             
00074             ARRAY_LIMIT getCount() const;
00075             
00079             void* getObject() const;
00080             
00086             bool isLoggingAllowed() const;
00087           protected:
00091             ARRAY_LIMIT count;
00095             void* object;
00096             
00097             bool loggingAllowed;
00098         };
00099       }
00100     }
00101   }
00102 }
00103 
00104 #endif