Skip to content

Commit

Permalink
GH-45215:[C++][Acero]Export SequencingQueue and SerialSequencingQueue (
Browse files Browse the repository at this point in the history
…#45221)

### Rationale for this change
SequencingQueue and SerialSequencingQueue are useful in creating custom ExecNodes. This patch allows linking to factory functions.

### What changes are included in this PR?

ARROW_ACERO_EXPORT classes

### Are there any user-facing changes?
Users can now directly instantiate and use the SequencingQueue and SerialSequencingQueue classes, enabling easier creation of custom ExecNode.

* GitHub Issue: #45215

Authored-by: kamilt <[email protected]>
Signed-off-by: Rossi Sun <[email protected]>
  • Loading branch information
mroz45 authored Jan 14, 2025
1 parent 5109c0c commit 0758845
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions cpp/src/arrow/acero/accumulation_queue.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <optional>
#include <vector>

#include "arrow/acero/visibility.h"
#include "arrow/compute/exec.h"
#include "arrow/result.h"

Expand Down Expand Up @@ -70,7 +71,7 @@ class AccumulationQueue {
/// For example, in a top-n node, the process callback should determine how many
/// rows need to be delivered for the given batch, and then return a task to actually
/// deliver those rows.
class SequencingQueue {
class ARROW_ACERO_EXPORT SequencingQueue {
public:
using Task = std::function<Status()>;

Expand Down Expand Up @@ -123,7 +124,7 @@ class SequencingQueue {
///
/// It can be helpful to think of this as if a dedicated thread is running Process as
/// batches arrive
class SerialSequencingQueue {
class ARROW_ACERO_EXPORT SerialSequencingQueue {
public:
/// Strategy that describes how to handle items
class Processor {
Expand Down

0 comments on commit 0758845

Please sign in to comment.