text: # Copyright (C) 2014 Nippon Telegraph and Telephone Corporation.
  # Copyright (C) 2014 YAMAMOTO Takashi <yamamoto at valinux co jp>
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #    http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
  # implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  from ryu.controller import event
  
  
  # base classes
  
  class _RequestBase(event.EventRequestBase):
      def __init__(self):
          self.dst = 'ofctl_service'
  
  
  class _ReplyBase(event.EventReplyBase):
      pass
  
  
  # get datapath
  
  class GetDatapathRequest(_RequestBase):
      def __init__(self, dpid):
          assert isinstance(dpid, (int, long))
          super(GetDatapathRequest, self).__init__()
          self.dpid = dpid
  
  
  # send msg
  
  class SendMsgRequest(_RequestBase):
      def __init__(self, msg):
          super(SendMsgRequest, self).__init__()
          self.msg = msg
  
  
  # generic reply
  
  class Reply(_ReplyBase):
      def __init__(self, result=None):
          self.result = result
  
      def __call__(self):
          return self.result
  