ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

inicache.h
Go to the documentation of this file.
00001 /*
00002  *  ReactOS kernel
00003  *  Copyright (C) 2002 ReactOS Team
00004  *
00005  *  This program is free software; you can redistribute it and/or modify
00006  *  it under the terms of the GNU General Public License as published by
00007  *  the Free Software Foundation; either version 2 of the License, or
00008  *  (at your option) any later version.
00009  *
00010  *  This program is distributed in the hope that it will be useful,
00011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  *  GNU General Public License for more details.
00014  *
00015  *  You should have received a copy of the GNU General Public License along
00016  *  with this program; if not, write to the Free Software Foundation, Inc.,
00017  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00018  */
00019 /*
00020  * COPYRIGHT:       See COPYING in the top level directory
00021  * PROJECT:         ReactOS text-mode setup
00022  * FILE:            subsys/system/usetup/inicache.h
00023  * PURPOSE:         INI file parser that caches contents of INI file in memory
00024  * PROGRAMMER:      Royce Mitchell III
00025  *                  Eric Kohl
00026  */
00027 
00028 #pragma once
00029 
00030 typedef struct _INICACHEKEY
00031 {
00032   PWCHAR Name;
00033   PWCHAR Data;
00034 
00035   struct _INICACHEKEY *Next;
00036   struct _INICACHEKEY *Prev;
00037 } INICACHEKEY, *PINICACHEKEY;
00038 
00039 
00040 typedef struct _INICACHESECTION
00041 {
00042   PWCHAR Name;
00043 
00044   PINICACHEKEY FirstKey;
00045   PINICACHEKEY LastKey;
00046 
00047   struct _INICACHESECTION *Next;
00048   struct _INICACHESECTION *Prev;
00049 } INICACHESECTION, *PINICACHESECTION;
00050 
00051 
00052 typedef struct _INICACHE
00053 {
00054   PINICACHESECTION FirstSection;
00055   PINICACHESECTION LastSection;
00056 } INICACHE, *PINICACHE;
00057 
00058 
00059 typedef struct _PINICACHEITERATOR
00060 {
00061   PINICACHESECTION Section;
00062   PINICACHEKEY Key;
00063 } INICACHEITERATOR, *PINICACHEITERATOR;
00064 
00065 
00066 typedef enum
00067 {
00068   INSERT_FIRST,
00069   INSERT_BEFORE,
00070   INSERT_AFTER,
00071   INSERT_LAST
00072 } INSERTATION_TYPE;
00073 
00074 /* FUNCTIONS ****************************************************************/
00075 
00076 NTSTATUS
00077 IniCacheLoad(PINICACHE *Cache,
00078          PUNICODE_STRING FileName,
00079          BOOLEAN String);
00080 
00081 VOID
00082 IniCacheDestroy(PINICACHE Cache);
00083 
00084 PINICACHESECTION
00085 IniCacheGetSection(PINICACHE Cache,
00086            PWCHAR Name);
00087 
00088 NTSTATUS
00089 IniCacheGetKey(PINICACHESECTION Section,
00090            PWCHAR KeyName,
00091            PWCHAR *KeyData);
00092 
00093 
00094 
00095 PINICACHEITERATOR
00096 IniCacheFindFirstValue(PINICACHESECTION Section,
00097                PWCHAR *KeyName,
00098                PWCHAR *KeyData);
00099 
00100 BOOLEAN
00101 IniCacheFindNextValue(PINICACHEITERATOR Iterator,
00102               PWCHAR *KeyName,
00103               PWCHAR *KeyData);
00104 
00105 VOID
00106 IniCacheFindClose(PINICACHEITERATOR Iterator);
00107 
00108 
00109 PINICACHEKEY
00110 IniCacheInsertKey(PINICACHESECTION Section,
00111           PINICACHEKEY AnchorKey,
00112           INSERTATION_TYPE InsertationType,
00113           PWCHAR Name,
00114           PWCHAR Data);
00115 
00116 PINICACHE
00117 IniCacheCreate(VOID);
00118 
00119 NTSTATUS
00120 IniCacheSave(PINICACHE Cache,
00121          PWCHAR FileName);
00122 
00123 PINICACHESECTION
00124 IniCacheAppendSection(PINICACHE Cache,
00125               PWCHAR Name);
00126 
00127 /* EOF */

Generated on Sat May 26 2012 04:16:54 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.