pcremote-client-n8x0 -> client sources
[remotepc] / pcremote-server-desktop-60 / debian / pcremote-server / usr / share / pcremote-server / connection / iconnection.py
diff --git a/pcremote-server-desktop-60/debian/pcremote-server/usr/share/pcremote-server/connection/iconnection.py b/pcremote-server-desktop-60/debian/pcremote-server/usr/share/pcremote-server/connection/iconnection.py
new file mode 100755 (executable)
index 0000000..310d175
--- /dev/null
@@ -0,0 +1,167 @@
+# -*- coding: utf-8 -*-
+
+#  ****************************************************************************
+#  Copyright (c) 2008 INdT/Fucapi.
+#  This program is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public License
+#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+#  ============================================================================
+#  Project Name : PC Remote
+#  Author       : André Portela
+#  Email        : andre_portela_@hotmail.com
+#  Reviewer     : Jônatas Isvi
+#  Email        : jonatas.nona@gmail.com
+#  Version      : 1.0
+#  Package      : connection
+#  Description  : Iconnection Interface Class
+#  ============================================================================
+
+from wirelessconnectionmanager import *
+from bluetoothconnectionmanager import *
+from exceptions import *
+
+# connections aliases
+_btconst   = ['bluetooth', 'BLUETOOTH', 'blue']
+_wificonst = ['wireless', 'WIRELESS', 'wifi']
+
+class Iconnection:
+    
+    """ Iconnection
+    Interface for wireless and bluetooth connections.
+    Manages all commonalities operations between entities.
+    """
+    def __init__(self, string):
+       self.string = string
+       if(self.string in _btconst):
+           self.obj = BluetoothConnectionManager()
+       elif(self.string in _wificonst):
+           self.obj = WirelessConnectionManager()
+       else:
+           raise IconnectionError, "Undefined type."
+       
+       
+    # +---------------------------------------------+ 
+    # | Generic methods -> Wireless and Bluetooth   |
+    # +---------------------------------------------+
+
+    # create a socket with defined protocol
+    def create_socket(self, protocol=None):
+       self.obj.create_socket(protocol)
+
+    # connect device
+    def connect(self):
+       self.obj.connect()
+
+    # accept the connection
+    def accept(self):
+       return self.obj.accept()
+
+    # send a message to device
+    def send_message(self, msg=None):
+       self.obj.send_message(msg)
+       
+    # received a message 
+    def received_message(self):
+       return self.obj.received_message()
+       
+    # bind the connection
+    def bind(self):
+       self.obj.bind()
+
+    # listen the connection
+    def listen(self):
+       self.obj.listen()
+
+    # close connection
+    def close(self):
+       self.obj.close()
+
+    # set the port to communicate
+    def set_port(self, port):
+       self.obj.set_port(port)
+
+    # get the port to communicate
+    def get_port(self):
+       return self.obj.get_port()
+
+    # set the device address
+    def set_address(self, address):
+       self.obj.set_address(address)
+
+    # get the device address
+    def get_address(self):
+       return self.obj.get_address()
+
+    # get the client address
+    def get_client_address(self):
+       return self.obj.get_client_address()
+
+    # +------------------------------------------+
+    # | Bluetooth: particular behaviors          |
+    # +------------------------------------------+
+       
+    # fast way to create a simple server
+    def bluetooth_create_server(self, protocol, port):
+       if self.string in _btconst:
+           return self.obj.create_server(protocol, port)
+       else:
+           raise IconnectionError, "Only method used by Bluetooth connections."
+
+    # fast way to create a simple client
+    def bluetooth_create_client(self, protocol, address, port):
+       if self.string in _btconst:
+           return self.obj.create_client(protocol, address, port)
+       else:
+           raise IconnectionError, "Only method used by Bluetooth connections."
+
+    # search for all devices
+    def bluetooth_find_devices(self, time=8):
+               if self.string in _btconst:
+           return self.obj.find_devices(time)
+       else:
+           raise IconnectionError, "Only method used by Bluetooth connections."
+
+    # search only devices names
+    def bluetooth_find_devices_only_names(self):
+       if self.string in _btconst:
+           return self.obj.find_devices_only_names()
+       else:   
+                   raise IconnectionError, "Only method used by Bluetooth connections."
+
+    # search the device port
+    def bluetooth_find_port(self, addr):
+       if self.string in _btconst:
+           return self.obj.find_port(addr)
+       else:   
+           raise IconnectionError, "Only method used by Bluetooth connections."
+
+    # search device services
+    def bluetooth_find_services(self, service=None, addr=None):
+       if self.string in _btconst:
+           return self.obj.find_services(service, addr)
+       else:
+           raise IconnectionError, "Only method used by Bluetooth connections."
+
+
+    # search the device indicated by name
+    def bluetooth_find_device_address_by_name(self, device_name=None):
+       if self.string in _btconst:
+           return self.obj.find_device_address_by_name(device_name)
+       else:
+           raise IconnectionError, "Only method used by Bluetooth connections."
+
+
+
+    # +---------------------------------+
+    # | Wireless: particular behaviors  | 
+    # +---------------------------------+