14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------* 24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_SessionType.h * 34a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 44a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Copyright 2007, 2008 Nuance Communciations, Inc. * 54a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 64a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the 'License'); * 74a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * you may not use this file except in compliance with the License. * 84a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 94a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * You may obtain a copy of the License at * 104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 * 114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Unless required by applicable law or agreed to in writing, software * 134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * distributed under the License is distributed on an 'AS IS' BASIS, * 144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * See the License for the specific language governing permissions and * 164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * limitations under the License. * 174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *---------------------------------------------------------------------------*/ 194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef __ESR_SESSIONTYPE_H 214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define __ESR_SESSIONTYPE_H 224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_ReturnCode.h" 264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_SharedPrefix.h" 274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_VariableTypes.h" 284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_SessionTypeListener.h" 294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "pstdio.h" 304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ptypes.h" 314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @addtogroup ESR_SessionTypeModule ESR_SessionType API functions 344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_Session interface functions. 354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @{ 374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Hashmap with helper functions for adding primitives and add-if-empty. 414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct ESR_SessionType_t 434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns session property value. 464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param type Expected variable type (for strong-typing purposes) 514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not of the specified type 524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getProperty)(struct ESR_SessionType_t* self, const LCHAR* name, void** value, VariableTypes type); 544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the type of a property value. 564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param type [out] Value type 604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null or property cannot be found 614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getPropertyType)(struct ESR_SessionType_t* self, const LCHAR* name, VariableTypes* type); 634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a int 704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getInt)(struct ESR_SessionType_t* self, const LCHAR* name, int* value); 724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a asr_uint16_t 784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getUint16_t)(struct ESR_SessionType_t* self, const LCHAR* name, asr_uint16_t* value); 804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a size_t 874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a size_t 884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getSize_t)(struct ESR_SessionType_t* self, const LCHAR* name, size_t* value); 904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a float 974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getFloat)(struct ESR_SessionType_t* self, const LCHAR* name, float* value); 994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a bool 1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getBool)(struct ESR_SessionType_t* self, const LCHAR* name, ESR_BOOL* value); 1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param len Size of value argument. If the return code is ESR_BUFFER_OVERFLOW, 1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * the required length is returned in this variable. 1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a LCHAR* 1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getLCHAR)(struct ESR_SessionType_t* self, const LCHAR* name, LCHAR* value, size_t* len); 1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Indicates if key exists in the session. 1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param exists True if key exists, false otherwise 1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null 1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*contains)(struct ESR_SessionType_t* self, const LCHAR* name, ESR_BOOL* exists); 1284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value. 1304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 1324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param type Type of value being set 1354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 1364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setProperty)(struct ESR_SessionType_t* self, const LCHAR* name, void* value, VariableTypes type); 1384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 1424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 1454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setInt)(struct ESR_SessionType_t* self, const LCHAR* name, int value); 1474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 1534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setUint16_t)(struct ESR_SessionType_t* self, const LCHAR* name, asr_uint16_t value); 1554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 1594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 1624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setSize_t)(struct ESR_SessionType_t* self, const LCHAR* name, size_t value); 1644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 1684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 1714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setFloat)(struct ESR_SessionType_t* self, const LCHAR* name, float value); 1734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 1774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 1804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setBool)(struct ESR_SessionType_t* self, const LCHAR* name, ESR_BOOL value); 1824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 1864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 1894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setLCHAR)(struct ESR_SessionType_t* self, const LCHAR* name, LCHAR* value); 1914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetInt(). 1934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 1954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 1964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 1984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 2004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 2014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setIntIfEmpty)(struct ESR_SessionType_t* self, const LCHAR* name, int value); 2034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetUint16_t(). 2054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 2074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 2084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 2114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 2124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setUint16_tIfEmpty)(struct ESR_SessionType_t* self, const LCHAR* name, asr_uint16_t value); 2144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetSize_t(). 2164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 2184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 2194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 2214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 2234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 2244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setSize_tIfEmpty)(struct ESR_SessionType_t* self, const LCHAR* name, size_t value); 2264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetFloat(). 2284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 2304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 2314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 2334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 2354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 2364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setFloatIfEmpty)(struct ESR_SessionType_t* self, const LCHAR* name, float value); 2384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetBool(). 2404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 2424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 2434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 2454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 2474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 2484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setBoolIfEmpty)(struct ESR_SessionType_t* self, const LCHAR* name, ESR_BOOL value); 2504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetLCHAR(). 2524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 2544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 2554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 2574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 2594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 2604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setLCHARIfEmpty)(struct ESR_SessionType_t* self, const LCHAR* name, LCHAR* value); 2624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Removes property from session. 2644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 2664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_NO_MATCH_ERROR if key cannot be found 2684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*removeProperty)(struct ESR_SessionType_t* self, const LCHAR* name); 2704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Removes and deallocates property from session. 2724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 2744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_NO_MATCH_ERROR if key cannot be found 2764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*removeAndFreeProperty)(struct ESR_SessionType_t* self, const LCHAR* name); 2784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Imports commandline arguments into the system session. 2804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Keys are imported as "cmdline.[name]" where [name] is the name of the command-line argument 2824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Values are set in char* format. 2834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * For example, given the argument "-timer=5", the following key will be added to the session: 2854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ["cmdline.timer", "5"] 2864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Validation is left up to the application. 2884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the session contains a key that is clobbered by the parser, the old [key, value] 2904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * pair will be deallocated. For example, if the session contained 2914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ["cmdline.timer", "value"] before the aforementioned example occured, then the old 2924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * [key, value] pair will be allocated by the parser. 2934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 2954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param argc Number of arguments 2964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param argv Argument values 2974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if the system is out of memory; 2984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*importCommandLine)(struct ESR_SessionType_t* self, int argc, char* argv[]); 3004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the number of elements in the session. 3024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param size [out] Session size 3054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null 3064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getSize)(struct ESR_SessionType_t* self, size_t* size); 3084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the key associated with the specified index. 3104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param index Element index 3134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key [out] Key name 3144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_ARGUMENT_OUT_OF_BOUNDS if index is out of bounds 3154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getKeyAtIndex)(struct ESR_SessionType_t* self, size_t index, LCHAR** key); 3174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to int. 3194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 3224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a LCHAR*; ESR_OUT_OF_MEMORY if system is out of memory; 3234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_INVALID_ARGUMENT if self is null or property cannot be converted to int 3244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*convertToInt)(struct ESR_SessionType_t* self, const LCHAR* key); 3264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to asr_uint16_t. 3294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 3324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a LCHAR*; ESR_OUT_OF_MEMORY if system is out of memory; 3334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_INVALID_ARGUMENT if self is null or property cannot be converted to asr_uint16_t 3344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*convertToUint16_t)(struct ESR_SessionType_t* self, const LCHAR* key); 3364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to size_t. 3394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 3424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a LCHAR*; ESR_OUT_OF_MEMORY if system is out of memory; 3434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_INVALID_ARGUMENT if self is null or property cannot be converted to size_t 3444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*convertToSize_t)(struct ESR_SessionType_t* self, const LCHAR* key); 3464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to float. 3494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 3524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a LCHAR*; ESR_OUT_OF_MEMORY if system is out of memory; 3534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_INVALID_ARGUMENT if self is null or property cannot be converted to float 3544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*convertToFloat)(struct ESR_SessionType_t* self, const LCHAR* key); 3564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to bool. 3594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 3624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a LCHAR*; ESR_OUT_OF_MEMORY if system is out of memory; 3634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_INVALID_ARGUMENT if self is null or property cannot be converted to bool 3644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*convertToBool)(struct ESR_SessionType_t* self, const LCHAR* key); 3664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Destroys the Session. 3684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null 3714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*destroy)(struct ESR_SessionType_t* self); 3734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Import PAR file into session. 3754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param file File to read session from 3784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_STATE if self is null; ESR_OPEN_ERROR if file cannot be opened; ESR_READ_ERROR if file cannot be 3794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * read; ESR_OUT_OF_MEMORY if system is out of memory 3804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*importParFile)(struct ESR_SessionType_t* self, const LCHAR* filename); 3824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Import ARG file into session. 3844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param file File to read arguments from 3874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*importArgFile)(struct ESR_SessionType_t* self, const LCHAR* filename); 3894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Adds an event-listener. 3924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 3944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param listener The event-listener to add 3954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 3964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*addListener)(struct ESR_SessionType_t* self, ESR_SessionTypeListenerPair* listener); 3984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 4004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Removes an event-listener. 4014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 4034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param listener The event-listener to remove 4044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if self is null; ESR_OUT_OF_MEMORY if system is out of memory 4054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*removeListener)(struct ESR_SessionType_t* self, ESR_SessionTypeListenerPair* listener); 4074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 4094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Pointer to session data. 4104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void* data; 4124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 4134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SessionType; 4144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Initializes the system session. 4174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 4194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionTypeCreate(ESR_SessionType** self); 4224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @} 4244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 4274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* __ESR_SESSIONTYPE_H */ 428