Antoine Pitrou created THRIFT-5462:
--------------------------------------

             Summary: [C++] Expose preprocessor macro to inspect the Thrift 
version
                 Key: THRIFT-5462
                 URL: https://issues.apache.org/jira/browse/THRIFT-5462
             Project: Thrift
          Issue Type: Wish
          Components: C++ - Library
    Affects Versions: 0.14.2
            Reporter: Antoine Pitrou


In Parquet C++, we would like to make use of the new {{TConfiguration}} 
introduced in 0.14.0. However, we also want our source code to be compatible 
with previous versions. It would be made greatly easier if we could do that 
using preprocessor directives, such as:

{code:c++}
  uint8_t* buf = ...;
  unt32_t len = ...;
  std::shared_ptr<ThriftBuffer> mem_transport;
#if THRIFT_VERSION_MAJOR > 0 || THRIFT_VERSION_MINOR >= 14
  auto config = std::make_shared<TConfiguration>();
  config->setMaxMessageSize(...);
  mem_transport = std::make_shared<TMemoryBuffer>(
    buf, len, TMemoryBuffer::OBSERVE, config);
#else
  mem_transport = std::make_shared<TMemoryBuffer>(buf, len);
#endif
{code}

However, given that the C++ library doesn't seem to expose such constants, 
we're going to need to run custom tests during the configuration step to find 
out whether TConfiguration is available...




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to