diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-08-01 12:55:04 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-08-01 12:55:04 (GMT) |
commit | 3df6c9c6630f3b3b9b0876ae5bc8f2d12a15b253 (patch) | |
tree | 41f234c33e1e04015ef92a6b94212d9c7e97ad72 /src/uscxml/plugins/invoker/umundo | |
parent | 720bbe5c1b8c0789b5c7ad9ffca33e52bf77f1da (diff) | |
download | uscxml-3df6c9c6630f3b3b9b0876ae5bc8f2d12a15b253.zip uscxml-3df6c9c6630f3b3b9b0876ae5bc8f2d12a15b253.tar.gz uscxml-3df6c9c6630f3b3b9b0876ae5bc8f2d12a15b253.tar.bz2 |
Bug fixes and version bump
- New calendar invoker
- Fixed memory leaks with JavaScriptCore
- Compiles on windows again
- Beautified source code indentation
Diffstat (limited to 'src/uscxml/plugins/invoker/umundo')
-rw-r--r-- | src/uscxml/plugins/invoker/umundo/JSON.pb.h | 458 | ||||
-rw-r--r-- | src/uscxml/plugins/invoker/umundo/UmundoInvoker.cpp | 22 | ||||
-rw-r--r-- | src/uscxml/plugins/invoker/umundo/UmundoInvoker.h | 2 |
3 files changed, 242 insertions, 240 deletions
diff --git a/src/uscxml/plugins/invoker/umundo/JSON.pb.h b/src/uscxml/plugins/invoker/umundo/JSON.pb.h index fe4ee57..a8125bf 100644 --- a/src/uscxml/plugins/invoker/umundo/JSON.pb.h +++ b/src/uscxml/plugins/invoker/umundo/JSON.pb.h @@ -36,127 +36,129 @@ class JSONProto; // =================================================================== class JSONProto : public ::google::protobuf::Message { - public: - JSONProto(); - virtual ~JSONProto(); - - JSONProto(const JSONProto& from); - - inline JSONProto& operator=(const JSONProto& from) { - CopyFrom(from); - return *this; - } - - inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const { - return _unknown_fields_; - } - - inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() { - return &_unknown_fields_; - } - - static const ::google::protobuf::Descriptor* descriptor(); - static const JSONProto& default_instance(); - - void Swap(JSONProto* other); - - // implements Message ---------------------------------------------- - - JSONProto* New() const; - void CopyFrom(const ::google::protobuf::Message& from); - void MergeFrom(const ::google::protobuf::Message& from); - void CopyFrom(const JSONProto& from); - void MergeFrom(const JSONProto& from); - void Clear(); - bool IsInitialized() const; - - int ByteSize() const; - bool MergePartialFromCodedStream( - ::google::protobuf::io::CodedInputStream* input); - void SerializeWithCachedSizes( - ::google::protobuf::io::CodedOutputStream* output) const; - ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const; - int GetCachedSize() const { return _cached_size_; } - private: - void SharedCtor(); - void SharedDtor(); - void SetCachedSize(int size) const; - public: - - ::google::protobuf::Metadata GetMetadata() const; - - // nested types ---------------------------------------------------- - - // accessors ------------------------------------------------------- - - // repeated .JSONProto compound = 1; - inline int compound_size() const; - inline void clear_compound(); - static const int kCompoundFieldNumber = 1; - inline const ::JSONProto& compound(int index) const; - inline ::JSONProto* mutable_compound(int index); - inline ::JSONProto* add_compound(); - inline const ::google::protobuf::RepeatedPtrField< ::JSONProto >& - compound() const; - inline ::google::protobuf::RepeatedPtrField< ::JSONProto >* - mutable_compound(); - - // optional string key = 2; - inline bool has_key() const; - inline void clear_key(); - static const int kKeyFieldNumber = 2; - inline const ::std::string& key() const; - inline void set_key(const ::std::string& value); - inline void set_key(const char* value); - inline void set_key(const char* value, size_t size); - inline ::std::string* mutable_key(); - inline ::std::string* release_key(); - inline void set_allocated_key(::std::string* key); - - // optional string atom = 3; - inline bool has_atom() const; - inline void clear_atom(); - static const int kAtomFieldNumber = 3; - inline const ::std::string& atom() const; - inline void set_atom(const ::std::string& value); - inline void set_atom(const char* value); - inline void set_atom(const char* value, size_t size); - inline ::std::string* mutable_atom(); - inline ::std::string* release_atom(); - inline void set_allocated_atom(::std::string* atom); - - // optional bool verbatim = 4; - inline bool has_verbatim() const; - inline void clear_verbatim(); - static const int kVerbatimFieldNumber = 4; - inline bool verbatim() const; - inline void set_verbatim(bool value); - - // @@protoc_insertion_point(class_scope:JSONProto) - private: - inline void set_has_key(); - inline void clear_has_key(); - inline void set_has_atom(); - inline void clear_has_atom(); - inline void set_has_verbatim(); - inline void clear_has_verbatim(); - - ::google::protobuf::UnknownFieldSet _unknown_fields_; - - ::google::protobuf::RepeatedPtrField< ::JSONProto > compound_; - ::std::string* key_; - ::std::string* atom_; - bool verbatim_; - - mutable int _cached_size_; - ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32]; - - friend void protobuf_AddDesc_JSON_2eproto(); - friend void protobuf_AssignDesc_JSON_2eproto(); - friend void protobuf_ShutdownFile_JSON_2eproto(); - - void InitAsDefaultInstance(); - static JSONProto* default_instance_; +public: + JSONProto(); + virtual ~JSONProto(); + + JSONProto(const JSONProto& from); + + inline JSONProto& operator=(const JSONProto& from) { + CopyFrom(from); + return *this; + } + + inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const { + return _unknown_fields_; + } + + inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() { + return &_unknown_fields_; + } + + static const ::google::protobuf::Descriptor* descriptor(); + static const JSONProto& default_instance(); + + void Swap(JSONProto* other); + + // implements Message ---------------------------------------------- + + JSONProto* New() const; + void CopyFrom(const ::google::protobuf::Message& from); + void MergeFrom(const ::google::protobuf::Message& from); + void CopyFrom(const JSONProto& from); + void MergeFrom(const JSONProto& from); + void Clear(); + bool IsInitialized() const; + + int ByteSize() const; + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input); + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const; + ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const; + int GetCachedSize() const { + return _cached_size_; + } +private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const; +public: + + ::google::protobuf::Metadata GetMetadata() const; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // repeated .JSONProto compound = 1; + inline int compound_size() const; + inline void clear_compound(); + static const int kCompoundFieldNumber = 1; + inline const ::JSONProto& compound(int index) const; + inline ::JSONProto* mutable_compound(int index); + inline ::JSONProto* add_compound(); + inline const ::google::protobuf::RepeatedPtrField< ::JSONProto >& + compound() const; + inline ::google::protobuf::RepeatedPtrField< ::JSONProto >* + mutable_compound(); + + // optional string key = 2; + inline bool has_key() const; + inline void clear_key(); + static const int kKeyFieldNumber = 2; + inline const ::std::string& key() const; + inline void set_key(const ::std::string& value); + inline void set_key(const char* value); + inline void set_key(const char* value, size_t size); + inline ::std::string* mutable_key(); + inline ::std::string* release_key(); + inline void set_allocated_key(::std::string* key); + + // optional string atom = 3; + inline bool has_atom() const; + inline void clear_atom(); + static const int kAtomFieldNumber = 3; + inline const ::std::string& atom() const; + inline void set_atom(const ::std::string& value); + inline void set_atom(const char* value); + inline void set_atom(const char* value, size_t size); + inline ::std::string* mutable_atom(); + inline ::std::string* release_atom(); + inline void set_allocated_atom(::std::string* atom); + + // optional bool verbatim = 4; + inline bool has_verbatim() const; + inline void clear_verbatim(); + static const int kVerbatimFieldNumber = 4; + inline bool verbatim() const; + inline void set_verbatim(bool value); + + // @@protoc_insertion_point(class_scope:JSONProto) +private: + inline void set_has_key(); + inline void clear_has_key(); + inline void set_has_atom(); + inline void clear_has_atom(); + inline void set_has_verbatim(); + inline void clear_has_verbatim(); + + ::google::protobuf::UnknownFieldSet _unknown_fields_; + + ::google::protobuf::RepeatedPtrField< ::JSONProto > compound_; + ::std::string* key_; + ::std::string* atom_; + bool verbatim_; + + mutable int _cached_size_; + ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32]; + + friend void protobuf_AddDesc_JSON_2eproto(); + friend void protobuf_AssignDesc_JSON_2eproto(); + friend void protobuf_ShutdownFile_JSON_2eproto(); + + void InitAsDefaultInstance(); + static JSONProto* default_instance_; }; // =================================================================== @@ -167,189 +169,189 @@ class JSONProto : public ::google::protobuf::Message { // repeated .JSONProto compound = 1; inline int JSONProto::compound_size() const { - return compound_.size(); + return compound_.size(); } inline void JSONProto::clear_compound() { - compound_.Clear(); + compound_.Clear(); } inline const ::JSONProto& JSONProto::compound(int index) const { - return compound_.Get(index); + return compound_.Get(index); } inline ::JSONProto* JSONProto::mutable_compound(int index) { - return compound_.Mutable(index); + return compound_.Mutable(index); } inline ::JSONProto* JSONProto::add_compound() { - return compound_.Add(); + return compound_.Add(); } inline const ::google::protobuf::RepeatedPtrField< ::JSONProto >& JSONProto::compound() const { - return compound_; + return compound_; } inline ::google::protobuf::RepeatedPtrField< ::JSONProto >* JSONProto::mutable_compound() { - return &compound_; + return &compound_; } // optional string key = 2; inline bool JSONProto::has_key() const { - return (_has_bits_[0] & 0x00000002u) != 0; + return (_has_bits_[0] & 0x00000002u) != 0; } inline void JSONProto::set_has_key() { - _has_bits_[0] |= 0x00000002u; + _has_bits_[0] |= 0x00000002u; } inline void JSONProto::clear_has_key() { - _has_bits_[0] &= ~0x00000002u; + _has_bits_[0] &= ~0x00000002u; } inline void JSONProto::clear_key() { - if (key_ != &::google::protobuf::internal::kEmptyString) { - key_->clear(); - } - clear_has_key(); + if (key_ != &::google::protobuf::internal::kEmptyString) { + key_->clear(); + } + clear_has_key(); } inline const ::std::string& JSONProto::key() const { - return *key_; + return *key_; } inline void JSONProto::set_key(const ::std::string& value) { - set_has_key(); - if (key_ == &::google::protobuf::internal::kEmptyString) { - key_ = new ::std::string; - } - key_->assign(value); + set_has_key(); + if (key_ == &::google::protobuf::internal::kEmptyString) { + key_ = new ::std::string; + } + key_->assign(value); } inline void JSONProto::set_key(const char* value) { - set_has_key(); - if (key_ == &::google::protobuf::internal::kEmptyString) { - key_ = new ::std::string; - } - key_->assign(value); + set_has_key(); + if (key_ == &::google::protobuf::internal::kEmptyString) { + key_ = new ::std::string; + } + key_->assign(value); } inline void JSONProto::set_key(const char* value, size_t size) { - set_has_key(); - if (key_ == &::google::protobuf::internal::kEmptyString) { - key_ = new ::std::string; - } - key_->assign(reinterpret_cast<const char*>(value), size); + set_has_key(); + if (key_ == &::google::protobuf::internal::kEmptyString) { + key_ = new ::std::string; + } + key_->assign(reinterpret_cast<const char*>(value), size); } inline ::std::string* JSONProto::mutable_key() { - set_has_key(); - if (key_ == &::google::protobuf::internal::kEmptyString) { - key_ = new ::std::string; - } - return key_; + set_has_key(); + if (key_ == &::google::protobuf::internal::kEmptyString) { + key_ = new ::std::string; + } + return key_; } inline ::std::string* JSONProto::release_key() { - clear_has_key(); - if (key_ == &::google::protobuf::internal::kEmptyString) { - return NULL; - } else { - ::std::string* temp = key_; - key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString); - return temp; - } + clear_has_key(); + if (key_ == &::google::protobuf::internal::kEmptyString) { + return NULL; + } else { + ::std::string* temp = key_; + key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString); + return temp; + } } inline void JSONProto::set_allocated_key(::std::string* key) { - if (key_ != &::google::protobuf::internal::kEmptyString) { - delete key_; - } - if (key) { - set_has_key(); - key_ = key; - } else { - clear_has_key(); - key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString); - } + if (key_ != &::google::protobuf::internal::kEmptyString) { + delete key_; + } + if (key) { + set_has_key(); + key_ = key; + } else { + clear_has_key(); + key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString); + } } // optional string atom = 3; inline bool JSONProto::has_atom() const { - return (_has_bits_[0] & 0x00000004u) != 0; + return (_has_bits_[0] & 0x00000004u) != 0; } inline void JSONProto::set_has_atom() { - _has_bits_[0] |= 0x00000004u; + _has_bits_[0] |= 0x00000004u; } inline void JSONProto::clear_has_atom() { - _has_bits_[0] &= ~0x00000004u; + _has_bits_[0] &= ~0x00000004u; } inline void JSONProto::clear_atom() { - if (atom_ != &::google::protobuf::internal::kEmptyString) { - atom_->clear(); - } - clear_has_atom(); + if (atom_ != &::google::protobuf::internal::kEmptyString) { + atom_->clear(); + } + clear_has_atom(); } inline const ::std::string& JSONProto::atom() const { - return *atom_; + return *atom_; } inline void JSONProto::set_atom(const ::std::string& value) { - set_has_atom(); - if (atom_ == &::google::protobuf::internal::kEmptyString) { - atom_ = new ::std::string; - } - atom_->assign(value); + set_has_atom(); + if (atom_ == &::google::protobuf::internal::kEmptyString) { + atom_ = new ::std::string; + } + atom_->assign(value); } inline void JSONProto::set_atom(const char* value) { - set_has_atom(); - if (atom_ == &::google::protobuf::internal::kEmptyString) { - atom_ = new ::std::string; - } - atom_->assign(value); + set_has_atom(); + if (atom_ == &::google::protobuf::internal::kEmptyString) { + atom_ = new ::std::string; + } + atom_->assign(value); } inline void JSONProto::set_atom(const char* value, size_t size) { - set_has_atom(); - if (atom_ == &::google::protobuf::internal::kEmptyString) { - atom_ = new ::std::string; - } - atom_->assign(reinterpret_cast<const char*>(value), size); + set_has_atom(); + if (atom_ == &::google::protobuf::internal::kEmptyString) { + atom_ = new ::std::string; + } + atom_->assign(reinterpret_cast<const char*>(value), size); } inline ::std::string* JSONProto::mutable_atom() { - set_has_atom(); - if (atom_ == &::google::protobuf::internal::kEmptyString) { - atom_ = new ::std::string; - } - return atom_; + set_has_atom(); + if (atom_ == &::google::protobuf::internal::kEmptyString) { + atom_ = new ::std::string; + } + return atom_; } inline ::std::string* JSONProto::release_atom() { - clear_has_atom(); - if (atom_ == &::google::protobuf::internal::kEmptyString) { - return NULL; - } else { - ::std::string* temp = atom_; - atom_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString); - return temp; - } + clear_has_atom(); + if (atom_ == &::google::protobuf::internal::kEmptyString) { + return NULL; + } else { + ::std::string* temp = atom_; + atom_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString); + return temp; + } } inline void JSONProto::set_allocated_atom(::std::string* atom) { - if (atom_ != &::google::protobuf::internal::kEmptyString) { - delete atom_; - } - if (atom) { - set_has_atom(); - atom_ = atom; - } else { - clear_has_atom(); - atom_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString); - } + if (atom_ != &::google::protobuf::internal::kEmptyString) { + delete atom_; + } + if (atom) { + set_has_atom(); + atom_ = atom; + } else { + clear_has_atom(); + atom_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString); + } } // optional bool verbatim = 4; inline bool JSONProto::has_verbatim() const { - return (_has_bits_[0] & 0x00000008u) != 0; + return (_has_bits_[0] & 0x00000008u) != 0; } inline void JSONProto::set_has_verbatim() { - _has_bits_[0] |= 0x00000008u; + _has_bits_[0] |= 0x00000008u; } inline void JSONProto::clear_has_verbatim() { - _has_bits_[0] &= ~0x00000008u; + _has_bits_[0] &= ~0x00000008u; } inline void JSONProto::clear_verbatim() { - verbatim_ = false; - clear_has_verbatim(); + verbatim_ = false; + clear_has_verbatim(); } inline bool JSONProto::verbatim() const { - return verbatim_; + return verbatim_; } inline void JSONProto::set_verbatim(bool value) { - set_has_verbatim(); - verbatim_ = value; + set_has_verbatim(); + verbatim_ = value; } diff --git a/src/uscxml/plugins/invoker/umundo/UmundoInvoker.cpp b/src/uscxml/plugins/invoker/umundo/UmundoInvoker.cpp index 081842f..bbfdabd 100644 --- a/src/uscxml/plugins/invoker/umundo/UmundoInvoker.cpp +++ b/src/uscxml/plugins/invoker/umundo/UmundoInvoker.cpp @@ -59,12 +59,12 @@ void UmundoInvoker::send(const SendRequest& req) { LOG(ERROR) << "Cannot transform content to data object per datamodel"; return; } - + std::string type; if (req.params.find("type") != req.params.end()) { // we are supposed to build a typed object type = req.params.find("type")->second; - + const google::protobuf::Message* protoMsg = umundo::PBSerializer::getProto(type); if (protoMsg == NULL) { LOG(ERROR) << "No type '" << type << "' is known, pass a directory with proto .desc files via types param when invoking"; @@ -76,7 +76,7 @@ void UmundoInvoker::send(const SendRequest& req) { LOG(ERROR) << "Cannot create message from JSON - not sending"; return; } - + if (!_isService) { // add all s11n properties _pub->prepareMsg(&msg, type, pbMsg); @@ -90,12 +90,12 @@ void UmundoInvoker::send(const SendRequest& req) { void* rv = NULL; stub->callStubMethod(req.name, pbMsg, type, rv, ""); protobufToData(event.data, *(const google::protobuf::Message*)rv); - + event.name = _invokeId + ".reply." + req.name; event.origin = msg.getMeta("um.channel"); event.origintype = "umundo"; event.type = Event::EXTERNAL; - + returnEvent(event); svcIter++; } @@ -116,7 +116,7 @@ void UmundoInvoker::send(const SendRequest& req) { LOG(ERROR) << "Cannot invoke services with untyped JSON"; return; } - + } } catch (Event e) { LOG(ERROR) << "Syntax error when invoking umundo:" << std::endl << e << std::endl; @@ -125,7 +125,7 @@ void UmundoInvoker::send(const SendRequest& req) { } else { LOG(ERROR) << "Required JSON object in content" << std::endl; return; - } + } } void UmundoInvoker::cancel(const std::string sendId) { @@ -187,7 +187,7 @@ void UmundoInvoker::invoke(const InvokeRequest& req) { _pub->setGreeter(this); _sub->registerType("JSON", new JSONProto()); - + _node->addPublisher(*_pub); _node->addSubscriber(*_sub); @@ -237,7 +237,7 @@ void UmundoInvoker::receive(void* object, umundo::Message* msg) { if (object != NULL) { if (msg->getMeta().find("um.s11n.type") != msg->getMeta().end() && - boost::equals(msg->getMeta().find("um.s11n.type")->second, "JSON")) { + boost::equals(msg->getMeta().find("um.s11n.type")->second, "JSON")) { jsonbufToData(event.data, *(JSONProto*)object); } else { protobufToData(event.data, *(const google::protobuf::Message*)object); @@ -349,7 +349,7 @@ bool UmundoInvoker::jsonbufToData(Data& data, const JSONProto& json) { data.type = Data::INTERPRETED; } } - + return true; } @@ -485,7 +485,7 @@ bool UmundoInvoker::dataToJSONbuf(JSONProto* msg, Data& data) { } else if (!data.array.empty()) { const google::protobuf::FieldDescriptor* fieldDesc = desc->FindFieldByName("compound"); - std::list<Data>::iterator arrayIter = data.array.begin(); + std::list<Data>::iterator arrayIter = data.array.begin(); while(arrayIter != data.array.end()) { JSONProto* arrayMsg = (JSONProto*)reflect->AddMessage(msg, fieldDesc); dataToJSONbuf(arrayMsg, *arrayIter); diff --git a/src/uscxml/plugins/invoker/umundo/UmundoInvoker.h b/src/uscxml/plugins/invoker/umundo/UmundoInvoker.h index 4d81e79..c013a52 100644 --- a/src/uscxml/plugins/invoker/umundo/UmundoInvoker.h +++ b/src/uscxml/plugins/invoker/umundo/UmundoInvoker.h @@ -18,7 +18,7 @@ namespace uscxml { class Interpreter; - class UmundoInvoker : public InvokerImpl, public umundo::TypedReceiver, public umundo::ResultSet<umundo::ServiceDescription>, public umundo::TypedGreeter { +class UmundoInvoker : public InvokerImpl, public umundo::TypedReceiver, public umundo::ResultSet<umundo::ServiceDescription>, public umundo::TypedGreeter { public: UmundoInvoker(); virtual ~UmundoInvoker(); |