blob: 94bc1002befd7a6a27d560784148aee5ad2d1d68 [file] [log] [blame]
brians343bc112013-02-10 01:53:46 +00001namespace aos {
2
3// The easiest way to hack this together is to have the scoped msg pointer not
4// manage the pointer, since it is a pointer to the only msg in the queue.
5template <class T>
6bool ScopedMessagePtr<T>::Send() {
7 msg_->SetTimeToNow();
8 reset();
9 return true;
10}
11
12template <class T>
13bool ScopedMessagePtr<T>::SendBlocking() {
14 msg_->SetTimeToNow();
15 reset();
16 return true;
17}
18
19template <class T>
20void ScopedMessagePtr<T>::reset(T *msg) {
21 msg_ = msg;
22}
23
24template <class T>
25void Queue<T>::Init() {}
26
27template <class T>
28bool Queue<T>::FetchNext() {
29 Init();
30 return true;
31}
32
33template <class T>
34bool Queue<T>::FetchNextBlocking() {
35 Init();
36 return true;
37}
38
39template <class T>
40bool Queue<T>::FetchLatest() {
41 Init();
42 return true;
43}
44
45template <class T>
46ScopedMessagePtr<T> Queue<T>::MakeMessage() {
47 Init();
48 return ScopedMessagePtr<T>(&msg_);
49}
50
51template <class T>
52aos::MessageBuilder<T> Queue<T>::MakeWithBuilder() {
53 Init();
54 return aos::MessageBuilder<T>(&msg_);
55}
56
57} // namespace aos