20 * Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
20 * Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
21 */ |
21 */ |
22 |
22 |
23 #include "ns3/log.h" |
23 #include "ns3/log.h" |
24 #include "ns3/packet.h" |
24 #include "ns3/packet.h" |
|
25 #include "node.h" |
25 #include "socket.h" |
26 #include "socket.h" |
|
27 #include "socket-factory.h" |
26 |
28 |
27 NS_LOG_COMPONENT_DEFINE ("Socket"); |
29 NS_LOG_COMPONENT_DEFINE ("Socket"); |
28 |
30 |
29 namespace ns3 { |
31 namespace ns3 { |
30 |
32 |
|
33 #if 0 |
|
34 TypeId |
|
35 Socket::GetTypeId (void) |
|
36 { |
|
37 static TypeId tid = TypeId ("ns3::Socket") |
|
38 .SetParent<Object> () |
|
39 .AddConstructor<Socket> () |
|
40 ; |
|
41 return tid; |
|
42 } |
|
43 |
|
44 #endif |
|
45 |
|
46 Socket::Socket (void) |
|
47 { |
|
48 NS_LOG_FUNCTION_NOARGS (); |
|
49 } |
|
50 |
31 Socket::~Socket () |
51 Socket::~Socket () |
32 { |
52 { |
33 NS_LOG_FUNCTION_NOARGS (); |
53 NS_LOG_FUNCTION_NOARGS (); |
34 } |
54 } |
35 |
55 |
36 void |
56 void |
37 Socket::SetCloseUnblocksCallback (Callback<void,Ptr<Socket> > closeUnblocks) |
57 Socket::SetCloseUnblocksCallback (Callback<void,Ptr<Socket> > closeUnblocks) |
38 { |
58 { |
39 NS_LOG_FUNCTION_NOARGS (); |
59 NS_LOG_FUNCTION_NOARGS (); |
40 m_closeUnblocks = closeUnblocks; |
60 m_closeUnblocks = closeUnblocks; |
|
61 } |
|
62 |
|
63 Ptr<Socket> |
|
64 Socket::CreateSocket (Ptr<Node> node, TypeId tid) |
|
65 { |
|
66 Ptr<Socket> s; |
|
67 Ptr<SocketFactory> socketFactory = node->GetObject<SocketFactory> (tid); |
|
68 s = socketFactory->CreateSocket (); |
|
69 NS_ASSERT (s != 0); |
|
70 return s; |
41 } |
71 } |
42 |
72 |
43 void |
73 void |
44 Socket::SetCloseCallback (Callback<void,Ptr<Socket> > closeCompleted) |
74 Socket::SetCloseCallback (Callback<void,Ptr<Socket> > closeCompleted) |
45 { |
75 { |
298 SocketRxAddressTag::GetAddress (void) const |
328 SocketRxAddressTag::GetAddress (void) const |
299 { |
329 { |
300 return m_address; |
330 return m_address; |
301 } |
331 } |
302 |
332 |
|
333 SocketIpTtlTag::SocketIpTtlTag () |
|
334 { |
|
335 } |
|
336 |
|
337 uint32_t |
|
338 SocketIpTtlTag::GetUid (void) |
|
339 { |
|
340 static uint32_t uid = ns3::Tag::AllocateUid<SocketIpTtlTag> ("SocketIpTtlTag.ns3"); |
|
341 return uid; |
|
342 } |
|
343 |
|
344 void |
|
345 SocketIpTtlTag::Print (std::ostream &os) const |
|
346 { |
|
347 os << "ttl="<< m_ttl; |
|
348 } |
|
349 |
|
350 uint32_t |
|
351 SocketIpTtlTag::GetSerializedSize (void) const |
|
352 { |
|
353 return 0; |
|
354 } |
|
355 |
|
356 void |
|
357 SocketIpTtlTag::Serialize (Buffer::Iterator i) const |
|
358 { |
|
359 // for local use in stack only |
|
360 } |
|
361 |
|
362 uint32_t |
|
363 SocketIpTtlTag::Deserialize (Buffer::Iterator i) |
|
364 { |
|
365 // for local use in stack only |
|
366 return 0; |
|
367 } |
|
368 |
|
369 void |
|
370 SocketIpTtlTag::SetTtl (uint8_t ttl) |
|
371 { |
|
372 m_ttl = ttl; |
|
373 } |
|
374 |
|
375 uint8_t |
|
376 SocketIpTtlTag::GetTtl (void) const |
|
377 { |
|
378 return m_ttl; |
|
379 } |
|
380 |
303 }//namespace ns3 |
381 }//namespace ns3 |