Home | History | Annotate | Download | only in include
      1 /*---------------------------------------------------------------------------*
      2  *  ESR_SessionTypeImpl.h  *
      3  *                                                                           *
      4  *  Copyright 2007, 2008 Nuance Communciations, Inc.                               *
      5  *                                                                           *
      6  *  Licensed under the Apache License, Version 2.0 (the 'License');          *
      7  *  you may not use this file except in compliance with the License.         *
      8  *                                                                           *
      9  *  You may obtain a copy of the License at                                  *
     10  *      http://www.apache.org/licenses/LICENSE-2.0                           *
     11  *                                                                           *
     12  *  Unless required by applicable law or agreed to in writing, software      *
     13  *  distributed under the License is distributed on an 'AS IS' BASIS,        *
     14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
     15  *  See the License for the specific language governing permissions and      *
     16  *  limitations under the License.                                           *
     17  *                                                                           *
     18  *---------------------------------------------------------------------------*/
     19 
     20 #ifndef __ESR_SESSIONTYPEIMPL_H
     21 #define __ESR_SESSIONTYPEIMPL_H
     22 
     23 
     24 
     25 #include "ArrayList.h"
     26 #include "ESR_ReturnCode.h"
     27 #include "ESR_SessionType.h"
     28 #include "ESR_SharedPrefix.h"
     29 #include "HashMap.h"
     30 #include "pstdio.h"
     31 
     32 
     33 /**
     34  * ESR_SessionType implementation data.
     35  */
     36 typedef struct ESR_SessionTypeData_t
     37 {
     38   /**
     39    * [key, value] pairs.
     40    */
     41   HashMap* value;
     42 
     43   /**
     44    * Event listeners.
     45    */
     46   ArrayList* listeners;
     47 }
     48 ESR_SessionTypeData;
     49 
     50 typedef struct ESR_SessionTypePair_t
     51 {
     52   /**
     53    * Pointer to value.
     54    */
     55   void* value;
     56   /**
     57    * Value type.
     58    */
     59   VariableTypes type;
     60 }
     61 ESR_SessionPair;
     62 
     63 /**
     64  * Default implementation.
     65  */
     66 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetPropertyImpl(ESR_SessionType* self,
     67     const LCHAR* name,
     68     void** value,
     69     VariableTypes type);
     70 /**
     71  * Default implementation.
     72  */
     73 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetIntImpl(ESR_SessionType* self,
     74     const LCHAR* name,
     75     int* value);
     76 /**
     77  * Default implementation.
     78  */
     79 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetUint16_tImpl(ESR_SessionType* self,
     80     const LCHAR* name,
     81     asr_uint16_t* value);
     82 /**
     83  * Default implementation.
     84  */
     85 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetSize_tImpl(ESR_SessionType* self,
     86     const LCHAR* name,
     87     size_t* value);
     88 /**
     89  * Default implementation.
     90  */
     91 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetFloatImpl(ESR_SessionType* self,
     92     const LCHAR* name,
     93     float* value);
     94 /**
     95  * Default implementation.
     96  */
     97 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetBoolImpl(ESR_SessionType* self,
     98     const LCHAR* name,
     99     ESR_BOOL* value);
    100 /**
    101  * Default implementation.
    102  */
    103 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetLCHARImpl(ESR_SessionType* self,
    104     const LCHAR* name,
    105     LCHAR* value, size_t* len);
    106 /**
    107  * Default implementation.
    108  */
    109 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeContainsImpl(ESR_SessionType* self,
    110     const LCHAR* name,
    111     ESR_BOOL* exists);
    112 /**
    113  * Default implementation.
    114  */
    115 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetPropertyImpl(ESR_SessionType* self,
    116     const LCHAR* name,
    117     void* value, VariableTypes type);
    118 /**
    119  * Default implementation.
    120  */
    121 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetIntImpl(ESR_SessionType* self,
    122     const LCHAR* name,
    123     int value);
    124 /**
    125  * Default implementation.
    126  */
    127 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetUint16_tImpl(ESR_SessionType* self,
    128     const LCHAR* name,
    129     asr_uint16_t value);
    130 /**
    131  * Default implementation.
    132  */
    133 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetSize_tImpl(ESR_SessionType* self,
    134     const LCHAR* name,
    135     size_t value);
    136 /**
    137  * Default implementation.
    138  */
    139 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetFloatImpl(ESR_SessionType* self,
    140     const LCHAR* name,
    141     float value);
    142 /**
    143  * Default implementation.
    144  */
    145 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetBoolImpl(ESR_SessionType* self,
    146     const LCHAR* name,
    147     ESR_BOOL value);
    148 /**
    149  * Default implementation.
    150  */
    151 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetLCHARImpl(ESR_SessionType* self,
    152     const LCHAR* name,
    153     LCHAR* value);
    154 /**
    155  * Default implementation.
    156  */
    157 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetIntIfEmptyImpl(ESR_SessionType* self,
    158     const LCHAR* name,
    159     int value);
    160 /**
    161  * Default implementation.
    162  */
    163 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetUint16_tIfEmptyImpl(ESR_SessionType* self,
    164     const LCHAR* name,
    165     asr_uint16_t value);
    166 /**
    167  * Default implementation.
    168  */
    169 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetSize_tIfEmptyImpl(ESR_SessionType* self,
    170     const LCHAR* name,
    171     size_t value);
    172 /**
    173  * Default implementation.
    174  */
    175 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetFloatIfEmptyImpl(ESR_SessionType* self,
    176     const LCHAR* name,
    177     float value);
    178 /**
    179  * Default implementation.
    180  */
    181 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetBoolIfEmptyImpl(ESR_SessionType* self,
    182     const LCHAR* name,
    183     ESR_BOOL value);
    184 /**
    185  * Default implementation.
    186  */
    187 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetLCHARIfEmptyImpl(ESR_SessionType* self,
    188     const LCHAR* name,
    189     LCHAR* value);
    190 /**
    191  * Default implementation.
    192  */
    193 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeRemovePropertyImpl(ESR_SessionType* self,
    194     const LCHAR* name);
    195 /**
    196  * Default implementation.
    197  */
    198 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeRemoveAndFreePropertyImpl(ESR_SessionType* self,
    199     const LCHAR* name);
    200 /**
    201  * Default implementation.
    202  */
    203 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeImportCommandLineImpl(ESR_SessionType* self,
    204     int argc,
    205     LCHAR* argv[]);
    206 /**
    207  * Default implementation.
    208  */
    209 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeImportSessionImpl(ESR_SessionType* self,
    210     ESR_SessionType* source);
    211 /**
    212  * Default implementation.
    213  */
    214 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetSizeImpl(ESR_SessionType* self,
    215     size_t* size);
    216 /**
    217  * Default implementation.
    218  */
    219 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetKeyAtIndexImpl(ESR_SessionType* self,
    220     size_t index,
    221     LCHAR** key);
    222 /**
    223  * Default implementation.
    224  */
    225 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeDestroyImpl(ESR_SessionType* self);
    226 /**
    227  * Default implementation.
    228  */
    229 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeConvertToIntImpl(ESR_SessionType* self,
    230     const LCHAR* key);
    231 /**
    232  * Default implementation.
    233  */
    234 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeConvertToUint16_tImpl(ESR_SessionType* self,
    235     const LCHAR* key);
    236 /**
    237  * Default implementation.
    238  */
    239 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeConvertToSize_tImpl(ESR_SessionType* self,
    240     const LCHAR* key);
    241 /**
    242  * Default implementation.
    243  */
    244 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeConvertToFloatImpl(ESR_SessionType* self,
    245     const LCHAR* key);
    246 /**
    247  * Default implementation.
    248  */
    249 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeConvertToBoolImpl(ESR_SessionType* self,
    250     const LCHAR* key);
    251 /**
    252  * Default implementation.
    253  */
    254 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetPropertyTypeImpl(ESR_SessionType* self,
    255     const LCHAR* name,
    256     VariableTypes* type);
    257 /**
    258  * Default implementation.
    259  */
    260 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeImportParFileImpl(ESR_SessionType* self,
    261     const LCHAR* filename);
    262 
    263 /**
    264  * Default implementation.
    265  */
    266 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeAddListenerImpl(ESR_SessionType* self,
    267     ESR_SessionTypeListenerPair* listener);
    268 
    269 /**
    270  * Default implementation.
    271  */
    272 ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeRemoveListenerImpl(ESR_SessionType* self,
    273     ESR_SessionTypeListenerPair* listener);
    274 
    275 #endif /* __ESR_SESSIONTYPEIMPL_H */
    276