static inline void transport_dump_png24(Transport & trans, const uint8_t * data, const size_t width, const size_t height, const size_t rowsize, const bool bgr) { detail::NoExceptTransport no_except_transport = { &trans, 0 }; png_struct * ppng = png_create_write_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr); png_set_write_fn(ppng, &no_except_transport, &detail::png_write_data, &detail::png_flush_data); png_info * pinfo = png_create_info_struct(ppng); detail::dump_png24_impl( ppng, pinfo, data, width, height, rowsize, bgr, [&]() noexcept {return !no_except_transport.error_id;} ); if (!no_except_transport.error_id) { png_write_end(ppng, pinfo); trans.flush(); } png_destroy_write_struct(&ppng, &pinfo); // commented line below it to create row capture // fwrite(this->data, 3, this->width * this->height, fd); }
std::set<hrbytes> BulkGetKeysOperation::executeOperation(Transport& transport) { hr_scoped_ptr<HeaderParams> params(&(RetryOnFailureOperation<std::set<hrbytes> >::writeHeader(transport, BULK_GET_KEYS_REQUEST))); transport.writeVInt(scope); transport.flush(); RetryOnFailureOperation<std::set<hrbytes> >::readHeaderAndValidate(transport, *params); std::set<hrbytes> result; while (transport.readByte()==1) { result.insert(transport.readArray()); } return result; }
VersionedOperationResponse RemoveIfUnmodifiedOperation::executeOperation(Transport& transport) { // 1) write header hr_scoped_ptr<infinispan::hotrod::protocol::HeaderParams> params( &(AbstractKeyOperation<VersionedOperationResponse>::writeHeader( transport, REMOVE_IF_UNMODIFIED_REQUEST))); //2) write message body transport.writeArray(key); transport.writeLong(version); transport.flush(); return AbstractKeyOperation<VersionedOperationResponse>::returnVersionedOperationResponse(transport, *params); }
VersionedOperationResponse RemoveIfUnmodifiedOperation::executeOperation(Transport& transport) { TRACE("Execute RemoteIfUnmodified(flags=%u, version=%lld)", flags, version); TRACEBYTES("key = ", key); // 1) write header std::unique_ptr<infinispan::hotrod::protocol::HeaderParams> params( &(AbstractKeyOperation<VersionedOperationResponse>::writeHeader( transport, REMOVE_IF_UNMODIFIED_REQUEST))); //2) write message body transport.writeArray(key); transport.writeLong(version); transport.flush(); return AbstractKeyOperation<VersionedOperationResponse>::returnVersionedOperationResponse(transport, *params); }
std::map<std::string, std::string> StatsOperation::executeOperation(Transport& transport) { TRACE("Executing Stats"); hr_scoped_ptr<HeaderParams> params(&(RetryOnFailureOperation<std::map<std::string, std::string> >::writeHeader(transport, STATS_REQUEST))); transport.flush(); RetryOnFailureOperation<std::map<std::string, std::string> >::readHeaderAndValidate(transport, *params); int nrOfStats = transport.readVInt(); TRACE("Stats returning map of %d entries:", nrOfStats); std::map<std::string, std::string> result; for (int i = 0; i < nrOfStats; i++) { std::string statName = transport.readString(); std::string statValue = transport.readString(); result[statName] = statValue; TRACE("%s -> %s", statName.c_str(), statValue.c_str()); } return result; }
std::set<hrbytes> BulkGetKeysOperation::executeOperation(Transport& transport) { TRACE("Execute BulkGetKeys(flags=%u,scope=%d)", flags, scope); hr_scoped_ptr<HeaderParams> params(&(RetryOnFailureOperation<std::set<hrbytes> >::writeHeader(transport, BULK_GET_KEYS_REQUEST))); transport.writeVInt(scope); transport.flush(); RetryOnFailureOperation<std::set<hrbytes> >::readHeaderAndValidate(transport, *params); std::set<hrbytes> result; while (transport.readByte()==1) { result.insert(transport.readArray()); } if (logger.isTraceEnabled()) { for (std::set<hrbytes>::iterator it = result.begin(); it != result.end(); ++it) { TRACEBYTES("return key = ", *it); } if (result.size() == 0) { TRACE("No data in bulk"); } } return result; }