LibNebular, user API. More...
#include "utils.hpp"
#include <stdexcept>
#include <istream>
#include <string>
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>
#include "libnebular.templates.hpp"
Go to the source code of this file.
Classes | |
class | libnebular::Blob |
Binary Long OBject. More... | |
class | libnebular::Error |
Main error-reporting class. More... | |
class | libnebular::Core |
Core library services More... | |
class | libnebular::LogListener |
Facility allowing to listen messages that come to "log" (emitted by Log class). More... | |
class | libnebular::PicturePropContainer |
Property map container for use in Picture . More... | |
class | libnebular::PicturePropContainer::PropKeyIterator |
C++ iterator, ForwardIterator , iterating through PicturePropContainer key names. More... | |
class | libnebular::PictureProps |
Picture data and operations that are independent of file format, but more complex that just container access More... | |
class | libnebular::Picture |
Patch for documentation generator malfunction. More... | |
Namespaces | |
namespace | libnebular |
All ⟨libnebular⟩ identifiers which are exposed to public. | |
namespace | libnebular::bits |
Routines to work with integers as with "bit vectors". | |
Typedefs | |
typedef long long int | libnebular::Integer |
This Integer is so big that can even hold number of pixels in huge bitmap (and all other integer computations in realization). | |
typedef long double | libnebular::Real |
typedef std::string | libnebular::String |
String type that will be used in property names and values. | |
Functions | |
template<typename BitContainer > | |
Integer | libnebular::bits::getContigLength (BitContainer a) |
Length of contiguous bits. | |
template<typename BitContainer > | |
bool | libnebular::bits::areContig (BitContainer a) |
Are bits in being contiguous. | |
template<typename BitContainer > | |
bool | libnebular::bits::areSubsetOf (BitContainer a, BitContainer b) |
Are bits in a being subset of bits in b . | |
template<typename BitContainer > | |
BitContainer | libnebular::bits::generateContig (Integer length) |
Generate integer with length contiguous bits starting from offset 0. | |
template<typename BitContainer > | |
Integer | libnebular::bits::getHighestBitIndex (BitContainer a) |
Index of highest bit. | |
template<class PicturePropContainerBased > | |
boost::shared_ptr < PicturePropContainerBased > | libnebular::createSubtreeProxy (PicturePropContainer &realSubject, const String &subTreePrefix) |
Allows to work with property subtree given by subTreePrefix as with arbitrary object based on PicturePropContainer . | |
Variables | |
const Integer | libnebular::bits::HAVE_NOT = -1 |
Return value indicating that "have not". | |
const Integer | libnebular::bits::ARE_NOT_CONTIG = HAVE_NOT |
Return value indicating that "bits aren't contiguous". |
LibNebular, user API.
LibNebular is C++ Linux library for uniform image file manipulation as String key-value pairs (with sometimes BLOB values) where different file types are intruduced through DL (".so") libraries. Includes BMP and JPEG plugins. Can easily be ported.
Copyright (C) 2011 Leonid Sadikov ⟨ leonius@inbox.ru ⟩
This file is part of LibNebular.
LibNebular is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation.
See "COPYING.LESSER" and "COPYING" in distribution or ⟨http://www.gnu.org/licenses/⟩ for full license text.
Library setup:
if(⟨"plugins' root is not in current directory"⟩){ // Almost always we should set this! // See @c Core::setPluginDir documentation for "plugins' root" libNebular().setPluginDir(⟨plugin_root_dir⟩); }
if(⟨"we want to speedup plugin usage in future (so, pre-register plugins)"⟩){ libNebular().registerPlugins(); }else{ // Don't worry: plugins will be registered automatically when needed }
File opening sequence:
Construction of libnebular::Picture
object (with optional supply of URL to constructor)
if(⟨"url_was-not-supplied"⟩) Setting "opt/file/url" property;
if( ⟨"We need control on which file type detection method will be used"⟩ ) Call appropriate file type detection method from libnebular::Picture
attachHandlerGroup
explicitly; otherwise, "some" type detection method well be silently called when needed by library
Call libnebular::Picture::readFileInfo
if file info is needed, but not bitmap itself
Call libnebular::Picture::readBm
if bitmap itself is needed
Definition in file libnebular.hpp.