blob: 261d15af83835ceb1caec354e44f33683a03e7e6 [file] [log] [blame]
/*---------------------------------------------------------------------------*
* ESR_SessionTypeImpl.h *
* *
* Copyright 2007, 2008 Nuance Communciations, Inc. *
* *
* Licensed under the Apache License, Version 2.0 (the 'License'); *
* you may not use this file except in compliance with the License. *
* *
* You may obtain a copy of the License at *
* http://www.apache.org/licenses/LICENSE-2.0 *
* *
* Unless required by applicable law or agreed to in writing, software *
* distributed under the License is distributed on an 'AS IS' BASIS, *
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
* See the License for the specific language governing permissions and *
* limitations under the License. *
* *
*---------------------------------------------------------------------------*/
#ifndef __ESR_SESSIONTYPEIMPL_H
#define __ESR_SESSIONTYPEIMPL_H
#include "ArrayList.h"
#include "ESR_ReturnCode.h"
#include "ESR_SessionType.h"
#include "ESR_SharedPrefix.h"
#include "HashMap.h"
#include "pstdio.h"
/**
* ESR_SessionType implementation data.
*/
typedef struct ESR_SessionTypeData_t
{
/**
* [key, value] pairs.
*/
HashMap* value;
/**
* Event listeners.
*/
ArrayList* listeners;
}
ESR_SessionTypeData;
typedef struct ESR_SessionTypePair_t
{
/**
* Pointer to value.
*/
void* value;
/**
* Value type.
*/
VariableTypes type;
}
ESR_SessionPair;
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetPropertyImpl(ESR_SessionType* self,
const LCHAR* name,
void** value,
VariableTypes type);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetIntImpl(ESR_SessionType* self,
const LCHAR* name,
int* value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetUint16_tImpl(ESR_SessionType* self,
const LCHAR* name,
asr_uint16_t* value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetSize_tImpl(ESR_SessionType* self,
const LCHAR* name,
size_t* value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetFloatImpl(ESR_SessionType* self,
const LCHAR* name,
float* value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetBoolImpl(ESR_SessionType* self,
const LCHAR* name,
ESR_BOOL* value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetLCHARImpl(ESR_SessionType* self,
const LCHAR* name,
LCHAR* value, size_t* len);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeContainsImpl(ESR_SessionType* self,
const LCHAR* name,
ESR_BOOL* exists);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetPropertyImpl(ESR_SessionType* self,
const LCHAR* name,
void* value, VariableTypes type);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetIntImpl(ESR_SessionType* self,
const LCHAR* name,
int value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetUint16_tImpl(ESR_SessionType* self,
const LCHAR* name,
asr_uint16_t value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetSize_tImpl(ESR_SessionType* self,
const LCHAR* name,
size_t value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetFloatImpl(ESR_SessionType* self,
const LCHAR* name,
float value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetBoolImpl(ESR_SessionType* self,
const LCHAR* name,
ESR_BOOL value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetLCHARImpl(ESR_SessionType* self,
const LCHAR* name,
LCHAR* value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetIntIfEmptyImpl(ESR_SessionType* self,
const LCHAR* name,
int value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetUint16_tIfEmptyImpl(ESR_SessionType* self,
const LCHAR* name,
asr_uint16_t value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetSize_tIfEmptyImpl(ESR_SessionType* self,
const LCHAR* name,
size_t value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetFloatIfEmptyImpl(ESR_SessionType* self,
const LCHAR* name,
float value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetBoolIfEmptyImpl(ESR_SessionType* self,
const LCHAR* name,
ESR_BOOL value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeSetLCHARIfEmptyImpl(ESR_SessionType* self,
const LCHAR* name,
LCHAR* value);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeRemovePropertyImpl(ESR_SessionType* self,
const LCHAR* name);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeRemoveAndFreePropertyImpl(ESR_SessionType* self,
const LCHAR* name);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeImportCommandLineImpl(ESR_SessionType* self,
int argc,
LCHAR* argv[]);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeImportSessionImpl(ESR_SessionType* self,
ESR_SessionType* source);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetSizeImpl(ESR_SessionType* self,
size_t* size);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetKeyAtIndexImpl(ESR_SessionType* self,
size_t index,
LCHAR** key);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeDestroyImpl(ESR_SessionType* self);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeConvertToIntImpl(ESR_SessionType* self,
const LCHAR* key);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeConvertToUint16_tImpl(ESR_SessionType* self,
const LCHAR* key);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeConvertToSize_tImpl(ESR_SessionType* self,
const LCHAR* key);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeConvertToFloatImpl(ESR_SessionType* self,
const LCHAR* key);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeConvertToBoolImpl(ESR_SessionType* self,
const LCHAR* key);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeGetPropertyTypeImpl(ESR_SessionType* self,
const LCHAR* name,
VariableTypes* type);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeImportParFileImpl(ESR_SessionType* self,
const LCHAR* filename);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeAddListenerImpl(ESR_SessionType* self,
ESR_SessionTypeListenerPair* listener);
/**
* Default implementation.
*/
ESR_SHARED_API ESR_ReturnCode ESR_SessionTypeRemoveListenerImpl(ESR_SessionType* self,
ESR_SessionTypeListenerPair* listener);
#endif /* __ESR_SESSIONTYPEIMPL_H */