xorp

fea_rawpkt6_xif.hh

00001 /*
00002  * obj/i386-pc-mingw32/xrl/interfaces/fea_rawpkt6_xif.hh
00003  * vim:set sts=4 ts=8 ft=cpp:
00004  *
00005  * Copyright (c) 2001-2010 XORP, Inc and Others
00006  * See the XORP LICENSE.lgpl file for licensing, conditions, and warranties
00007  * on use.
00008  *
00009  * DO NOT EDIT THIS FILE - IT IS PROGRAMMATICALLY GENERATED
00010  *
00011  * Generated by 'clnt-gen'.
00012  */
00013 
00014 #ifndef __XRL_INTERFACES_FEA_RAWPKT6_XIF_HH__
00015 #define __XRL_INTERFACES_FEA_RAWPKT6_XIF_HH__
00016 
00017 #undef XORP_LIBRARY_NAME
00018 #define XORP_LIBRARY_NAME "XifFeaRawpkt6"
00019 
00020 #include "libxorp/xlog.h"
00021 #include "libxorp/callback.hh"
00022 
00023 #include "libxipc/xrl.hh"
00024 #include "libxipc/xrl_error.hh"
00025 #include "libxipc/xrl_sender.hh"
00026 
00027 //#include <memory>
00028 
00029 class XrlRawPacket6V0p1Client {
00030 public:
00031     XrlRawPacket6V0p1Client(XrlSender* s) : _sender(s) {}
00032     virtual ~XrlRawPacket6V0p1Client() {}
00033 
00034     typedef XorpCallback1<void, const XrlError&>::RefPtr SendCB;
00076     bool send_send(
00077     const char* dst_xrl_target_name,
00078     const string&   if_name,
00079     const string&   vif_name,
00080     const IPv6& src_address,
00081     const IPv6& dst_address,
00082     const uint32_t& ip_protocol,
00083     const int32_t&  ip_ttl,
00084     const int32_t&  ip_tos,
00085     const bool& ip_router_alert,
00086     const bool& ip_internet_control,
00087     const XrlAtomList&  ext_headers_type,
00088     const XrlAtomList&  ext_headers_payload,
00089     const vector<uint8_t>&  payload,
00090     const SendCB&   cb
00091     );
00092 
00093     typedef XorpCallback1<void, const XrlError&>::RefPtr RegisterReceiverCB;
00117     bool send_register_receiver(
00118     const char* dst_xrl_target_name,
00119     const string&   xrl_target_instance_name,
00120     const string&   if_name,
00121     const string&   vif_name,
00122     const uint32_t& ip_protocol,
00123     const bool& enable_multicast_loopback,
00124     const RegisterReceiverCB&   cb
00125     );
00126 
00127     typedef XorpCallback1<void, const XrlError&>::RefPtr UnregisterReceiverCB;
00147     bool send_unregister_receiver(
00148     const char* dst_xrl_target_name,
00149     const string&   xrl_target_instance_name,
00150     const string&   if_name,
00151     const string&   vif_name,
00152     const uint32_t& ip_protocol,
00153     const UnregisterReceiverCB& cb
00154     );
00155 
00156     typedef XorpCallback1<void, const XrlError&>::RefPtr JoinMulticastGroupCB;
00177     bool send_join_multicast_group(
00178     const char* dst_xrl_target_name,
00179     const string&   xrl_target_instance_name,
00180     const string&   if_name,
00181     const string&   vif_name,
00182     const uint32_t& ip_protocol,
00183     const IPv6& group_address,
00184     const JoinMulticastGroupCB& cb
00185     );
00186 
00187     typedef XorpCallback1<void, const XrlError&>::RefPtr LeaveMulticastGroupCB;
00209     bool send_leave_multicast_group(
00210     const char* dst_xrl_target_name,
00211     const string&   xrl_target_instance_name,
00212     const string&   if_name,
00213     const string&   vif_name,
00214     const uint32_t& ip_protocol,
00215     const IPv6& group_address,
00216     const LeaveMulticastGroupCB&    cb
00217     );
00218 
00219 protected:
00220     XrlSender* _sender;
00221 
00222 private:
00223     static void unmarshall_send(
00224     const XrlError& e,
00225     XrlArgs*    a,
00226     SendCB      cb
00227     );
00228 
00229     static void unmarshall_register_receiver(
00230     const XrlError& e,
00231     XrlArgs*    a,
00232     RegisterReceiverCB      cb
00233     );
00234 
00235     static void unmarshall_unregister_receiver(
00236     const XrlError& e,
00237     XrlArgs*    a,
00238     UnregisterReceiverCB        cb
00239     );
00240 
00241     static void unmarshall_join_multicast_group(
00242     const XrlError& e,
00243     XrlArgs*    a,
00244     JoinMulticastGroupCB        cb
00245     );
00246 
00247     static void unmarshall_leave_multicast_group(
00248     const XrlError& e,
00249     XrlArgs*    a,
00250     LeaveMulticastGroupCB       cb
00251     );
00252 
00253 private:
00254     /* Declare cached Xrl pointers */
00255     auto_ptr<Xrl> ap_xrl_send;
00256     auto_ptr<Xrl> ap_xrl_register_receiver;
00257     auto_ptr<Xrl> ap_xrl_unregister_receiver;
00258     auto_ptr<Xrl> ap_xrl_join_multicast_group;
00259     auto_ptr<Xrl> ap_xrl_leave_multicast_group;
00260 };
00261 
00262 #endif /* __XRL_INTERFACES_FEA_RAWPKT6_XIF_HH__ */
 All Classes Namespaces Functions Variables Typedefs Enumerations