Minor commentary updates to gdp-rest.c and several READMEs to reflect transition to GDP v2 Network.
Eliminate gdp_priv.h dependency via transition to gdp_datum_getrecno()
While debugging GDP RESTful gateway on GDP v2 network problems (newly migrated), valgrind turned up json object leaks in gdp-rest and a minor servinfo leak in scgi, which are both addressed by this commit. Some libgdp items also turned up which may be related to current problems, but those will be processed separately.
Update gdp-rest.c relative to gdp-create revisions, prior to moving RESTful gateway to GDP v2 Network.
Fix trailing white space glitches in several files; no code changes.
Update license date on all files. No functional changes.
Incorporate latest EX_CANTCREAT enhancement to skip "does it exist" test.
Update gdp-rest source to GDP Version 2 compatibility.
Change GDP_EVENT_EOS to GDP_EVENT_DONE, since it isn't specific to
subscriptions. Also documentation updates reflecting the datum changes
in the previous commit.
The grand renaming: GCL is (mostly) gone in favor of GOB and GIN.
Rather non-intuitive changes to suppress "return value not used"
warning; just (void)ing the call no longer works.
improved performance/reduced latency for EMG-GDP-Waffle Robot demo
Revise gdp-rest binary and -wrapper.sh to retry during intermittent DNS outages.
Fixed gcc-4.4.7: error: ‘for’ loop initial declarations are only allowed in C99 mode.
RESTful POST/PUT GCLs creation
RESTful API: use keep-in-cache with eventual reclaim option on read/append gdp gcl open
RESTful HTTP GET now returns response recno, eliminated minor mem leak on GET open/read fail path; RESTful HTTP POST no longer deadlocks on gcl self-lock error. Added standalone variant of gdp-rest service template.
Have gdp-rest notify systemd when ready to take commands.
Improve error message in gdp-rest and add some debugging.
Update licenses to 2017.
Make gdp-rest use fewer GDP library internal interfaces.
Next take on read-by-timestamp. This version works for read, multiread,
and subscribe. There are still some glitches (e.g., you can't have a
starting timestamp in the future) but fixing these would require major
code restructuring, and besides, you can't specify a starting record...
Rename ep_fopensmem => ep_fopen_smem for consistency with other names.
Update license. No code changes.
Code cleanup: pull out dead code (#ifdefed out) and old SVN version
Include copyright in all files. There are scripts to do bulk
replacement of the copyright if desired.
Add creation time to logs. This also changes the ep_time_format and
Tweak REST interface and documentation for new conventions.
Fix a problem that caused all REST commands to hang.
Change gdp_event_next to allow selection of events for a specific GCL.
Formatting fixes: remove trailing whitespace on lines.
Add placeholder qos requirements parameter on open.
Document gdp_gcl_getstat as taking a name, not a handle.
Rename PUBLISH => APPEND (API change).
Eliminate gdp_datum_setrecno and gdp_datum_setts (didn't make sense).
Fix example code in protocol documentation.
Change gdp_event_next to take an int64_t timeout (in nanoseconds);
also, convert it to use the new ep_thr_cond_wait "absolute time"
Make parameter names a bit more consistent.
Fix gdp-rest to not attempt to create GCLs (since at the moment that
would requiring knowing the "true name" of the gdplogd to store that
Begin change to new on-wire protocol. Involves lots of renaming.
Amazingly it still seems to run.
Change gclh => gcl throughout for consistency
Merge metadata work into callback work so that API changes will happen
at the same time.
Merge commit '57efec14997ab65a1bba56b8865a83acc8c041d7'
Change ep_thr_cond_wait and gdp_event_next to take timeout parameters
(NULL = forever). THESE CHANGE THE API!!
First step at implementing metadata. Internals are there, but there's
no way to use it yet.
Fix bogus declaration (struct json_t => json_t) in gdp-rest
Finish implementing first cut at key-value store.
Interim work on a key-value store in gdp-rest.
Allow recno=last in gdp-rest to get the last (most recently written)
record. Also does better command line usage checking.
Typo causing confused error messages.
Correctly return record number and timestamp for data POST
Correctly diagnose "GCL already exists" error on create.
Convert over to Jansson library.
New REST interface allowing for symbolic GCL names; moves much of the
specification into the query portion. Still a lot to be implemented.
Change gdp_init to take a parameter with the host:port info for
contacting the GDP daemon. Set most apps to take a -G flag to set this.
Make administrative parameter names consistent.
Eliminate datum->dlen; it's redundant now.
Fix typo when creating JSON return value.
Get POST working again, mostly by deleting code (!!)
Use strerror_r everywhere (this is a threaded application).
Representation changes and functionality fixes:
* Change representation of gdp_recno_t to be 64 bits.
* Replace tt_interval with EP_TIME_SPEC.
* Augment EP_TIME_SPEC to have a floating-point tv_accuracy field and
pack the structure to keep the whole thing to 16 bytes....
Clean out unnecessary #includes. Linux portability.
Another snapshot. Much closer to having subscriptions working.
Changes to use the new interface.
Basics appear to be working; still have some problems in gdpd_phys.
Snapshot. Starting to work, but not there yet.
Use a custom type for msgno.
Merge master head into gdp-multithread for checking by Siqi. If it is
working it can be merged back into master.
Revert "Format all gdp files with Allman style, hard tabs only, 4 tab stop"
This reverts commit efad251c484501f32f8d71ffaac0c52e07cbdb99.
Format all gdp files with Allman style, hard tabs only, 4 tab stop
Get gdp-rest working again.
Convert to using a thread for the event loop. There are probably locking issues yet to be discovered.
Unsuccessful attempt to make gdp-rest work. It turns out that it may be impossible to have one piece of code that can be used in an event-driven and an api-driven environment, which would mean that gdp-rest would need to be rewritten to not use most of the gdp library.
Use ep_app_progname instead of progname for linux portability.
Conversion from single process to library + daemon. [Why do I have to check this in a second time?]
Switch over to new 256-bit nexus names (no longer using uuid); switch the contents of messages to be completely opaque. Still need to store the content-type when creating a nexus.
Implement timestamp printing
ep_st_openmem => ep_fopensmem
ep_st_pprint => ep_pprint
Turn some compile time #defines into run-time parameters.
Update to allow multiple writers.