Vinnie Falco
6b467e7e59
Move hardened_hash to container/
2014-03-25 15:22:34 -07:00
Vinnie Falco
d64f5a387c
Add beast SConstruct and .travis.yml
2014-03-25 15:22:34 -07:00
Nik Bougalis
cc6cd0bb8f
Transactor journal support and small cleanups
2014-03-25 15:22:13 -07:00
Vinnie Falco
3fbff6e620
beast cleanup and tidying:
...
* Replace custom types with C++11 <cstdint> types
* Fix sqlite integer intos and uses
* Fix String implicit integer constructors
* Escape the enclosing namespace in sqdb
* Replace contract checks with assert
* Make many header files compile independently
* Remove the dependence on beast_core.h in many places
* Remove unused or obsolete classes and functions
* Remove unused or obsolete macros
* Remove unused network functions and files
* Remove unused or obsolete classes:
- ChildProcess
- HighResolutionTimer
- InterProcessLock
- Throw
- TrackedMutex
- UntrackedMutex
- XmlDocument
- XmlElement
2014-03-23 15:23:55 -07:00
Vinnie Falco
5eb0aa2765
Add hardened_hash, prevents adversarial inputs
2014-03-22 18:42:18 -07:00
Vinnie Falco
f63cf33118
New unit_test framework:
...
* Header-only!
* No external dependencies or other beast modules
* Compilation options allow for:
- Stand-alone application to run a single test suite
- Stand-alone application to run a set of test suites
- Global suite of tests inline with the host application
- Disable test suite generation completely
* Existing tests reworked to use the new classes
2014-03-21 18:00:37 -07:00
Vinnie Falco
0bb6171a85
beast.streams improvements:
...
* New basic_std_ostream wraps any std::stream.
* New debug_ostream redirects output to debugger if attached.
2014-03-21 07:33:16 -07:00
Vinnie Falco
e92dd73169
Add const_container
2014-03-21 07:33:16 -07:00
Vinnie Falco
2d490f6e6a
beast cleaning and tidying:
...
* Consolidate small modules into one
* Remove Android-specific platform support
* Remove Chrono.h from beast_core.h
* Removed files:
- TypeTraits.h
- Utility.h
- Net.h
- Asio.h
* Remove zlib support:
- Remove inline zlib library sources
- Remove GZIPCompressorOutputStream
- Remove GZIPDecompressorInputStream
* Remove obsolete or unused classes:
- AbstractObject
- BigInteger
- BufferedInputStream
- CacheLine
- CPUMeter
- DatagramSocket
- DynamicObject
- FileLogger
- FPUFlags
- Identifier
- JSON
- LocalisedStrings
- MACAddress
- MemoryAlignment
- MemoryInputStream
- MemoryMappedFile
- NamedValueSet
- OptionalScopedPointer
- PerformanceCounter
- PropertySet
- ScopedTimeInterval
- SparseSet
- SpinDelay
- StreamingSocket
- StringPool
- SubregionStream
- Uuid
- Variant
2014-03-21 07:30:50 -07:00
Vinnie Falco
761affacc3
Update to SQLite 3.8.4.1
2014-03-20 19:17:25 -07:00
Howard Hinnant
979c834ee0
Fix and add tests for empty_base_optimization.
2014-03-20 13:47:48 -07:00
Vinnie Falco
aff0ec18b0
Fix error code assignment in raw_parser
2014-03-20 10:43:01 -07:00
Vinnie Falco
d32b91e0de
Add abstract streams module:
...
* New basic_abstract_ostream template for generic output
* New abstract_ostream, common type alias
* basic_scoped_ostream, RAII output to abstract streams
2014-03-19 15:42:20 -07:00
Vinnie Falco
8b659a6d32
Add workaround/noexcept.h for visual studio
2014-03-19 13:42:05 -07:00
Vinnie Falco
18486169b3
Change to the treatment of BeastConfig.h
...
* No longer requires its own compiler include path
* Includes use relative paths to locate the file
* Client applications include the file themselves
* Inclusion of BeastConfig.h can be controlled via preprocessor directive
2014-03-19 13:42:04 -07:00
Howard Hinnant
d580e7c694
General tidy and refactoring:
...
* Use nullptr (C++11) instead of NULL.
* Put each file into its own namespace declaration.
* Remove "using namespace" directives and add scope qualifiers.
* Control when beast's implementation of std::equal (C++14) is used.
* Tidy up some const declarations.
Conflicts:
src/ripple_app/shamap/SHAMapSync.cpp
src/ripple_app/tx/TransactionEngine.cpp
2014-03-19 13:42:01 -07:00
Vinnie Falco
78ec5ccdbc
Restructure joyent message parser (from Node.js):
...
* New http::raw_parser wrapper
* Convert parser errors to error_code
* Enumeration and strings for parsed HTTP method
* Move parser engine into joyent namespace
* Rename includes to be distinct
2014-03-19 10:41:24 -07:00
Vinnie Falco
d4a5c0353d
beast, beast::asio improvements and fixes:
...
* New maybe_const_t alias for maybe_const
* New asio::enable_wait_for_async for safe cleanup
* New asio::memory_buffer, a managed boost::asio compatible buffer
* shared_handler improvements:
- Can be 'empty' (no stored handler).
- Default constructible as 'empty'.
- Safe evaluation in bool contexts, false==empty
* Fix is_call_possible metafunction:
- Works on empty argument lists
- Works with reference types
* Replace SafeBool idiom with C++11 explicit operator bool
* Move IPAddress function definitions to the header
* Move cyclic_iterator to container/
* Remove unused BufferType
* Remove obsolete classes:
- NamedPipe
- ReadWriteLock
- ScopedReadLock
- ScopedWriteLock
- LockGuard
2014-03-17 17:40:55 -07:00
Vinnie Falco
6546c30e17
Refactor beast::asio:
...
* New tools for completion handlers:
- wrap_handler provides composed io_service execution guarantees.
- bind_handler rebinds arguments to handlers.
- shared_handler type-erases any completion handler.
- buffer_sequence type-erases templated BufferSequences
- abstract_socket replaces Socket
- socket_wrapper replaces SocketWrapper
- beast::asio placeholders to work with std::bind
* Removed obsolete classes and functions
- AbstractHandler
- ComposedAsyncOperation
- SharedFunction
- SharedHandler
- SharedHandlerAllocator
- SharedHandlerPtr
- SharedHandlerType
- SocketBase
- SocketWrapperStrand
- wrapHandler
* Refactored classes to use new tools
- abstract_socket
- socket_wrapper
- HandshakeDetector
- HttpClientType
* Miscellanous tidying
- socket classes moved to beast::asio namespace
- beast asio files provide their own namespace declaration.
- Fix IsCallPossible conflicting template parameter name
- Use <boost/get_pointer.hpp> for C++11 compatibility.
- Remove extraneous include path from build environment.
2014-03-14 08:03:48 -07:00
Vinnie Falco
5478c540cb
Add std::integer_sequence C++14 compatibility
2014-03-14 07:57:20 -07:00
Vinnie Falco
b5d81f4f92
Add beast::buffer_view
2014-03-14 07:57:19 -07:00
Vinnie Falco
2a99a8350f
Add C++11 noexcept compatibility for VS2013
2014-03-14 07:57:19 -07:00
JoelKatz
028935a254
Handle unexpected relative paths from __FILE__
...
Fixes comref#RIPD-133
2014-03-13 16:49:20 -07:00
Vinnie Falco
6df466c692
Update http code for http parser API changes
2014-03-06 21:44:29 -08:00
Vinnie Falco
956f2b98b8
Merge commit '6c0edd2190bfd18ffc523f486367da3724cf98a3' into develop
2014-03-06 21:22:22 -08:00
Howard Hinnant
4e3dcd1ce6
Fix beast::asio failures on OS X.
...
There are 38 unittest failures on OS X. These changes address all of
them by adjusting which side of the socket (send or receive) gets
shut down. In each case, the failure was 'Socket is not connected'.
I've interpreted that to mean that the other thread had already shut
down its side of the connection.
2014-03-04 15:43:33 -08:00
Vinnie Falco
a690690b53
Remove unused TextDiff
2014-03-04 07:23:53 -08:00
Vinnie Falco
b9d0bf8822
Consolidate C++14 compatibility into new headers
2014-03-03 18:51:56 -08:00
Howard Hinnant
bb02112752
Fix clang warnings
2014-02-28 12:15:12 -08:00
Vinnie Falco
8eddcfd3d5
Remove unused classes
2014-02-28 12:03:33 -08:00
Vinnie Falco
78e1995365
New utility classes, containers, C++14 compatibility, and fixes:
...
* Add std::equal_to <void> (since C++14)
* Add heterogeneous std::equal (since C++14)
* Add maybe_const
* Add empty_base_optimization
* Add is_constructible specialization for pair, tuple
* Add aged associative containers:
- aged_set, aged_map, aged_multiset, aged_multimap
- aged_unordered_set, aged_unordered_map,
- aged_unordered_multiset, aged_unordered_multimap
* Fix auto keyword pass by reference
* Fix basic_seconds_clock warning and project file
2014-02-24 19:25:01 -08:00
Vinnie Falco
c48b9244f2
Remove deprecated IPAddress
2014-02-22 21:33:00 -08:00
Vinnie Falco
e219008320
Make abstract_clock members const
2014-02-14 11:14:09 -08:00
Vinnie Falco
f603ae175b
Add chrono APIs to DeadlineTimer
2014-02-12 12:58:20 -08:00
Nicholas Dudfield
f62d034692
Fix clang compile error
2014-02-11 19:13:45 -08:00
Vinnie Falco
deb180cc83
Update beast project file
2014-02-10 19:48:37 -08:00
Vinnie Falco
17b970a387
Fix insight object lifetimes in Group
2014-02-08 10:48:54 -08:00
Vinnie Falco
d060eb498f
Improved logging for insight stat packets
2014-02-08 09:33:04 -08:00
NATTSiM
c2bc7e2c30
Fix clang compile
2014-02-07 08:09:15 -08:00
Vinnie Falco
eb5691e8fa
Change bassert to always call assert
2014-02-06 14:30:03 -08:00
Vinnie Falco
864b20565b
Refactor IP::Endpoint
2014-02-05 15:53:16 -08:00
Vinnie Falco
3e6818b407
Remove obsolete Visual Studio projects
2014-02-05 15:42:28 -08:00
Vinnie Falco
aaced060bf
Add basic_seconds_clock, insight::Groups
2014-02-03 22:55:47 -08:00
Vinnie Falco
af77ff3eed
Update Visual Studio 2013 project file
2014-02-03 22:36:29 -08:00
Vinnie Falco
98162cec33
Update project build requirements
...
* Add Visual Studio 2013 project file
* Update SConstruct for boost 1.55.0
2014-02-03 16:58:32 -08:00
Vinnie Falco
048a2d7bc3
Fix PropertyStream overloads
2014-01-29 07:53:27 -08:00
Vinnie Falco
307ad244b0
Use duration in insight::Event, add chrono_util
2014-01-21 10:28:35 -05:00
Vinnie Falco
0c0fa877cf
Add ScopedPointer::reset
2014-01-21 10:28:34 -05:00
Vinnie Falco
49bd8ac880
Tidy up for C++11, and fixes:
...
* Remove shared_ptr legacy support
* Add make_unique support for pre-C++14 environments
* Fix comparison bug in sqdb
* Use std::shared_ptr in a few places
2014-01-17 12:19:04 -05:00
Vinnie Falco
969ea98fd9
Add std::make_unique
2014-01-17 12:19:03 -05:00