contexts.h revision fd44b9f8d89ce4f33ff39d7f340a5ed08029d21c
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;
42fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry  virtual void ForEach(void (*propfn)(const prop_info* pi, void* cookie), void* cookie) = 0;
43fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry  virtual void ResetAccess() = 0;
44fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry  virtual void FreeAndUnmap() = 0;
45fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry};
46fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry
47fd44b9f8d89ce4f33ff39d7f340a5ed08029d21cTom Cherry#endif
48