IWAReader.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /*
00003  * This file is part of the libetonyek project.
00004  *
00005  * This Source Code Form is subject to the terms of the Mozilla Public
00006  * License, v. 2.0. If a copy of the MPL was not distributed with this
00007  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
00008  */
00009 
00010 #ifndef IWAREADER_H_INCLUDED
00011 #define IWAREADER_H_INCLUDED
00012 
00013 #include <string>
00014 
00015 #include "libetonyek_utils.h"
00016 
00017 namespace libetonyek
00018 {
00019 
00020 class IWAMessage;
00021 
00022 namespace IWAReader
00023 {
00024 
00025 struct UInt32
00026 {
00027   static uint32_t read(const RVNGInputStreamPtr_t &input, unsigned long length);
00028 };
00029 
00030 struct UInt64
00031 {
00032   static uint64_t read(const RVNGInputStreamPtr_t &input, unsigned long length);
00033 };
00034 
00035 struct SInt32
00036 {
00037   static int32_t read(const RVNGInputStreamPtr_t &input, unsigned long length);
00038 };
00039 
00040 struct SInt64
00041 {
00042   static int64_t read(const RVNGInputStreamPtr_t &input, unsigned long length);
00043 };
00044 
00045 struct Bool
00046 {
00047   static bool read(const RVNGInputStreamPtr_t &input, unsigned long length);
00048 };
00049 
00050 struct Fixed64
00051 {
00052   static uint64_t read(const RVNGInputStreamPtr_t &input, unsigned long length);
00053 };
00054 
00055 struct Double
00056 {
00057   static double read(const RVNGInputStreamPtr_t &input, unsigned long length);
00058 };
00059 
00060 struct String
00061 {
00062   static std::string read(const RVNGInputStreamPtr_t &input, unsigned long length);
00063 };
00064 
00065 struct Bytes
00066 {
00067   static const RVNGInputStreamPtr_t read(const RVNGInputStreamPtr_t &input, unsigned long length);
00068 };
00069 
00070 struct Message
00071 {
00072   static IWAMessage read(const RVNGInputStreamPtr_t &input, unsigned long length);
00073 };
00074 
00075 struct Fixed32
00076 {
00077   static uint32_t read(const RVNGInputStreamPtr_t &input, unsigned long length);
00078 };
00079 
00080 struct Float
00081 {
00082   static float read(const RVNGInputStreamPtr_t &input, unsigned long length);
00083 };
00084 
00085 }
00086 
00087 }
00088 
00089 #endif
00090 
00091 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */