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
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
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
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
6df466c692
Update http code for http parser API changes
2014-03-06 21:44:29 -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
Howard Hinnant
bb02112752
Fix clang warnings
2014-02-28 12:15:12 -08:00
Vinnie Falco
496b337b27
General refactoring, using C++11
...
* Remove broken RecycledObjectPool
* Fix beast::ServiceQueue using List instead of LockFreeStack
* Add class semaphore, fixes broken Semaphore
* Move crytpo module files to new beast directory
* Use c++11 replacements for boost and beast types:
- std::atomic instead of beast::Atomic
- std::function instead of boost::function, beast::function
- std::unique_ptr instead of beast::ScopedPointer
- std::shared_ptr instead of boost::shared_ptr
* Remove modules:
- beast_db
- beast_crypto
- beast_extras
* Remove unnecessary classes:
- AbstractFifo
- AddConst
- AtomicCounter
- AtomicFlag
- AtomicPointer
- AtomicState
- CopyConst
- Expression
- ForwardList
- IfCond
- Interval
- IntrusiveArray
- KeyvaDB
- PointerToOther
- PointerTraits
- RemoveConst
- RemoveConstVolatile
- RemoveReference
- RemoveVolatile
- SharedObjectArray
- SingleThreadedSharedObject
- SophiaDB factory
- SortedSet
- WeakReference
- beast::unique_ptr
2014-01-07 15:57:45 -08:00
NATTSiM
eb19343f91
Fix clang compile
2013-12-27 17:46:51 -08:00
Nik Bougalis
370d98a858
Add reference counting to AsyncObject
2013-12-19 14:39:26 -08:00
Vinnie Falco
56c5c2ebaa
Fix compile error
2013-11-05 03:09:39 -08:00
Vinnie Falco
4ed36da458
Fix error parameter in HTTPClient logic
2013-10-31 08:10:06 -07:00
Vinnie Falco
8604e216eb
Add IPAddressConversion and asio module
2013-10-22 11:45:30 -07:00
Vinnie Falco
3cf0729878
Tidy up AbstractHandler usage in HTTPClient
2013-10-05 15:38:27 -07:00
Vinnie Falco
b60a7f3363
Add Request and Response HTTP parsers
2013-10-04 14:33:55 -07:00
Vinnie Falco
44445ff1b8
Refactor net buffers classes
2013-10-04 14:33:55 -07:00
Vinnie Falco
ac37c38133
Beast class refactor
2013-10-03 19:03:10 -07:00
Vinnie Falco
8b7056b06c
Fix eof on HTTP client get
2013-10-03 18:36:55 -07:00
Vinnie Falco
e132aabdae
Use boost for functional when the config is set
2013-09-28 15:09:10 -07:00
Vinnie Falco
026b9268ae
Fix is_continuation for boost version
2013-09-28 15:09:09 -07:00
Vinnie Falco
c807a4e383
Fix invoked_type type reference
2013-09-28 15:09:09 -07:00
Vinnie Falco
9c61a6df62
Added AbstractHandler, WrapHandler. HTTPClient Fixes.
2013-09-28 15:09:07 -07:00
Vinnie Falco
1ef044d628
Build fixes
2013-09-27 05:15:55 -07:00
Vinnie Falco
5c5de57290
Reorganize beast modules and files
2013-09-23 10:13:24 -07:00
Vinnie Falco
1a3cddc002
Add SharedArg and AsyncObject
2013-09-22 11:51:43 -07:00
Vinnie Falco
373ca9cef0
Add HTTPRequest and improvements to HTTPMessage parsing
2013-09-22 11:51:43 -07:00
Vinnie Falco
7efb6a3ab8
Reorganize some MPL and Utility classes and files
2013-09-19 21:37:47 -07:00
Vinnie Falco
77874ee518
Use new instead of ::new for placement
2013-09-17 17:47:05 -07:00
Vinnie Falco
9eda4bc6fa
Make SharedObject members const, the counter mutable
2013-09-12 04:47:03 -07:00
Vinnie Falco
8c522aa758
Fix off by one in pending i/o count on HTTPClient
2013-09-11 21:40:17 -07:00
Vinnie Falco
057344e1af
Add HTTPMessage::toString and family
2013-09-11 20:04:23 -07:00
Vinnie Falco
ee728e3dbc
Add UniformResourceLocator::empty
2013-09-11 19:58:11 -07:00
Vinnie Falco
d2d946204c
Improvements to BuffersType
2013-09-09 10:50:35 -07:00
Vinnie Falco
f0c57cf95c
Add HTTPClientType and HTTPMessage related helpers
2013-09-07 11:53:38 -07:00
Vinnie Falco
497c8aeabf
Add ContentBodyBuffer
2013-09-07 11:53:37 -07:00
Vinnie Falco
c35843fda5
Add SharedFunction to replace boost::function
2013-09-07 11:53:36 -07:00
Vinnie Falco
637eafedee
Add UniformResourceLocator and ParsedURL
2013-09-07 11:53:34 -07:00
Vinnie Falco
3f74cb76e9
Rename boost_asio files
2013-09-07 11:53:34 -07:00
Vinnie Falco
f79b34b2c9
Add http-parser to boost_asio
2013-09-07 11:53:33 -07:00
Vinnie Falco
85ced3dbf7
Use destroy() override instead of ContainerDeletePolicy for SharedObject
2013-09-07 11:53:32 -07:00
Vinnie Falco
a386b458fb
Merge commit '60d5ca452314e0131993e1adcc004394fb64eed2' as 'Subtrees/beast/modules/beast_asio/parsehttp'
2013-09-06 12:46:39 -07:00
Vinnie Falco
201221253d
Refactor SharedPtr and fix ContainerDeletePolicy bug
2013-09-05 04:22:26 -07:00
Vinnie Falco
d9d291abcb
Tidy up includes and header material
2013-08-30 17:33:33 -07:00
Vinnie Falco
38516ef793
Tidy up beast project files
2013-08-30 17:24:32 -07:00
Vinnie Falco
3c79ebda17
Add toString for IPv4Address
2013-08-25 01:57:50 -07:00
Vinnie Falco
46e5dc2f5c
Add SSLContext
2013-08-25 01:57:50 -07:00