//==================================================================================================
// S t a n d a r d                                                                        Interface
//                                                                                By Bruno Bachelet
//==================================================================================================
// Copyright (c) 1999-2016
// Bruno Bachelet - bruno@nawouak.net - http://www.nawouak.net
//
// This file is part of the B++ Library. This library is free software; you can redistribute it
// and/or modify it under the terms of the GNU Library General Public License as published by the
// Free Software Foundation; either version 2 of the License, or (at your option) any later
// version.
//
// This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
// the GNU Library General Public License for more details (http://www.gnu.org).

/*DESCRIPTION*/
/* This module provides the basic facilities necessary to develop a portable C++ program. */

// File Name //-------------------------------------------------------------------------------------
#line __LINE__ "standard.hpp"

// Guardian //--------------------------------------------------------------------------------------
#ifndef guStandard
#define guStandard

// Headers //---------------------------------------------------------------------------------------
#include <functional> /*INCLUDE*/
#include <bpp/standard/ascii.hpp> /*INCLUDE*/
#include <bpp/standard/dynamic_loading.hpp> /*INCLUDE*/
#include <bpp/standard/encrypt.hpp> /*INCLUDE*/
#include <bpp/standard/random_number.hpp> /*INCLUDE*/
#include <bpp/standard/serialization.hpp> /*INCLUDE*/
#include <bpp/standard/storage.hpp> /*INCLUDE*/

namespace bpp {

// Macrocommands //---------------------------------------------------------------------------------

// Namespaces //------------------------------------------------------------------------------------
#define public_area  standard
#define private_area standard_private

namespace public_area {
 /*NAMESPACE*/ using namespace standardAscii;
 /*NAMESPACE*/ using namespace standardClass;
 /*NAMESPACE*/ using namespace standardDynamicLoading;
 /*NAMESPACE*/ using namespace standardEncrypt;
 /*NAMESPACE*/ using namespace standardRandomNumber;
 /*NAMESPACE*/ using namespace standardSerialization;
 /*NAMESPACE*/ using namespace standardStorage;
 /*NAMESPACE*/ using namespace standardThread;
}

namespace private_area {}

// Types & Classes //-------------------------------------------------------------------------------
namespace public_area  {}
namespace private_area {}

// Functions Interface //---------------------------------------------------------------------------
namespace public_area  {}
namespace private_area {}

// Errors //----------------------------------------------------------------------------------------
namespace public_area  {}

// Constants & Variables //-------------------------------------------------------------------------
namespace public_area  {}
namespace private_area {}

// Functions Inline //------------------------------------------------------------------------------
namespace public_area {
 //-------------------------------------------------------------------------------------CloseLibrary
 /*FUNCTION*/ /* Terminates the whole B++ Library. */
 inline void closeLibrary(void) { standardInitializer::clInitializer::stopModules(); }
 //--------------------------------------------------------------------------------------OpenLibrary
 /*FUNCTION*/ /* Initializes the whole B++ Library with a given display. */
 inline void openLibrary(display::clDisplay & agDisplay) {
  standardInitializer::clInitializer::startModules(agDisplay);
  agDisplay.activate();
 }
}

namespace private_area {}

// X X X  Interface //------------------------------------------------------------------------------
namespace {}

// X X X  Inline //---------------------------------------------------------------------------------
namespace {}

// End //-------------------------------------------------------------------------------------------
}
#undef public_area
#undef private_area
#endif