RefCounter.h

00001 /*---------------------------------------------------------------------------*
00002  *  RefCounter.h                                                             *
00003  *                                                                           *
00004  *  Copyright 2007 Nuance Communciations, Inc.                               *
00005  *                                                                           *
00006  *  Licensed under the Apache License, Version 2.0 (the 'License');          *
00007  *  you may not use this file except in compliance with the License.         *
00008  *                                                                           *
00009  *  You may obtain a copy of the License at                                  *
00010  *      http://www.apache.org/licenses/LICENSE-2.0                           *
00011  *                                                                           *
00012  *  Unless required by applicable law or agreed to in writing, software      *
00013  *  distributed under the License is distributed on an 'AS IS' BASIS,        *
00014  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
00015  *  See the License for the specific language governing permissions and      *
00016  *  limitations under the License.                                           *
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

Generated on Thu May 1 17:16:37 2008 for UAPI by  doxygen 1.5.3