Getting rid of C code

Signed-off-by: Emanoil Kotsev <deloptes@gmail.com>
master
Emanoil Kotsev 3 years ago
parent cd815ab111
commit 1543d0c65d
Signed by: deloptes
GPG Key ID: F1EEB8CD9FB16A50

@ -20,12 +20,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <tqfile.h>
#include <tqtextstream.h>
#include <tqdbuserror.h>
@ -54,21 +51,19 @@ bool DeviceServiceBase::canSetDeviceValue(const TQString& device, TQT_DBusError&
bool DeviceServiceBase::setDeviceValue(const TQString& device, const TQString& param, TQT_DBusError& error) {
bool written = false;
// make sure path is writable
if (canSetDeviceValue(device, error)) {
FILE *node = fopen(device.latin1(), "w");
if (node != NULL) {
if (fputs(param.latin1(), node) != EOF) {
written = true;
}
if (fclose(node) == EOF) {
// Error!
error = TQT_DBusError::stdFailed(TQString ("Device %1 not properly closed").arg(device));
}
} else {
TQFile file(device);
if (!file.open( IO_WriteOnly ) ) {
error = TQT_DBusError::stdFailed(TQString ("Could not open device %1").arg(device));
return false;
}
TQTextStream stream( &file );
stream << param;
file.close();
} else {
error = TQT_DBusError::stdFailed(TQString ("Could not access device %1").arg(device));
return false;
}
return written;
return true;
}

@ -35,6 +35,9 @@ protected:
bool canSetDeviceValue(const TQString& device, TQT_DBusError& error);
bool setDeviceValue(const TQString& device, const TQString& param, TQT_DBusError& error);
protected: // implement sending replies
virtual void handleMethodReply(const TQT_DBusMessage& reply) = 0;
protected:
TQT_DBusConnection *m_connection;
};

@ -20,12 +20,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <tqfile.h>
#include <tqtextstream.h>
// Input devices
#include <linux/input.h>
@ -56,17 +53,23 @@ InputEventsService::~InputEventsService()
*/
TQValueList< TQ_UINT32 > InputEventsService::getSwitches(const TQString& device, bool active, TQT_DBusError& error) {
int fd, r;
int r;
unsigned long switches[NUM_BITS(EV_CNT)];
TQValueList< TQ_UINT32 > value = TQValueList< TQ_UINT32 >();
if (!device.isEmpty() && (device.find("/dev/input/event") == 0) ) {
fd = open(device.latin1(), O_RDONLY);
TQFile file( device );
if ( !file.open( IO_ReadOnly ) ) {
error = TQT_DBusError::stdFailed(TQString ("Could not open device %1").arg(device));
return value;
}
if( active ) {
r = ioctl(fd, EVIOCGSW(sizeof(switches)), switches);
r = ioctl(file.handle(), EVIOCGSW(sizeof(switches)), switches);
}
else {
r = ioctl(fd, EVIOCGBIT(EV_SW, EV_CNT), switches);
r = ioctl(file.handle(), EVIOCGBIT(EV_SW, EV_CNT), switches);
}
if( r > 0 ) {
// add the arguments to the reply
@ -77,7 +80,7 @@ TQValueList< TQ_UINT32 > InputEventsService::getSwitches(const TQString& device,
else {
error = TQT_DBusError::stdFailed(TQString ("Failed to handle IOCTL for device: " + device));
}
close(fd);
file.close();
} else {
error = TQT_DBusError::stdInvalidArgs(TQString ("Invalid argument for device: " + device));
}

@ -20,13 +20,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <tqfile.h>
#include <tqtextstream.h>
#include "PowerService.h"
@ -42,7 +39,7 @@ PowerService::~PowerService()
// TODO Auto-generated destructor stub
}
bool PowerService::canSetHibernation(TQString disk, TQString state, TQT_DBusError& error) {
bool PowerService::canSetHibernation(TQString state, TQT_DBusError& error) {
// check if path is writable
bool state_writable = false;
@ -50,6 +47,7 @@ bool PowerService::canSetHibernation(TQString disk, TQString state, TQT_DBusErro
if (rval == 0) {
state_writable = true;
}
bool disk_writable = false;
rval = access ("/sys/power/disk", W_OK);
if (rval == 0) {
@ -59,33 +57,35 @@ bool PowerService::canSetHibernation(TQString disk, TQString state, TQT_DBusErro
// check if method is supported
bool method1 = false, method2 = false;
if (state_writable && disk_writable) {
FILE *statenode = fopen("/sys/power/state", "r");
if (statenode != NULL) {
char *line = NULL;
size_t len = 0;
ssize_t read = getline(&line, &len, statenode);
if (read > 0 && line) {
method1 = (strstr(line, state.latin1()) != NULL);
free(line);
}
if (fclose(statenode) == EOF) {
// Error!
error = TQT_DBusError::stdInvalidArgs(TQString ("Could not flush stream for method " + method1));
TQFile file( "/sys/power/state" );
if ( file.open( IO_ReadOnly ) ) {
TQTextStream stream( &file );
TQString line;
while ( !stream.atEnd() ) {
line = stream.readLine(); // line of text excluding '\n'
if ( line.find(state, 0) >= 0)
method1 = true;
}
file.close();
} else {
error = TQT_DBusError::stdInvalidArgs(TQString ("Could not open /sys/power/state"));
return false;
}
FILE *disknode = fopen("/sys/power/disk", "r");
if (disknode != NULL) {
char *line = NULL;
size_t len = 0;
ssize_t read = getline(&line, &len, disknode);
if (read > 0 && line) {
method2 = (strstr(line, disk.latin1()) != NULL);
free(line);
}
if (fclose(disknode) == EOF) {
// Error!
error = TQT_DBusError::stdInvalidArgs(TQString ("Could not flush stream for method " + method2));
TQFile file1("/sys/power/disk");
if ( file1.open( IO_ReadOnly ) ) {
TQTextStream stream( &file );
TQString line;
while ( !stream.atEnd() ) {
line = stream.readLine(); // line of text excluding '\n'
if ( line.find(state, 0) >= 0)
method2 = true;
}
file1.close();
} else {
error = TQT_DBusError::stdInvalidArgs(TQString ("Could not open /sys/power/disk"));
return false;
}
}
@ -93,47 +93,33 @@ bool PowerService::canSetHibernation(TQString disk, TQString state, TQT_DBusErro
return state_writable && disk_writable && method1 && method2;
}
bool PowerService::setHibernation(TQString disk, TQString state, TQT_DBusError& error) {
bool PowerService::setHibernation(TQString state, TQT_DBusError& error) {
// set hibernation state
bool written1 = false, written2 = false;
// check if path is writable
int state_writable = false;
int rval = access ("/sys/power/state", W_OK);
if (rval == 0) {
state_writable = true;
}
int disk_writable = false;
rval = access ("/sys/power/disk", W_OK);
if (rval == 0) {
disk_writable = true;
}
if (state_writable && disk_writable) {
FILE *disknode = fopen("/sys/power/disk", "w");
if (disknode != NULL) {
if (fputs(disk.latin1(), disknode) != EOF) {
written1 = true;
}
if (fclose(disknode) == EOF) {
// Error!
error = TQT_DBusError::stdInvalidArgs(TQString ("Could not flush stream for method " + disk));
}
if (canSetHibernation(state,error)) {
TQFile file("/sys/power/disk");
if (!file.open( IO_WriteOnly ) ) {
error = TQT_DBusError::stdFailed(TQString ("Could not open device /sys/power/disk"));
return false;
}
if (written1)
{
FILE *statenode = fopen("/sys/power/state", "w");
if (statenode != NULL) {
if (fputs(state.latin1(), statenode) != EOF) {
written2 = true;
}
if (fclose(statenode) == EOF) {
// Error!
error = TQT_DBusError::stdInvalidArgs(TQString ("Could not flush stream for method " + state));
}
}
TQTextStream stream( &file );
stream << state;
file.close();
written1 = true;
file.setName("/sys/power/state");
if (!file.open( IO_WriteOnly ) ) {
error = TQT_DBusError::stdFailed(TQString ("Could not open device /sys/power/state"));
return false;
}
TQTextStream stream1( &file );
stream1 << state;
file.close();
written2 = true;
} else {
error = TQT_DBusError::stdFailed(TQString ("Could not set state: " + state));
return false;
}
return written1 && written2;
@ -166,7 +152,7 @@ bool PowerService::Standby(bool& value, TQT_DBusError& error) {
bool PowerService::CanFreeze(bool& value, TQT_DBusError& error) {
// do something
value = canSetDeviceValue("/sys/power/state", error) && canSetDeviceValue("/sys/power/disk", error);
value = canSetDeviceValue("/sys/power/state", error);
if (error.isValid()) {
tqDebug(error.message().local8Bit().data());
return false;
@ -176,7 +162,7 @@ bool PowerService::CanFreeze(bool& value, TQT_DBusError& error) {
bool PowerService::Freeze(bool& value, TQT_DBusError& error) {
// do something
value = setDeviceValue("/sys/power/disk", "freeze", error);
value = setDeviceValue("/sys/power/state", "freeze", error);
if (error.isValid()) {
tqDebug(error.message().local8Bit().data());
return false;
@ -186,8 +172,12 @@ bool PowerService::Freeze(bool& value, TQT_DBusError& error) {
bool PowerService::CanSuspend(bool& value, TQT_DBusError& error) {
// do something
value = canSetDeviceValue("/sys/power/state", error) && canSetDeviceValue("/sys/power/disk", error);
return (error.isValid()) ? false : true;
value = canSetDeviceValue("/sys/power/state", error);
if (error.isValid()) {
tqDebug(error.message().local8Bit().data());
return false;
}
return true;
}
bool PowerService::Suspend(bool& value, TQT_DBusError& error) {
@ -202,7 +192,7 @@ bool PowerService::Suspend(bool& value, TQT_DBusError& error) {
bool PowerService::CanHibernate(bool& value, TQT_DBusError& error) {
// do something
value = canSetHibernation(TQString("/sys/power/disk"), "platform", error);
value = canSetHibernation("platform", error);
if (error.isValid()) {
tqDebug(error.message().local8Bit().data());
return false;
@ -212,7 +202,7 @@ bool PowerService::CanHibernate(bool& value, TQT_DBusError& error) {
bool PowerService::Hibernate(bool& value, TQT_DBusError& error) {
// do something
value = setHibernation("/sys/power/disk", "platform", error);
value = setHibernation("platform", error);
if (error.isValid()) {
tqDebug(error.message().local8Bit().data());
return false;
@ -222,7 +212,7 @@ bool PowerService::Hibernate(bool& value, TQT_DBusError& error) {
bool PowerService::CanHybridSuspend(bool& value, TQT_DBusError& error) {
// do something
value = canSetHibernation("/sys/power/disk", "suspend", error);
value = canSetHibernation("suspend", error);
if (error.isValid()) {
tqDebug(error.message().local8Bit().data());
return false;
@ -232,7 +222,7 @@ bool PowerService::CanHybridSuspend(bool& value, TQT_DBusError& error) {
bool PowerService::HybridSuspend(bool& value, TQT_DBusError& error) {
// do something
value = setHibernation("/sys/power/disk", "suspend", error);
value = setHibernation("suspend", error);
if (error.isValid()) {
tqDebug(error.message().local8Bit().data());
return false;
@ -257,6 +247,7 @@ bool PowerService::SetHibernationMethod(const TQString& method, bool& value, TQT
}
else {
//TODO may be set dbus error
value = false;
error = TQT_DBusError::stdInvalidArgs(TQString ("Invalid argument for method: " + method));
}
if (error.isValid()) {

@ -32,9 +32,9 @@ public:
PowerService(TQT_DBusConnection&);
virtual ~PowerService();
protected:
bool canSetHibernation(TQString disk, TQString state, TQT_DBusError& error);
bool canSetHibernation(TQString state, TQT_DBusError& error);
bool setHibernation(TQString disk, TQString state, TQT_DBusError& error);
bool setHibernation(TQString state, TQT_DBusError& error);
virtual bool CanStandby(bool& value, TQT_DBusError& error);

Loading…
Cancel
Save