2008-08-27 03:51:24 +00:00
|
|
|
----------------------
|
|
|
|
--- IMPORTANT TODO ---
|
|
|
|
----------------------
|
2008-08-23 19:59:17 +00:00
|
|
|
- provide example rpc
|
2008-08-25 17:50:52 +00:00
|
|
|
- at least include extensions in Descriptor
|
2008-08-27 03:51:24 +00:00
|
|
|
- implement default values for most primitive types,
|
|
|
|
but not strings, bytes, or messages.
|
|
|
|
|
|
|
|
--------------------
|
|
|
|
--- NEEDED TESTS ---
|
|
|
|
--------------------
|
|
|
|
- test:
|
2008-08-27 02:14:42 +00:00
|
|
|
- service method lookups
|
|
|
|
- out-of-order fields in messages (ie if the number isn't ascending)
|
|
|
|
- gaps in numbers: check that the number of ranges is correct
|
2008-08-27 03:51:24 +00:00
|
|
|
- default values
|
2008-08-23 20:44:49 +00:00
|
|
|
|
2008-08-27 03:51:24 +00:00
|
|
|
---------------------
|
|
|
|
--- DOCUMENTATION ---
|
|
|
|
---------------------
|
|
|
|
Document:
|
|
|
|
- __INIT macro; explain current lifetime policy
|
|
|
|
- services
|
|
|
|
- default value handling
|
|
|
|
- note that the plan is to set the value to the default
|
|
|
|
for optional types, but NOT set has_* to TRUE.
|
|
|
|
That way, code can just ignore the has,
|
|
|
|
but we won't superfluously serialize the default value.
|
|
|
|
(Move this to the docs)
|
|
|
|
Also, for now, we won't init default values that require allocation.
|
|
|
|
- add to CAVEATS: defaults for messages, strings, bytes not initialized
|
|
|
|
by INIT macro. Rationale: would interfere with other allocator
|
|
|
|
systems... not clear if that's true.
|
2008-08-25 17:50:52 +00:00
|
|
|
- check over documentation again
|
2008-08-22 22:15:42 +00:00
|
|
|
|
2008-08-27 03:51:24 +00:00
|
|
|
--------------------------
|
|
|
|
--- LOW PRIORITY STUFF ---
|
|
|
|
--------------------------
|
2008-08-22 22:15:42 +00:00
|
|
|
- support Group (whatever it is)
|
|
|
|
- almost no code generator options are obeyed
|
|
|
|
- generate Init functions / handle default values
|
|
|
|
- proper support for extensions (not sure i get what's needed)
|
|
|
|
|
2008-08-27 03:51:24 +00:00
|
|
|
------------------------------------
|
|
|
|
--- EXTREMELY LOW PRIORITY STUFF ---
|
|
|
|
------------------------------------
|
2008-08-22 22:15:42 +00:00
|
|
|
- get rid of kThick/ThinSeparator if we decide not to use them
|
|
|
|
- stop using qsort in the code generator: find some c++ish way to do it
|
2008-08-27 03:51:24 +00:00
|
|
|
|
|
|
|
----------------------------------------------
|
|
|
|
--- ISSUES WE ARE PROBABLY GOING TO IGNORE ---
|
|
|
|
----------------------------------------------
|
|
|
|
- strings may not contain NULs
|
|
|
|
|
|
|
|
-------------------------
|
|
|
|
--- IDEAS TO CONSIDER ---
|
|
|
|
-------------------------
|
|
|
|
|
|
|
|
- lifetime functions for messages:
|
|
|
|
MESSAGE__INIT macro:
|
|
|
|
for static messages, doesn't handle defaults requiring allocation.
|
|
|
|
message__init_allocated_defaults (...)
|
|
|
|
for static messages, only touches default values that must
|
|
|
|
be allocated.
|
|
|
|
message__init(...)
|
|
|
|
initializes all defaults -- does allocations for strings etc
|
|
|
|
message__new()
|
|
|
|
return a new message using an allocator with standard allocation policy
|
|
|
|
message__unpack_onto(...)
|
|
|
|
unpack onto an initialized message
|
|
|
|
message__clear(...)
|
|
|
|
clears all allocations, does not free the message itself
|
|
|
|
message__free(...)
|
|
|
|
free the message.
|
|
|
|
[yeah, right: after typing it out, i see it's way too complicated]
|