protobuf-c/TODO
lahiker42 f3ed0fa1c9 updates to work with latest protobuf
git-svn-id: https://protobuf-c.googlecode.com/svn/trunk@63 00440858-1255-0410-a3e6-75ea37f81c3a
2008-09-09 18:18:28 +00:00

80 lines
2.7 KiB
Plaintext

----------------------
--- IMPORTANT TODO ---
----------------------
- provide example rpc
- at least include extensions in Descriptor
- proper support for extensions
- slot for ranges in descriptor
- parent in descriptor
- "extends" is implemented as c-style derivation
- cast macros?
- implement default values for most primitive types,
but not strings, bytes, or messages.
- ensure enums are int-size
--------------------
--- NEEDED TESTS ---
--------------------
- test:
- 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
- default values
---------------------
--- DOCUMENTATION ---
---------------------
Document:
- 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.
- check over documentation again
--------------------------
--- LOW PRIORITY STUFF ---
--------------------------
- support Group (whatever it is)
- almost no code generator options are obeyed
- generate Init functions / handle default values
------------------------------------
--- EXTREMELY LOW PRIORITY STUFF ---
------------------------------------
- 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
----------------------------------------------
--- 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]