Socket
Socket
Sign inDemoInstall

bob-base

Package Overview
Dependencies
0
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    bob-base

Base C++ virtual class header for the BOB streaming protocol.


Version published
Weekly downloads
4
increased by300%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

BOB Base

C++ base class & status codes enum for the BOB streaming protocol.

In your binding.gyp:

  "include_dirs": [
    "<!(node -e \"require('bob-base')\")"
  ]

In your C++:

#include <bob.h>

Usage

Base class

All C++ BOB interfaces must inherit from BOB::Base and implement its virtual functions:

class My_Sink : public BOB::Base {
 public:
  My_Sink(<options>);
  virtual ~My_Sink();

  virtual BOB::Base* BindSource(BOB::Base* source);
  virtual void BindSink(BOB::Base* sink);
  virtual void Next(int status, void** error, char* data, size_t bytes);
  virtual void Pull(void** error, char* data, size_t size);

 private:
  BOB::Base* source_;
};

Sinks should implement BindSource roughly as so:

BOB::Base* My_Sink::BindSource(BOB::Base* source) {
  source->BindSink(static_cast<BOB::Base*>(this));
  source_ = source;

  return this;
}

Sources should implement BindSink roughly as so:

void FS_Source::BindSink(BOB::Base* sink) {
  sink_ = sink;
}

Functions specific to sources or sinks may exit the program if invoked:

void My_Sink::Pull(void** error, char* data, size_t size) {
  printf("Sinks do not have a public ::Pull!");
  abort();
}

Status enum

  • Send Status::CONTINUE as the first argument to a BOB sink's next() method in most cases.
  • Send Status::END as the first argument to a BOB sink's next() to end the stream.
  • Send Status::ERROR as the first argument to a BOB sink's next() if there is an error.

License

MIT LicensedContributions via DCO 1.1

Keywords

FAQs

Last updated on 15 Nov 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc