#ifndef RUST_CHAN_H #define RUST_CHAN_H class rust_chan : public rc_base, public task_owned, public rust_cond { public: rust_chan(rust_task *task, maybe_proxy *port, size_t unit_sz); ~rust_chan(); rust_task *task; maybe_proxy *port; size_t idx; circular_buffer buffer; void associate(maybe_proxy *port); void disassociate(); bool is_associated(); void send(void *sptr); rust_chan *clone(maybe_proxy *target); // Called whenever the channel's ref count drops to zero. void destroy(); }; // // Local Variables: // mode: C++ // fill-column: 78; // indent-tabs-mode: nil // c-basic-offset: 4 // buffer-file-coding-system: utf-8-unix // compile-command: "make -k -C .. 2>&1 | sed -e 's/\\/x\\//x:\\//g'"; // End: // #endif /* RUST_CHAN_H */