File: TODO

package info (click to toggle)
atlas-cpp 0.5.98-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 2,652 kB
  • ctags: 2,284
  • sloc: sh: 8,305; cpp: 6,372; python: 1,471; makefile: 216
file content (109 lines) | stat: -rw-r--r-- 3,801 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
New TODO by Al Riddoch

Cut down inlining from Codecs/Utility.h as functions are too large.

Create an equivalent for Anonymous which inherits from RootOperation.
Can be used in objectFactory when there is no factory, but objtype is op.
This may also solve the messy problem with custom op types.

I am pretty sure vector is better than list for lots of things.

Add template member to Objects for list types, so that value can be queried
into anything that implements operator[]
Something like:
    template<typename VectorT>
    int getPos(VectorT & v) {
        v[0] = m_pos[0];
        ...
    }
How much does this really help? Not sure.

Make sure objects deep copy really copies arguments of ops.

hasAttr currently returns true if a hardcoded attribute is not really set.
Needs fixing - very counterintuitive.

Add setParents1()

Don't use explicit Element constructor when assigning to another Element.

Note that Atlas::Message::Element segfaults of a map is set to be a member
of itself.

Don't pass Bridge to StreamFoo at construction time. Its not required until
getCodec() time. Make it an argument of getCodec(). Bridge passed to Codec
should be a reference rather than a pointer.

Fix all use of if (..) .. to always use { } in Root.h etc.

Make sure parents and objtype are not sent if they are empty.

If we move get|set(...)AsList() methods from Root.h and other headers,
into body, we will remove the need for Element.h from any header.
This is also the key to removing SmartPtr.h from Root*.h

There is some inefficient copying going on in the way args are encoded.

Note that most people are not interested in the Objects::Decoder also
handling dispatch. Just decode and pass to the application.

Invstigate removing methods which only exist to prevent hiding methods in the
base class. This should be possible now that the methods do not have the same
name.

Ensure that the Decoder method registration code is type safe. Probably good
to use templates.

Items below are probably still valid, but this is where i reconsider the
order and priority of tasks, and make my own notes.

Write a very fast binary codec, with a name derived from our architecture.

Make the code for adding new decoder methods templaty so we can ovoid nasty casting.

Write codecs, connectors and acceptors for datagram based communication,
specialising Codec<> template using an abstract datagram class interface.

Write acceptor/negotiator for file based atlas, to load from a file
of unknown codec.

Modify the objects API so we can track which attributes have been set, rather
than relying on their value. Then we can get orientation, and perhaps even
bbox into the spec, and support that well.

Add cout operators for Message::Object at least. Its a pain having to mess about
with them.

TODO list for Atlas-C++:

Items are written up by those who they are assigned to, unless otherwise noted
(using " -- ").

TODO in the 0.5 devel series

 - ensure that the Objects code uses member construction efficiently, as
     was done in 0.4.2

 - Make sure exceptions inherit from std::exception

 - Stop passing Objects when Object::MapType is the only option

TODO items for anybody who wants to do them:

 - add input filtering to Atlas::filterbuf -- sdt
 - make use of Atlas::filterbuf -- sdt
     look for XXX in src/Net/Stream.cpp -- sdt
 - finish tutorial -- sdt
 - rewrite negotiate [0.3.[9|10] / 0.4.0 ] -- sdt
 - add docs to: [0.4.0]
    * Atlas::Net::Stream[Accept|Connect]
     -- sdt
 - write tests/ [0.4.0 / 0.3.10] -- sdt
 - make all tests succeed [0.4.0] -- sdt
 - make use of metrics in negotiation and elsewhere -- sdt [0.4.x]

Notes:

Stefanus Du Toit is no longer participating largely.
Michael Day is no longer participating largely.
Al Riddoch has now taken over ownership this code.