contexts.h revision f76bbf5384c0504b165168f51ccadfb605ccb2af
1fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry/* 2fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * Copyright (C) 2008 The Android Open Source Project 3fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * All rights reserved. 4fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * 5fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * Redistribution and use in source and binary forms, with or without 6fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * modification, are permitted provided that the following conditions 7fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * are met: 8fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * * Redistributions of source code must retain the above copyright 9fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * notice, this list of conditions and the following disclaimer. 10fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * * Redistributions in binary form must reproduce the above copyright 11fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * notice, this list of conditions and the following disclaimer in 12fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * the documentation and/or other materials provided with the 13fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * distribution. 14fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * 15fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 18fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 19fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 20fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 21fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 22fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 23fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 25fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry * SUCH DAMAGE. 27fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry */ 28fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry 29fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry#ifndef SYSTEM_PROPERTIES_CONTEXTS_H 30fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry#define SYSTEM_PROPERTIES_CONTEXTS_H 31fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry 32fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry#include "prop_area.h" 33fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry#include "prop_info.h" 34fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry 35fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherryclass Contexts { 36fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry public: 37fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry virtual ~Contexts() { 38fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry } 39fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry 40fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry virtual bool Initialize(bool writable) = 0; 41fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry virtual prop_area* GetPropAreaForName(const char* name) = 0; 42f76bbf5384c0504b165168f51ccadfb605ccb2afTom Cherry virtual prop_area* GetSerialPropArea() = 0; 43fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry virtual void ForEach(void (*propfn)(const prop_info* pi, void* cookie), void* cookie) = 0; 44fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry virtual void ResetAccess() = 0; 45fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry virtual void FreeAndUnmap() = 0; 46fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry}; 47fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry 48fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry#endif 49