Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

bob-base

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bob-base

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

  • 0.0.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
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

Package last updated on 15 Nov 2018

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc