groupenv.cpp
00001 /* 00002 This file is part of libqopensync. 00003 00004 Copyright (c) 2005 Tobias Koenig <tokoe@kde.org> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License as published by the Free Software Foundation; either 00009 version 2 of the License, or (at your option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 Library General Public License for more details. 00015 00016 You should have received a copy of the GNU Library General Public License 00017 along with this library; see the file COPYING.LIB. If not, write to 00018 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00019 Boston, MA 02110-1301, USA. 00020 */ 00021 00022 #include <opensync/opensync.h> 00023 #include <opensync/opensync-group.h> 00024 00025 #include "group.h" 00026 #include "result.h" 00027 00028 #include "groupenv.h" 00029 00030 using namespace QSync; 00031 00032 GroupEnv::GroupEnv() 00033 { 00034 OSyncError *error = 0; 00035 mGroupEnv = osync_group_env_new( &error ); 00036 } 00037 00038 GroupEnv::~GroupEnv() 00039 { 00040 osync_group_env_free( mGroupEnv ); 00041 } 00042 00043 Result GroupEnv::initialize() 00044 { 00045 Q_ASSERT( mGroupEnv ); 00046 00047 OSyncError *error = 0; 00048 if ( !osync_group_env_load_groups( mGroupEnv, NULL, &error ) ) 00049 return Result( &error ); 00050 else 00051 return Result(); 00052 } 00053 00054 void GroupEnv::finalize() 00055 { 00056 } 00057 00058 int GroupEnv::groupCount() const 00059 { 00060 Q_ASSERT( mGroupEnv ); 00061 00062 return osync_group_env_num_groups( mGroupEnv ); 00063 } 00064 00065 Group GroupEnv::groupAt( int pos ) const 00066 { 00067 Q_ASSERT( mGroupEnv ); 00068 00069 Group group; 00070 00071 if ( pos < 0 || pos >= groupCount() ) 00072 return group; 00073 00074 OSyncGroup *ogroup = osync_group_env_nth_group( mGroupEnv, pos ); 00075 group.mGroup = ogroup; 00076 00077 return group; 00078 } 00079 00080 Group GroupEnv::groupByName( const TQString &name ) const 00081 { 00082 Q_ASSERT( mGroupEnv ); 00083 00084 Group group; 00085 00086 OSyncGroup *ogroup = osync_group_env_find_group( mGroupEnv, name.latin1() ); 00087 if ( ogroup ) 00088 group.mGroup = ogroup; 00089 00090 return group; 00091 } 00092 00093 Group GroupEnv::addGroup( const TQString &name ) 00094 { 00095 Q_ASSERT( mGroupEnv ); 00096 00097 Group group; 00098 OSyncError *error = 0; 00099 00100 OSyncGroup *ogroup = osync_group_new( &error ); 00101 if ( ogroup ) 00102 group.mGroup = ogroup; 00103 00104 group.setName( name ); 00105 00106 if ( !osync_group_env_add_group( mGroupEnv, ogroup, &error ) ) { 00107 Result res( &error ); 00108 tqDebug( "Error on adding group: %s", res.message().latin1() ); 00109 } 00110 00111 return group; 00112 } 00113 00114 void GroupEnv::removeGroup( const Group &group ) 00115 { 00116 Q_ASSERT( mGroupEnv ); 00117 00118 group.cleanup(); 00119 00120 osync_group_env_remove_group( mGroupEnv, group.mGroup ); 00121 }