POCO (C++ osztályú könyvtárak gyűjteménye)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. április 17-én felülvizsgált verziótól ; az ellenőrzések 6 szerkesztést igényelnek .
POCO
Típusú könyvtár (programozás)
Beírva C++03, részben C++11-be portolva
Operációs rendszer Cross platform
legújabb verzió 1.10.1 (2020. február 10.)
Engedély Boost szoftverlicenc
Weboldal pocoproject.org

A POCO ( vagy C++ Portable Components) nyílt forráskódú osztálykönyvtárak gyűjteménye , amely leegyszerűsíti és felgyorsítja a webalapú többplatformos alkalmazások fejlesztését C++ nyelven. A könyvtárak jól integrálhatók a Standard Template Library -val (STL), és zökkenőmentesen pótolják számos funkcionális hiányosságot. A moduláris felépítés és a hatékony implementáció ideális jelöltté teszi a POCO-t a beágyazott eszközök ( firmware , stb.) fejlesztésére, mely területen a C++ egyre népszerűbb, mivel alacsony szintű ( I/O eszközök ,megszakításkezelők stb.) és magas szintű objektumorientált fejlesztéshez. A POCO természetesen vállalati alkalmazásfejlesztésre is alkalmas .

A POCO-könyvtárak megszabadítják a fejlesztőt az olyan gyakori feladatok újbóli végrehajtásától, amelyek elírásokhoz , a specifikációk pontatlan megvalósításához és helytelen hibakezeléshez vezethetnek.

Célok és küldetés

A POCO-t hálózati, többplatformos C++ szoftvercsomagokhoz tervezték, mint például az Apple Cocoa for Mac OS X vagy a Ruby on Rails webfejlesztéshez . Erőteljes , mégis könnyen használható platformnak készült .

A POCO az ANSI/ISO C++ szabvány szigorú betartásával készült, amely magában foglalja a szabványos könyvtárat is. Az 1.x verziók a C++ 2003 szabványt használják (az 1.4.7-es verziótól kezdve a C++ 2011 részben támogatott), a 2.x verzió a C++ 2011 szabványra való teljes átállásra és a nem támogató fordítók támogatásának megszűnésére készül. ezt a szabványt. A POCO fejlesztői arra törekednek, hogy egyensúlyt teremtsenek a komplex C++ mechanizmusok használata, valamint az osztályok és a kód egyértelmű és egyszerű tartása között.

Jellemzők

Platformok és kompatibilitás

A POCO különböző platformokon indul, többek között:

Az 1.4.0-s verzió előtt a Linux POCO hálózati alrendszere alapértelmezés szerint a Select rendszerhívást használja, amely nem skálázódik jól nagy terhelésre. Ennek az alrendszernek vannak poll vagy epoll [1] hívásokat használó megvalósításai . Úgy tervezték, hogy leküzdjék a maximális fájlleíró számra vonatkozó kiválasztási korlátot (általában 1024). Azokban az alkalmazásokban, amelyek POCO-t használnak és több tízezer ügyfelet szolgálnak ki egyidejűleg, a select használata szolgáltatásmegtagadáshoz és az alkalmazás összeomlásához vezethet – mind a poll, mind az epoll megvalósítások megoldják ezt a problémát.
Az 1.4.0-s verziótól kezdődően alapértelmezés szerint az epoll megvalósítást használják a Linux környezetekben történő építkezéshez:

POCO C++ Libraries, Kiadási megjegyzések , SF 2977249 :

Használja az epoll -t a választás helyett Linuxon. A Poco::Net::Socket::select() és Poco::Net::Socket::poll() metódusok az epoll -t használják Linux alatt, ha a hálózati könyvtár a -DPOCO_HAVE_FD_EPOLL kapcsolóval van fordítva. Ez a konfiguráció szabványos Linuxon, de nem különféle beágyazott Linux platformokon.

Eredeti szöveg  (angol)[ showelrejt] javított SF# 2977249: Használja az epoll-t helyette válassza ki Linux alatt Poco::Net::Socket::select() és a Poco::Net::Socket::poll() az epoll-t használja Linux alatt, ha a Net könyvtár a -DPOCO_HAVE_FD_EPOLL paranccsal van fordítva. . Ez az alapértelmezett a Linux build konfigurációjához (de nem a beágyazott Linux platformokat célzó különféle összeállítási konfigurációkhoz).

Használati példa (MSVS 8.0)

1) Telepítse a könyvtárat: Csomagolja ki (például C:\Poco-ba), és állítson be két elérési utat a környezeti változókban:

  1. POCO_BASE=C:\Poco
  2. PATH=$(PATH);C:\Poco\bin

2) A könyvtár felépítése: Nyissa meg a C:\Poco\bin\Foundation_vs80.sln fájlt, és készítse el, töltse le a C:\Poco\bin\PocoFoundation.dll fájlt.

3) Nyissa meg a példát (vegye fontolóra a Loggert): C:\Poco\Foundation\samples\Logger\Logger_vs80.vcproj

//Logger.cpp fájl a Poco :: Logger használatával ; a Poco :: PatternFormatter használatával ; a Poco :: FormattingChannel használatával ; a Poco :: ConsoleChannel használatával ; a Poco :: FileChannel használatával ; Poco használatával :: Üzenet ; int main ( int argc , char ** argv ) { // beállítunk két csatornaláncot – az egyiket a // konzolhoz, a másikat pedig egy naplófájlhoz. FormattingChannel * pFCConsole = new FormattingChannel ( new PatternFormatter ( "%s:%p:%t" )); pFCConsole -> setChannel ( új ConsoleChannel ); pFCConsole -> nyitott (); FormattingChannel * pFCFile = new FormattingChannel ( new PatternFormatter ( "%Y-%m-%d %H:%M:%S.%c %N[%P]:%s:%q:%t" )); pFCFile -> setChannel ( new FileChannel ( "sample.log" )); pFCFile -> megnyitás (); // hozzon létre két naplózó objektumot - egyet // minden csatornalánchoz. Logger & consoleLogger = Logger :: create ( "ConsoleLogger" , pFCConsole , Üzenet :: PRIO_INFORMÁCIÓ ); Logger & fileLogger = Logger :: create ( "FileLogger" , pFCFile , Üzenet :: PRIO_WARNING ); // néhány üzenet naplózása consoleLogger . error ( "Hibaüzenet" ); fileLogger . error ( "Hibaüzenet" ); consoleLogger . figyelmeztetés ( "Figyelmeztető üzenet" ); fileLogger . hiba ( "Figyelmeztető üzenet" ); consoleLogger . információ ( "Információs üzenet" ); fileLogger . információ ( "Információs üzenet" ); Logger :: get ( "ConsoleLogger" ). error ( "Másik hibaüzenet" ); return 0 ; }

------------- A művelet eredménye (a képernyőn) -------------

ConsoleLogger: Hiba: Hibaüzenet ConsoleLogger: Figyelmeztetés: Figyelmeztető üzenet ConsoleLogger: Információ: Információs üzenet ConsoleLogger: Hiba: Újabb hibaüzenet

------------- A munka eredménye (a sample.log fájlban) --------------

2007-10-11 10:12:19.8 WKS-323[1204]:FileLogger:E:Hibaüzenet 2007-10-11 10:12:19.9 WKS-323[1204]:FileLogger:E:Figyelmeztető üzenet 2007-10-11 10:12:23.5 WKS-323[312]:FileLogger:E:Hibaüzenet 2007-10-11 10:12:23.6 WKS-323[312]:FileLogger:E:Figyelmeztető üzenet

Jegyzetek

  1. Jackevics Szergej. PoCo, összeszerelés a Spectr Softtól (nem elérhető link) (2010. augusztus 28.). Letöltve: 2010. október 8. Az eredetiből archiválva : 2012. március 11. 

Lásd még

Linkek