+
+int configcache::readFullBlock(char *tmpData, long unsigned int dataSize)
+{
+ /* try to read header */
+ if ( openFileDesc.extended )
+ if ( ! readHeader() )
+ return -1;
+
+ /* read data */
+ return readDataToMem(tmpData, dataSize);
+}
+
+int configcache::readDataToMem(char *tmpData, long unsigned int dataSize)
+{
+ int readturn = -1;
+
+ if ( dataSize == 0 ) return 0;
+
+ try { readturn = boost::iostreams::read(*inBuffer, tmpData, dataSize); }
+ catch(boost::iostreams::bzip2_error& error) {
+ if(out) *out->log << "CCACHE: Caught bzip2 exception with error code: " << error.error() << endl << flush;
+ inFile.close();
+ }
+ catch (std::exception const& ex) {
+ if(out) *out->log << "CCACHE: Caught exception: " << ex.what() << endl << flush;
+ inFile.close();
+ }
+ catch( ... ) {
+ if(out) *out->log << "CCACHE: Caught unknown exception while reading." << endl << flush;
+ inFile.close();
+ }
+
+ return readturn;
+}