Code Monkey home page Code Monkey logo

kssio's Issues

unit test of poller is failing intermittently

Seems to occur more on Linux than macOs, but I've seen it on the mac as well.

steve@parallels-vm:/media/psf/Home/Documents/Sources/kss/Libraries/kssio$ make check
LD_LIBRARY_PATH=".build/Linux-x86_64/lib" .build/Linux-x86_64/tests/unittest
Running test suites for KSSIO...
  ...........F.
  Passed 12 of 13 test suites, 1 failed.
  Failures:
    poller.cpp: 139, d.numRead() == static_cast<ssize_t>(mydata.size() * 5)
  Completed in 0.022468s.
BuildSystem/common.mk:182: recipe for target 'check' failed
make: *** [check] Error 1

Create stream based socket controls

Likely written on top of the client/server infrastructure, we would like to provide the programmer with an iostream that is backed by a socket.

This should probably go in the namespace kss::io::net.

add a tee

something similar to the tee command (but in code) or the go io.MultiWriter

Automatically handle the dependancies

I would like to expand the build system so that dependancies can be specified and automatically downloaded and compiled when needed. The goals of this would be the following:

  • Specify a URL for the dependancy (e.g. https://github.com/yaml/libyaml.git)
  • Automatically determine if the dependancy is out of date
  • Automatically (or perhaps semi-automatically e.g. "make update-prereqs") download and build the prerequisites.
  • Link them statically so they do not conflict/depend on anything else.

add a rolling file class

The idea would be to allow the programmer to write to a stream while under the hood the file is automatically broken up based on a maximum size.

Add service discovery

See the "add_service_discovery" branch from KSSCore and use it as a starting point.

The goal is to have a simple C++ based front end on Bonjour/Avahi.

Create reusable TCP/IP based client/server architecture

The key idea is to allow client or server applications to be written while shielding the developers from the details of the socket and related calls.

Some of the features we would like to see:

  • easy to use wrappers around the C calls
  • exception based error handling
  • lambda based message handling
  • client/server code should be independent from each other
  • integration will the Poller class.

ensurePath is not thread safe

The current implementation changes to each directory as it creates it, changing back when the entire path has been created. This causes problems when running in multiple threads.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.