[openrtm-commit:00372] r2222 - in trunk/OpenRTM-aist/src/ext: . local_service local_service/nameservice_file local_service/nameservice_file/test
openrtm @ openrtm.org
openrtm @ openrtm.org
2011年 8月 25日 (木) 01:23:12 JST
Author: n-ando
Date: 2011-08-25 01:23:12 +0900 (Thu, 25 Aug 2011)
New Revision: 2222
Added:
trunk/OpenRTM-aist/src/ext/local_service/
trunk/OpenRTM-aist/src/ext/local_service/Makefile.am
trunk/OpenRTM-aist/src/ext/local_service/nameservice_broadcast/
trunk/OpenRTM-aist/src/ext/local_service/nameservice_corba/
trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/
trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/FileNameservice.cpp
trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/FileNameservice.h
trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/Makefile.am
trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/test/
trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/test/FileNameservice_test.cpp
Log:
Local service extention, File nameservice has been introduced.
Added: trunk/OpenRTM-aist/src/ext/local_service/Makefile.am
===================================================================
--- trunk/OpenRTM-aist/src/ext/local_service/Makefile.am (rev 0)
+++ trunk/OpenRTM-aist/src/ext/local_service/Makefile.am 2011-08-24 16:23:12 UTC (rev 2222)
@@ -0,0 +1,10 @@
+## -*- Makefile -*-
+##---------------------------------------------------------------------------
+## Makefile.am for external libraries
+##
+## $Id$
+##---------------------------------------------------------------------------
+
+AUTOMAKE_OPTIONS = 1.4
+
+SUBDIRS = nameservice_file
\ No newline at end of file
Added: trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/FileNameservice.cpp
===================================================================
--- trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/FileNameservice.cpp (rev 0)
+++ trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/FileNameservice.cpp 2011-08-24 16:23:12 UTC (rev 2222)
@@ -0,0 +1,481 @@
+// -*- C++ -*-
+/*!
+ * @file FileNameservice.cpp
+ * @brief FileNameservice
+ * @date 2011/08/20
+ * @author n-ando
+ *
+ * Copyright (C) 2011
+ * Noriaki Ando
+ * Intelligent Systems Research Institute,
+ * National Institute of
+ * Advanced Industrial Science and Technology (AIST), Japan
+ * All rights reserved.
+ *
+ * $Id$
+ *
+ */
+
+#include <fstream>
+#include <boost/filesystem.hpp>
+#include <coil/stringutil.h>
+#include <rtm/Manager.h>
+#include <rtm/RTObject.h>
+#include <rtm/LocalServiceAdmin.h>
+#include "FileNameservice.h"
+
+/*!
+ * @if jp
+ * @brief FileNameService ctor
+ * @else
+ * @brief FileNameService ctor
+ * @endif
+ */
+static const char* service_name =
+ "org.openrtm.local_service.nameservice.file_nameservice";
+
+/*!
+ * @if jp
+ * @brief FileNameService ctor
+ * @else
+ * @brief FileNameService ctor
+ * @endif
+ */
+static const char* service_uuid = "7288D080-F618-480B-B6D9-A199686F3101";
+
+/*!
+ * @if jp
+ * @brief FileNameService ctor
+ * @else
+ * @brief FileNameService ctor
+ * @endif
+ */
+static const char* default_config[] =
+ {
+ "base_path", "/tmp/.openrtm_ns/",
+ "file_structure", "tree",
+ "context_delimiter", "|",
+ ""
+ };
+
+namespace RTM
+{
+ namespace LocalService
+ {
+ /*!
+ * @if jp
+ * @brief FileNameService ctor
+ * @else
+ * @brief FileNameService ctor
+ * @endif
+ */
+ FileNameservice::FileNameservice() :
+ rtclog("file_nameservice")
+ {
+ m_profile.name = service_name;
+ m_profile.uuid = service_uuid;
+ coil::Properties prop(default_config);
+ m_profile.properties = prop;
+ m_profile.service = this;
+ RTC_DEBUG(("FileNameservice was created("));
+ RTC_DEBUG((" name = %s", m_profile.name.c_str()));
+ RTC_DEBUG((" uuid = %s", m_profile.uuid.c_str()));
+ RTC_DEBUG((" properties ="));
+ RTC_DEBUG_STR((m_profile.properties));
+ RTC_DEBUG((" service = 0x%lx)", this));
+ }
+
+ /*!
+ * @if jp
+ * @brief FileNameService dtor
+ * @else
+ * @brief FileNameService dtor
+ * @endif
+ */
+ FileNameservice::~FileNameservice()
+ {
+ RTC_TRACE(("~FileNameservice()"))
+ cleanupFiles();
+ }
+
+ /*!
+ * @if jp
+ * @brief 初期化関数
+ * @else
+ * @brief Initialization function
+ * @endif
+ */
+ bool
+ FileNameservice::init(const ::coil::Properties& props)
+ {
+ RTC_TRACE(("init()"));
+ RTC_DEBUG_STR((props));
+ m_profile.properties << props;
+
+ RTC::Manager& manager = RTC::Manager::instance();
+ manager.addNamingActionListener(new NamingAction(*this));
+ return true;
+ }
+
+ /*!
+ * @if jp
+ * @brief 再初期化関数
+ * @else
+ * @brief Reinitialization function
+ * @endif
+ */
+ bool
+ FileNameservice::reinit(const ::coil::Properties& props)
+ {
+ RTC_TRCE(("reinit()"));
+ RTC_DEBUG_STR((props));
+ bool ret(processServiceProfile(props));
+ m_profile.properties << props;
+ return ret;
+ }
+
+ /*!
+ * @if jp
+ * @brief LocalServiceProfile を取得する
+ * @else
+ * @brief Getting LocalServiceProfile
+ * @endif
+ */
+ const LocalServiceProfile&
+ FileNameservice::getProfile() const
+ {
+ RTC_TRACE(("getProfile()"));
+ return m_profile;
+ }
+
+ /*!
+ * @if jp
+ * @brief 終了関数
+ * @else
+ * @brief Finalization function
+ * @endif
+ */
+ void
+ FileNameservice::finalize()
+ {
+ cleanupFiles();
+ }
+
+ /*!
+ * @if jp
+ * @brief 名前登録時に呼ばれるコールバック
+ * @else
+ * @brief A call-back at name registration
+ * @endif
+ */
+ void
+ FileNameservice::onRegisterNameservice(coil::vstring& ns_path,
+ coil::vstring& ns_info)
+ {
+ RTC_TRACE(("onRegisterNameservice(path = %s",
+ coil::flatten(ns_path).c_str()));
+ RTC_TRACE((" nsinfo = %s", coil::flatten(ns_info).c_str()));
+
+ for (size_t i(0); i < ns_path.size(); ++i)
+ {
+ fs::path filepath(getFname(ns_path[i]).c_str());
+ fs::path directory = filepath.parent_path();
+ RTC_DEBUG(("file path: %s", filepath.string().c_str()));
+ RTC_DEBUG(("directory: %s", directory.string().c_str()));
+ if (!createDirectory(directory))
+ {
+ continue;
+ }
+ try
+ {
+ fs::path filename = filepath.filename();
+ RTC_DEBUG(("file name: %s", filename.string().c_str()));
+ std::ofstream ofs(filepath.string().c_str(),
+ std::ios::out | std::ios::trunc);
+ for (size_t i(0); i < ns_info.size(); ++i)
+ {
+ ofs << ns_info[i] << std::endl;
+ }
+ RTC_INFO(("RTC %s's IOR has been successfully registered: %s",
+ filename.string().c_str(), filepath.string().c_str()));
+ m_files.push_back(filepath.string());
+ }
+ catch (...)
+ {
+ RTC_ERROR(("Creating file has been failed. %s",
+ filepath.string().c_str()));
+ }
+ }
+ }
+
+ /*!
+ * @if jp
+ * @brief 名前登録解除に呼ばれるコールバック
+ *
+ * TODO: Documentation
+ *
+ * @else
+ * @brief A call-back at name runegistration
+ *
+ * TODO: Documentation
+ *
+ * @endif
+ */
+ void FileNameservice::onUnregisterNameservice(coil::vstring& ns_path)
+ {
+ RTC_TRACE(("onUnregisterNameservice(%s)",
+ coil::flatten(ns_path).c_str()));
+ for (size_t i(0); i < ns_path.size(); ++i)
+ {
+ fs::path filepath(getFname(ns_path[i]));
+ if (!fs::exists(filepath))
+ {
+ RTC_ERROR(("No such file: %s", filepath.string().c_str()));
+ continue;
+ }
+ std::vector<std::string>::iterator it;
+ it = std::find(m_files.begin(), m_files.end(), filepath.string());
+ if (it == m_files.end())
+ {
+ RTC_WARN(("This file (%s) might not be my file.",
+ filepath.string().c_str()));
+ continue;
+ }
+ m_files.erase(it);
+ boost::system::error_code error;
+ const bool result = fs::remove(filepath, error);
+ RTC_DEBUG(("Removing file: %s", filepath.string().c_str()));
+ if (!result || error)
+ {
+ RTC_ERROR(("Removing a file has been failed. %s",
+ filepath.string().c_str()));
+ continue;
+ }
+ RTC_PARANOID(("Removing a file done: %s", filepath.string().c_str()));
+ }
+ return;
+ }
+
+ /*!
+ * @if jp
+ * @brief ディレクトリ作成
+ * TODO: Documentation
+ * @else
+ * @brief Creating directories
+ * TODO: Documentation
+ * @endif
+ */
+ bool FileNameservice::createDirectory(fs::path& directory)
+ {
+ RTC_TARCE(("onUnregisterNameservice(%s)", directory.string().c_str()));
+ if (!fs::exists(directory))
+ {
+ RTC_DEBUG(("Directory %s not found", directory.string().c_str()));
+ boost::system::error_code error;
+ const bool result = fs::create_directories(directory, error);
+ RTC_DEBUG(("Creating directory: %s", directory.string().c_str()));
+ if (!result || error)
+ {
+ RTC_ERROR(("Creating directory has been failed. %s",
+ directory.string().c_str()));
+ return false;
+ }
+ RTC_PARANOID(("Creating directory done: %s",
+ directory.string().c_str()));
+ }
+ else if (fs::exists(directory) && fs::is_directory(directory))
+ {
+ RTC_DEBUG(("Directory %s exists.", directory.string().c_str()));
+ }
+ else
+ {
+ RTC_ERROR(("File exists instead of base directory %s.",
+ directory.string().c_str()));
+ return false;
+ }
+ return true;
+ }
+
+ /*!
+ * @if jp
+ * @brief ファイル名取得
+ * TODO: Documentation
+ * @else
+ * @brief Getting file name
+ * TODO: Documentation
+ * @endif
+ */
+ std::string
+ FileNameservice::getFname(std::string& ns_path) const
+ {
+ RTC_TRACE(("getFname(%s)", ns_path.c_str()));
+
+ std::string pathstring(m_profile.properties["base_path"]);
+ pathstring += "/";
+
+ std::string fs(m_profile.properties["file_structure"]);
+ coil::normalize(fs);
+ if (fs == "flat")
+ {
+ RTC_DEBUG(("file_structure = flat"));
+ std::string d(m_profile.properties["context_delimiter"]);
+ coil::replaceString(ns_path, "/", d);
+ pathstring += ns_path;
+ }
+ else if (fs == "tree")
+ {
+ RTC_DEBUG(("file_structure = tree"));
+ pathstring += ns_path;
+ }
+ RTC_DEBUG(("path string = %s", pathstring.c_str()));
+
+ return pathstring;
+ }
+
+ /*!
+ * @if jp
+ * @brief 全ファイル削除
+ * TODO: Documentation
+ * @else
+ * @brief Deleting all files
+ * TODO: Documentation
+ * @endif
+ */
+ void
+ FileNameservice::cleanupFiles()
+ {
+ RTC_TRACE(("cleanupFiles()"));
+ for (size_t i(0); i < m_files.size(); ++i)
+ {
+ fs::path p(m_files[i]);
+ fs::remove(p);
+ }
+ m_files.clear();
+ }
+
+ /*!
+ * @if jp
+ * @brief プロパティの処理
+ * TODO: Documentation
+ * @else
+ * @brief Processing properties
+ * TODO: Documentation
+ * @endif
+ */
+ bool
+ FileNameservice::processServiceProfile(const ::coil::Properties& prof)
+ {
+ return true;
+ }
+
+ /*!
+ * @if jp
+ * @brief コンストラクタ
+ * @else
+ * @brief Constructor
+ * @endif
+ */
+ NamingAction::NamingAction(FileNameservice& fns) :
+ m_fns(fns)
+ {
+ }
+
+ /*!
+ * @if jp
+ * @brief デストラクタ
+ * @else
+ * @brief Destructor
+ * @endif
+ */
+ NamingAction::~NamingAction()
+ {
+ }
+
+ /*!
+ * @if jp
+ * @brief postBind コールバック関数
+ * TODO: Documentation
+ * @else
+ * @brief postBind callback function
+ * TODO: Documentation
+ * @endif
+ */
+ void
+ NamingAction::preBind(RTC::RTObject_impl* rtobj, coil::vstring& name_)
+ {
+ coil::vstring name = name_;
+ CORBA::Object_var objref =
+ RTC::RTObject::_duplicate(rtobj->getObjRef());
+ CORBA::String_var ior =
+ RTC::Manager::instance().getORB()->object_to_string(objref);
+ coil::vstring ns_info;
+ ns_info.push_back(static_cast<const char*>(ior));
+ m_fns.onRegisterNameservice(name, ns_info);
+ }
+
+ /*!
+ * @if jp
+ * @brief postBind コールバック関数
+ * TODO: Documentation
+ * @else
+ * @brief postBind callback function
+ * TODO: Documentation
+ * @endif
+ */
+ void
+ NamingAction::postBind(RTC::RTObject_impl* rtobj, coil::vstring& name)
+ {
+ }
+
+ /*!
+ * @if jp
+ * @brief preUnbind コールバック関数
+ * TODO: Documentation
+ * @else
+ * @brief preUnbind callback function
+ * TODO: Documentation
+ * @endif
+ */
+ void
+ NamingAction::preUnbind(RTC::RTObject_impl* rtobj, coil::vstring& name)
+ {
+ }
+
+ /*!
+ * @if jp
+ * @brief postUnbind コールバック関数
+ * TODO: Documentation
+ * @else
+ * @brief postUnbind callback function
+ * TODO: Documentation
+ * @endif
+ */
+ void
+ NamingAction::postUnbind(RTC::RTObject_impl* rtobj, coil::vstring& name)
+ {
+ m_fns.onUnregisterNameservice(name);
+ }
+
+ }; // LocalService
+}; // RTM
+
+extern "C"
+{
+ /*!
+ * @if jp
+ * @brief モジュール初期化関数
+ * @else
+ * @brief Module initialization
+ * @endif
+ */
+ void FileNameserviceInit()
+ {
+ RTM::LocalServiceFactory& factory
+ = RTM::LocalServiceFactory::instance();
+ factory.addFactory(service_name,
+ ::coil::Creator< ::RTM::LocalServiceBase,
+ ::RTM::LocalService::FileNameservice>,
+ ::coil::Destructor< ::RTM::LocalServiceBase,
+ ::RTM::LocalService::FileNameservice>);
+ }
+};
Property changes on: trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/FileNameservice.cpp
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ text/plain
Added: trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/FileNameservice.h
===================================================================
--- trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/FileNameservice.h (rev 0)
+++ trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/FileNameservice.h 2011-08-24 16:23:12 UTC (rev 2222)
@@ -0,0 +1,322 @@
+// -*- C++ -*-
+/*!
+ * @file FileNameservice.h
+ * @brief FileNameservice
+ * @date 2011/08/20
+ * @author n-ando
+ *
+ * Copyright (C) 2011
+ * Noriaki Ando
+ * Intelligent Systems Research Institute,
+ * National Institute of
+ * Advanced Industrial Science and Technology (AIST), Japan
+ * All rights reserved.
+ *
+ * $Id$
+ *
+ */
+
+#ifndef RTM_LOCALSERVICE_FILENAMESERVICE_H
+#define RTM_LOCALSERVICE_FILENAMESERVICE_H
+
+#include <coil/stringutil.h>
+
+#include <rtm/RTC.h>
+#include <rtm/SystemLogger.h>
+#include <rtm/LocalServiceBase.h>
+
+namespace fs = boost::filesystem;
+
+namespace RTM
+{
+ namespace LocalService
+ {
+ /*!
+ * @if jp
+ * @class FileNameservice クラス
+ * @brief FileNameservice クラス
+ * @else
+ * @class FileNameservice class
+ * @brief FileNameservice class
+ * @endif
+ */
+ class FileNameservice
+ : public RTM::LocalServiceBase
+ {
+ public:
+ /*!
+ * @if jp
+ * @brief FileNameService ctor
+ * @else
+ * @brief FileNameService ctor
+ * @endif
+ */
+ FileNameservice();
+
+ /*!
+ * @if jp
+ * @brief FileNameService dtor
+ * @else
+ * @brief FileNameService dtor
+ * @endif
+ */
+ virtual ~FileNameservice();
+
+ /*!
+ * @if jp
+ * @brief 初期化関数
+ *
+ * TODO: Documentation
+ *
+ * @param profile 外部から与えられた property
+ * @return
+ *
+ * @else
+ * @brief Initialization function
+ *
+ * TODO: Documentation
+ *
+ * @endif
+ */
+ virtual bool
+ init(const ::coil::Properties& profile);
+
+ /*!
+ * @if jp
+ * @brief 再初期化関数
+ *
+ * TODO: Documentation
+ *
+ * @param profile 外部から与えられた property
+ * @return
+ *
+ * @else
+ * @brief Reinitialization function
+ *
+ * TODO: Documentation
+ *
+ * @endif
+ */
+ virtual bool
+ reinit(const ::coil::Properties& profile);
+
+ /*!
+ * @if jp
+ * @brief LocalServiceProfile を取得する
+ *
+ * TODO: Documentation
+ *
+ * @return このオブジェクトが保持している LocalServiceProfile
+ *
+ * @else
+ * @brief Getting LocalServiceProfile
+ *
+ * TODO: Documentation
+ *
+ * @return LocalServiceProfile of this service class
+ *
+ * @endif
+ */
+ virtual const LocalServiceProfile& getProfile() const;
+
+ /*!
+ * @if jp
+ * @brief 終了関数
+ *
+ * TODO: Documentation
+ *
+ * @else
+ * @brief Finalization function
+ *
+ * TODO: Documentation
+ *
+ * @endif
+ */
+ virtual void finalize();
+
+ /*!
+ * @if jp
+ * @brief 名前登録時に呼ばれるコールバック
+ *
+ * TODO: Documentation
+ *
+ * @else
+ * @brief A call-back at name registration
+ *
+ * TODO: Documentation
+ *
+ * @endif
+ */
+ void
+ onRegisterNameservice(coil::vstring& path, coil::vstring& ns_info);
+
+ /*!
+ * @if jp
+ * @brief 名前登録解除に呼ばれるコールバック
+ *
+ * TODO: Documentation
+ *
+ * @else
+ * @brief A call-back at name runegistration
+ *
+ * TODO: Documentation
+ *
+ * @endif
+ */
+ void
+ onUnregisterNameservice(coil::vstring& path);
+
+ protected:
+ /*!
+ * @if jp
+ * @brief ディレクトリ作成
+ * TODO: Documentation
+ * @else
+ * @brief Creating directories
+ * TODO: Documentation
+ * @endif
+ */
+ bool createDirectory(fs::path& directory);
+
+ /*!
+ * @if jp
+ * @brief ファイル名取得
+ * TODO: Documentation
+ * @else
+ * @brief Getting file name
+ * TODO: Documentation
+ * @endif
+ */
+ std::string getFname(std::string& path) const;
+
+ /*!
+ * @if jp
+ * @brief 全ファイル削除
+ * TODO: Documentation
+ * @else
+ * @brief Deleting all files
+ * TODO: Documentation
+ * @endif
+ */
+ void cleanupFiles();
+
+ /*!
+ * @if jp
+ * @brief プロパティの処理
+ * TODO: Documentation
+ * @else
+ * @brief Processing properties
+ * TODO: Documentation
+ * @endif
+ */
+ bool processServiceProfile(const ::coil::Properties& props);
+
+ private:
+ RTM::LocalServiceProfile m_profile;
+ coil::vstring m_files;
+ mutable RTC::Logger rtclog;
+ };
+
+ /*!
+ * @if jp
+ * @class NamingAction class
+ * TODO: Documentation
+ * @else
+ * @class NamingActin class
+ * TODO: Documentation
+ * @endif
+ */
+ class NamingAction
+ : public RTM::NamingActionListener
+ {
+ public:
+ /*!
+ * @if jp
+ * @brief コンストラクタ
+ * @else
+ * @brief Constructor
+ * @endif
+ */
+ NamingAction(FileNameservice& fns);
+
+ /*!
+ * @if jp
+ * @brief デストラクタ
+ * @else
+ * @brief Destructor
+ * @endif
+ */
+ virtual ~NamingAction();
+
+ /*!
+ * @if jp
+ * @brief preBind コールバック関数
+ * TODO: Documentation
+ * @else
+ * @brief preBind callback function
+ * TODO: Documentation
+ * @endif
+ */
+ virtual void preBind(RTC::RTObject_impl* rtobj,
+ coil::vstring& name);
+ /*!
+ * @if jp
+ * @brief postBind コールバック関数
+ * TODO: Documentation
+ * @else
+ * @brief postBind callback function
+ * TODO: Documentation
+ * @endif
+ */
+ virtual void postBind(RTC::RTObject_impl* rtobj,
+ coil::vstring& name);
+
+ /*!
+ * @if jp
+ * @brief preUnbind コールバック関数
+ * TODO: Documentation
+ * @else
+ * @brief preUnbind callback function
+ * TODO: Documentation
+ * @endif
+ */
+ virtual void preUnbind(RTC::RTObject_impl* rtobj,
+ coil::vstring& name);
+
+ /*!
+ * @if jp
+ * @brief postUnbind コールバック関数
+ * TODO: Documentation
+ * @else
+ * @brief postUnbind callback function
+ * TODO: Documentation
+ * @endif
+ */
+ virtual void postUnbind(RTC::RTObject_impl* rtobj,
+ coil::vstring& name);
+ private:
+ RTM::LocalService::FileNameservice& m_fns;
+ };
+
+ }; // LocalService
+}; // RTM
+
+extern "C"
+{
+ /*!
+ * @if jp
+ * @brief モジュール初期化関数
+ *
+ * FileNameserviceをファクトリに登録する初期化関数。
+ *
+ * @else
+ * @brief Module initialization
+ *
+ * This initialization function registers FileNameservice to the factory.
+ *
+ * @endif
+ */
+ DLL_EXPORT void FileNameserviceInit();
+};
+
+#endif /* FILENAMESERVICE_H_ */
Property changes on: trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/FileNameservice.h
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ text/plain
Added: trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/Makefile.am
===================================================================
--- trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/Makefile.am (rev 0)
+++ trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/Makefile.am 2011-08-24 16:23:12 UTC (rev 2222)
@@ -0,0 +1,27 @@
+## -*- Makefile -*-
+##---------------------------------------------------------------------------
+## Makefile.am for RT preempt linux kternel execution context
+##
+## $Id$
+##---------------------------------------------------------------------------
+
+AM_CPPFLAGS=-I$(top_srcdir)/src/lib -I$(top_srcdir)/src/lib/coil/include -I$(top_srcdir)/src/lib/rtm/idl
+AM_LDFLAGS=-L$(top_builddir) -L$(top_builddir)/src/lib/rtm -L$(top_builddir)/src/lib/rtm/idl
+
+#------------------------------------------------------------
+# Targets
+#------------------------------------------------------------
+# Targets directories
+moduledir = $(rtm_ecdir)
+
+module_LTLIBRARIES = FileNameservice.la
+
+FileNameservice_la_SOURCES = FileNameservice.cpp FileNameservice.h
+FileNameservice_la_LDFLAGS = -module -shared -lboost_system -lboost_filesystem
+FileNameservice_la_FLAGS = -L$(top_builddir)/src/lib/rtm/.lib
+FileNameservice_la_LIBADD = \
+ $(top_builddir)/src/lib/rtm/libRTC.la \
+ $(top_builddir)/src/lib/coil/lib/libcoil.la
+
+clean-local:
+ rm -rf *~ *.o *.so
\ No newline at end of file
Added: trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/test/FileNameservice_test.cpp
===================================================================
--- trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/test/FileNameservice_test.cpp (rev 0)
+++ trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/test/FileNameservice_test.cpp 2011-08-24 16:23:12 UTC (rev 2222)
@@ -0,0 +1,28 @@
+// -*- C++ -*-
+/*!
+ * @file FileNameservice_test.cpp
+ * @brief FileNameservice_test
+ * @date 2011/08/20
+ * @author n-ando
+ *
+ * Copyright (C) 2011
+ * Noriaki Ando
+ * Intelligent Systems Research Institute,
+ * National Institute of
+ * Advanced Industrial Science and Technology (AIST), Japan
+ * All rights reserved.
+ *
+ * $Id$
+ *
+ */
+
+#include "../FileNameservice.h"
+
+namespace RTM
+{
+ namespace LocalService
+ {
+
+ } // LocalService
+
+} // RTM
Property changes on: trunk/OpenRTM-aist/src/ext/local_service/nameservice_file/test/FileNameservice_test.cpp
___________________________________________________________________
Added: svn:mime-type
+ text/plain
openrtm-commit メーリングリストの案内