14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------* 24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_Session.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_SESSION_H 214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define __ESR_SESSION_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 "pstdio.h" 284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ptypes.h" 294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "ESR_SessionType.h" 304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @addtogroup ESR_SessionModule ESR_Session API functions 334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Manages ESR session information. 344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 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 * Hashmap with helper functions for adding primitives and add-if-empty. 404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttypedef struct ESR_SessionSingleton_t 424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns session property value. 454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param type Expected variable type (for strong-typing purposes) 494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getProperty)(const LCHAR* name, void** value, VariableTypes type); 514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the type of a property value. 534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param type [out] Value type 564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getPropertyType)(const LCHAR* name, VariableTypes* type); 584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getInt)(const LCHAR* name, int* value); 654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getUint16_t)(const LCHAR* name, asr_uint16_t* 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 */ 784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getSize_t)(const LCHAR* name, size_t* value); 794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getFloat)(const LCHAR* name, float* value); 864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getBool)(const LCHAR* name, ESR_BOOL* value); 934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param len Length of value argument. If the return code is ESR_BUFFER_OVERFLOW, 994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * the required length is returned in this variable. 1004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getLCHAR)(const LCHAR* name, LCHAR* value, size_t* len); 1024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Indicates if key exists in the session. 1044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param exists True if key exists, false otherwise 1074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*contains)(const LCHAR* name, ESR_BOOL* exists); 1094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value. 1114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param type Type of value being set 1154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setProperty)(const LCHAR* name, void* value, VariableTypes type); 1174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setInt)(const LCHAR* name, int value); 1244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setUint16_t)(const LCHAR* name, asr_uint16_t value); 1314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setSize_t)(const LCHAR* name, size_t value); 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 name Property name 1424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setFloat)(const LCHAR* name, float value); 1454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setBool)(const LCHAR* name, ESR_BOOL value); 1524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 1544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setLCHAR)(const LCHAR* name, LCHAR* value); 1594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetInt(). 1614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 1634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 1644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setIntIfEmpty)(const LCHAR* name, int value); 1694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetUint16_t(). 1714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 1734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 1744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setUint16_tIfEmpty)(const LCHAR* name, asr_uint16_t value); 1794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetSize_t(). 1814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 1834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 1844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setSize_tIfEmpty)(const LCHAR* name, size_t value); 1894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 1904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetFloat(). 1914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 1934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 1944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 1954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 1964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 1974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 1984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setFloatIfEmpty)(const LCHAR* name, float value); 1994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetBool(). 2014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 2034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 2044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 2074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setBoolIfEmpty)(const LCHAR* name, ESR_BOOL value); 2094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetLCHAR(). 2114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * This helper function aids implementation of "default values", overwriting 2134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * session values only if they have not been set already. 2144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 2174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*setLCHARIfEmpty)(const LCHAR* name, LCHAR* value); 2194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Removes property from session. 2214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*removeProperty)(const LCHAR* name); 2254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Removes and deallocates property from session. 2274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 2294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*removeAndFreeProperty)(const LCHAR* name); 2314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Imports commandline arguments into the system session. 2334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Keys are imported as "cmdline.[name]" where [name] is the name of the command-line argument 2354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Values are set in char* format. 2364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * For example, given the argument "-timer=5", the following key will be added to the session: 2384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ["cmdline.timer", "5"] 2394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Validation is left up to the application. 2414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the session contains a key that is clobbered by the parser, the old [key, value] 2434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * pair will be deallocated. For example, if the session contained 2444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ["cmdline.timer", "value"] before the aforementioned example occured, then the old 2454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * [key, value] pair will be allocated by the parser. 2464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param argc Number of arguments 2484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param argv Argument values 2494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*importCommandLine)(int argc, char* argv[]); 2514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the number of elements in the session. 2534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param size [out] Session size 2554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getSize)(size_t* size); 2574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the key associated with the specified index. 2594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param index Element index 2614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key [out] Key name 2624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*getKeyAtIndex)(size_t index, LCHAR** key); 2644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to int. 2664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 2684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*convertToInt)(const LCHAR* key); 2704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to asr_uint16_t. 2724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 2744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*convertToUint16_t)(const LCHAR* key); 2764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to size_t. 2794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 2814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*convertToSize_t)(const LCHAR* key); 2834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to float. 2864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 2884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*convertToFloat)(const LCHAR* key); 2904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 2914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to bool. 2934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 2944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 2954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 2964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*convertToBool)(const LCHAR* key); 2974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 2984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Destroys the system session. 2994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*destroy)(void); 3014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Import PAR file into session. 3034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param file File to read session from 3054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*importParFile)(const LCHAR* filename); 3074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Import ARG file into session. 3094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param file File to read arguments from 3114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project ESR_ReturnCode(*importArgFile)(const LCHAR* filename); 3134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project /** 3154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Pointer to session data. 3164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void* data; 3184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project} 3194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SessionSingleton; 3204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 3214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 3224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Initializes the system session. 3234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param filename File to read session information from 3254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OPEN_ERROR if file cannot be opened; ESR_READ_ERROR if file cannot be read; 3264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_OUT_OF_MEMORY if system is out of memory 3274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionCreate(const LCHAR* filename); 3294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 3304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns session property value. 3314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 3334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 3344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param type Expected variable type (for strong-typing purposes) 3354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not of the specified type 3364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionGetProperty(const LCHAR* name, void** value, 3384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project VariableTypes type); 3394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 3404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 3414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 3434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 3444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not an int 3454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionGetInt(const LCHAR* name, int* value); 3474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 3484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 3494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 3514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 3524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a asr_uint16_t 3534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionGetUint16_t(const LCHAR* name, asr_uint16_t* value); 3554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 3564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 3574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 3594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 3604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a size_t 3614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionGetSize_t(const LCHAR* name, size_t* value); 3634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 3644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 3654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 3674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 3684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a float 3694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionGetFloat(const LCHAR* name, float* value); 3714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 3724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 3734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 3754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 3764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a bool 3774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionGetBool(const LCHAR* name, ESR_BOOL* value); 3794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 3804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns copy of session property value. 3814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 3834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 3844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param len Length of value argument. If the return code is ESR_BUFFER_OVERFLOW, 3854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * the required length is returned in this variable. 3864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_RESULT_TYPE if the property is not a LCHAR* 3874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionGetLCHAR(const LCHAR* name, LCHAR* value, size_t* len); 3894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 3904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Indicates if key exists in the session. 3914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 3924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 3934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param exists True if key exists, false otherwise 3944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_SUCCESS 3954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 3964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionContains(const LCHAR* name, ESR_BOOL* exists); 3974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 3984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value. 3994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param type Type of value being set 4034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetProperty(const LCHAR* name, void* value, 4064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project VariableTypes type); 4074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 4094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetInt(const LCHAR* name, int value); 4154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 4174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetUint16_t(const LCHAR* name, asr_uint16_t value); 4234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 4254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetSize_t(const LCHAR* name, size_t value); 4314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 4334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetFloat(const LCHAR* name, float value); 4394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 4414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetBool(const LCHAR* name, ESR_BOOL value); 4474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets session property value, storing a copy of the value. 4494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetLCHAR(const LCHAR* name, LCHAR* value); 4554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetInt(). 4574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetIntIfEmpty(const LCHAR* name, int value); 4634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetSize_t(). 4654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetUint16_tIfEmpty(const LCHAR* name, asr_uint16_t value); 4714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetSize_t(). 4734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetSize_tIfEmpty(const LCHAR* name, size_t value); 4794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetFloat(). 4814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetFloatIfEmpty(const LCHAR* name, float value); 4874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetBool(). 4894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 4924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 4934a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 4944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetBoolIfEmpty(const LCHAR* name, ESR_BOOL value); 4954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 4964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the key does not exist in the session, calls SessionSetLCHAR(). 4974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 4984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 4994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param value Property value 5004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 5014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5024a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionSetLCHARIfEmpty(const LCHAR* name, LCHAR* value); 5034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Removes property from session. 5054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 5074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 5084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionRemoveProperty(const LCHAR* name); 5104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Removes and deallocates property from session. 5124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 5144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 5154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionRemoveAndFreeProperty(const LCHAR* name); 5174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Destroys the system session. 5194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_SUCCESS 5214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionDestroy(void); 5234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Imports commandline arguments into the system session. 5254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Keys are imported as "cmdline.[name]" where [name] is the name of the command-line argument 5274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Values are set in char* format. 5284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * For example, given the argument "-timer=5", the following key will be added to the session: 5304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ["cmdline.timer", "5"] 5314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Validation is left up to the application. 5334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * If the session contains a key that is clobbered by the parser, the old [key, value] 5354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * pair will be deallocated. For example, if the session contained 5364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ["cmdline.timer", "value"] before the aforementioned example occured, then the old 5374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * [key, value] pair will be allocated by the parser. 5384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param argc Number of arguments 5404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param argv Argument values 5414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if the system is out of memory 5424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionImportCommandLine(int argc, LCHAR* argv[]); 5444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the number of elements in the session. 5474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param size [out] Session size 5494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_SUCCESS 5504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionGetSize(size_t* size); 5524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the key associated with the specified index. 5554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param index Element index 5574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key [out] Key name 5584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_ARGUMENT_OUT_OF_BOUNDS if index is out of bounds 5594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionGetKeyAtIndex(size_t index, LCHAR** key); 5614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to int. 5644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 5664a68b3365c8c50aa93505e99ead2565ab73dcdb0The 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; 5674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_INVALID_ARGUMENT if property cannot be converted to int 5684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionConvertToInt(const LCHAR* key); 5704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to int. 5734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 5754a68b3365c8c50aa93505e99ead2565ab73dcdb0The 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; 5764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_INVALID_ARGUMENT if property cannot be converted to asr_uint16_t 5774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionConvertToUint16_t(const LCHAR* key); 5794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to size_t. 5824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 5844a68b3365c8c50aa93505e99ead2565ab73dcdb0The 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; 5854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_INVALID_ARGUMENT if property cannot be converted to size_t 5864a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5874a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionConvertToSize_t(const LCHAR* key); 5884a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5894a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5904a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to float. 5914a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 5924a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 5934a68b3365c8c50aa93505e99ead2565ab73dcdb0The 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; 5944a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_INVALID_ARGUMENT if property cannot be converted to float 5954a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 5964a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionConvertToFloat(const LCHAR* key); 5974a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 5984a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 5994a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Convert the specified argument to bool. 6004a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 6014a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param key Property name 6024a68b3365c8c50aa93505e99ead2565ab73dcdb0The 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; 6034a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_INVALID_ARGUMENT if property cannot be converted to bool 6044a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 6054a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionConvertToBool(const LCHAR* key); 6064a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 6074a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Returns the type of a property value. 6084a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 6094a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param name Property name 6104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param type [out] Value type 6114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if property cannot be found 6124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 6134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionGetPropertyType(const LCHAR* name, VariableTypes* type); 6144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 6154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Import PAR file into session. 6164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 6174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param filename File to read session from 6184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OPEN_ERROR if file cannot be opened; ESR_READ_ERROR if file cannot be read; 6194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_OUT_OF_MEMORY if system is out of memory 6204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 6214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionImportParFile(const LCHAR* filename); 6224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 6234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Sets val to true if a session object exists (non-null), FALSE otherwise. 6244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 6254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param val True if session is non-null, false otherwise 6264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_SUCCESS 6274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 6284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionExists(ESR_BOOL* val); 6294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 6304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Prefixes relative paths with the PAR-file base directory. If the path is not relative, 6314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * it is not changed. 6324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 6334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param path Path to be prefixed 6344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param len Length of path argument. If the return code is ESR_BUFFER_OVERFLOW, 6354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * the required length is returned in this variable. 6364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_INVALID_ARGUMENT if path is null; 6374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * ESR_NO_MATCH_ERROR if session property "parFile.baseDirectory" is undefined 6384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 6394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionPrefixWithBaseDirectory(LCHAR* path, size_t* len); 6404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 6414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Adds an event-listener. 6424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 6434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 6444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param listener The event-listener to add 6454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_OUT_OF_MEMORY if system is out of memory 6464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 6474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionAddListener(ESR_SessionType* self, ESR_SessionTypeListenerPair* listener); 6484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 6504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Removes an event-listener. 6514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 6524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param self ESR_SessionType handle 6534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @param listener The event-listener to remove 6544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @return ESR_SUCCESS 6554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 6564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_SHARED_API ESR_ReturnCode ESR_SessionRemoveListener(ESR_SessionType* self, ESR_SessionTypeListenerPair* listener); 6574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/** 6614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * @} 6624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project */ 6634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 6664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif /* __ESR_SESSION_H */ 667