author | Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
Fri, 11 May 2007 18:42:39 +0200 | |
changeset 578 | e305018537c9 |
parent 573 | src/core/ns-unknown.h@0da9201a048e |
child 579 | 7e31a7f75fee |
permissions | -rw-r--r-- |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
1 |
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
2 |
/* |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
3 |
* Copyright (c) 2007 INRIA |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
4 |
* All rights reserved. |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
5 |
* |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
6 |
* This program is free software; you can redistribute it and/or modify |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
7 |
* it under the terms of the GNU General Public License version 2 as |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
8 |
* published by the Free Software Foundation; |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
9 |
* |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
10 |
* This program is distributed in the hope that it will be useful, |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
13 |
* GNU General Public License for more details. |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
14 |
* |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU General Public License |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
16 |
* along with this program; if not, write to the Free Software |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
17 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
18 |
* |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
19 |
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
20 |
*/ |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
21 |
#ifndef INTERFACE_H |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
22 |
#define INTERFACE_H |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
|
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
24 |
#include <string> |
568
e1660959ecbb
use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
567
diff
changeset
|
25 |
#include "ptr.h" |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
26 |
|
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
27 |
namespace ns3 { |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
28 |
|
509
2338d9fddbc0
rename the class itself
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
508
diff
changeset
|
29 |
class NsUnknownImpl; |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
30 |
|
525
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
31 |
class Iid |
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
32 |
{ |
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
33 |
public: |
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
34 |
Iid (std::string name); |
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
35 |
private: |
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
36 |
friend bool operator == (const Iid &a, const Iid &b); |
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
37 |
uint32_t m_iid; |
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
38 |
}; |
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
39 |
|
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
40 |
/** |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
41 |
* \brief COM-like IUnknown |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
42 |
* |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
43 |
* This class should be used as a base class for every object which |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
44 |
* wishes to provide a COM-like QueryInterface API. Multiple |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
45 |
* inheritance where this base class is at the top of the dreaded |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
46 |
* "diamond" shape is not allowed. |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
47 |
*/ |
509
2338d9fddbc0
rename the class itself
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
508
diff
changeset
|
48 |
class NsUnknown |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
49 |
{ |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
50 |
public: |
509
2338d9fddbc0
rename the class itself
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
508
diff
changeset
|
51 |
virtual ~NsUnknown (); |
567
6fb98941c36f
remove leaks and rework the Ptr class to work with a new refcount mechanism
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
525
diff
changeset
|
52 |
void Ref (void) const; |
6fb98941c36f
remove leaks and rework the Ptr class to work with a new refcount mechanism
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
525
diff
changeset
|
53 |
void Unref (void) const; |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
54 |
|
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
55 |
/** |
509
2338d9fddbc0
rename the class itself
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
508
diff
changeset
|
56 |
* \param iid the NsUnknown id of the requested interface |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
57 |
*/ |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
58 |
template <typename T> |
568
e1660959ecbb
use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
567
diff
changeset
|
59 |
Ptr<T> QueryInterface (Iid iid) const; |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
60 |
|
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
61 |
/** |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
62 |
* \param interface another interface |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
63 |
* |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
64 |
* Aggregate together the two interfaces. After this call, |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
65 |
* the two interface objects are tied together: each of them |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
66 |
* will be able to perform QI on each other and their lifetimes |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
67 |
* will be found by the same reference count. |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
68 |
*/ |
568
e1660959ecbb
use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
567
diff
changeset
|
69 |
void AddInterface (Ptr<NsUnknown> interface); |
510
0a7bc08999fa
add NsUnknown::Dispose
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
509
diff
changeset
|
70 |
|
513
b7c7ea629de9
make L3Demux an NsUnknown object.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
511
diff
changeset
|
71 |
void Dispose (void); |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
72 |
protected: |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
73 |
/** |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
74 |
* \param iid the Interface Id of the interface defined by a direct subclass |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
75 |
* of this base class |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
76 |
* |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
77 |
* If you are a direct subclass of this class, you _must_ register |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
78 |
* the name of your interface with this constructor. |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
79 |
*/ |
525
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
80 |
NsUnknown (Iid iid); |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
81 |
/** |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
82 |
* \param iid the Interface id of the interface |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
83 |
* \param a pointer to the interface object |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
84 |
* |
509
2338d9fddbc0
rename the class itself
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
508
diff
changeset
|
85 |
* If you are not a direct subclass of the ns3::NsUnknown base class, |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
86 |
* and if you want to register yourself as another accessible interface |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
87 |
* (typically, your subclass has added API), you need to call |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
88 |
* this method to associate an interface id to your interface. |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
89 |
*/ |
568
e1660959ecbb
use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
567
diff
changeset
|
90 |
void AddSelfInterface (Iid iid, Ptr<NsUnknown> interface); |
513
b7c7ea629de9
make L3Demux an NsUnknown object.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
511
diff
changeset
|
91 |
protected: |
b7c7ea629de9
make L3Demux an NsUnknown object.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
511
diff
changeset
|
92 |
/** |
b7c7ea629de9
make L3Demux an NsUnknown object.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
511
diff
changeset
|
93 |
* Subclasses who want to handle the "dispose" event should |
b7c7ea629de9
make L3Demux an NsUnknown object.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
511
diff
changeset
|
94 |
* override this method. They are also responsible for |
b7c7ea629de9
make L3Demux an NsUnknown object.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
511
diff
changeset
|
95 |
* "chaining up" to their parent class' DoDispose method |
b7c7ea629de9
make L3Demux an NsUnknown object.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
511
diff
changeset
|
96 |
* once they have done their own "dispose". |
b7c7ea629de9
make L3Demux an NsUnknown object.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
511
diff
changeset
|
97 |
*/ |
b7c7ea629de9
make L3Demux an NsUnknown object.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
511
diff
changeset
|
98 |
virtual void DoDispose (void); |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
99 |
private: |
509
2338d9fddbc0
rename the class itself
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
508
diff
changeset
|
100 |
friend class NsUnknownImpl; |
511
1a379b68cabc
disable the default constructor to avoid bugs
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
510
diff
changeset
|
101 |
NsUnknown (); |
568
e1660959ecbb
use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
567
diff
changeset
|
102 |
Ptr<NsUnknown> DoQueryInterface (Iid iid) const; |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
103 |
void RefInternal (void); |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
104 |
void UnrefInternal (void); |
509
2338d9fddbc0
rename the class itself
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
508
diff
changeset
|
105 |
NsUnknownImpl *m_impl; |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
106 |
uint32_t m_ref; |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
107 |
}; |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
108 |
|
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
109 |
}//namespace ns3 |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
110 |
|
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
111 |
namespace ns3 { |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
112 |
|
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
113 |
template <typename T> |
568
e1660959ecbb
use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
567
diff
changeset
|
114 |
Ptr<T> |
525
4a6c58f0e327
define class Iid to replace the uint32_t as suggested by Gustavo
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
513
diff
changeset
|
115 |
NsUnknown::QueryInterface (Iid iid) const |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
116 |
{ |
568
e1660959ecbb
use Ptr<> everywhere Object or NsUnknown are used
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
567
diff
changeset
|
117 |
Ptr<NsUnknown> found = DoQueryInterface (iid); |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
118 |
if (found != 0) |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
119 |
{ |
573
0da9201a048e
rename Ptr::Get and Ptr::Peek to GetPointer and PeekPointer
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
568
diff
changeset
|
120 |
return Ptr<T> (dynamic_cast<T *> (PeekPointer (found))); |
507
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
121 |
} |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
122 |
return 0; |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
123 |
} |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
124 |
|
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
125 |
|
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
126 |
}//namespace ns3 |
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
127 |
|
79e688066a2f
airplane COM code
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
128 |
#endif /* INTERFACE_H */ |