X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=octopi%2Flibrary%2Foctopus%2Ftentacle.cpp;h=beb2fb4e07af6d444cf22a1a77fabb6c18873382;hb=20662d2d244c2857139a8ec9f7496bfdb369ec25;hp=7c618033de97b43d6e062c855a7255857634f144;hpb=2952ccf47b80174880141a7ecfa122089f349b8d;p=feisty_meow.git diff --git a/octopi/library/octopus/tentacle.cpp b/octopi/library/octopus/tentacle.cpp index 7c618033..beb2fb4e 100644 --- a/octopi/library/octopus/tentacle.cpp +++ b/octopi/library/octopus/tentacle.cpp @@ -19,10 +19,12 @@ #include #include +#include #include #include using namespace basis; +using namespace loggers; using namespace processes; using namespace structures; @@ -73,8 +75,8 @@ tentacle::tentacle(const string_array &group_name, bool backgrounded, : _group(new string_array(group_name)), _pending(new queueton), _input_guard(new mutex), - _action(NIL), - _products(NIL), + _action(NULL_POINTER), + _products(NULL_POINTER), _backgrounded(backgrounded) { // we only start the thread if they've said they'll support backgrounding. @@ -99,28 +101,28 @@ const char *tentacle::outcome_name(const outcome &to_name) int tentacle::motivational_rate() const { if (_action) return _action->sleep_time(); else return 0; } +entity_data_bin *tentacle::get_storage() { return _products; } + void tentacle::attach_storage(entity_data_bin &storage) { _products = &storage; - if (_action) _action->start(NIL); + if (_action) _action->start(NULL_POINTER); } void tentacle::detach_storage() { if (_action) _action->stop(); - _products = NIL; + _products = NULL_POINTER; } bool tentacle::store_product(infoton *product, const octopus_request_id &original_id) { -#ifdef DEBUG_TENTACLE FUNCDEF("store_product"); -#endif if (!_products) { -#ifdef DEBUG_TENTACLE +//#ifdef DEBUG_TENTACLE LOG("storage bunker has not been established!"); -#endif +//#endif return false; } return _products->add_item(product, original_id); @@ -156,9 +158,9 @@ outcome tentacle::enqueue(infoton *to_chow, const octopus_request_id &item_id) infoton *tentacle::next_request(octopus_request_id &item_id) { GRAB_CONSUMER_LOCK; - if (!_pending->elements()) return NIL; // nothing to return. + if (!_pending->elements()) return NULL_POINTER; // nothing to return. infoton *to_return = (*_pending)[0]->_product; - (*_pending)[0]->_product = NIL; + (*_pending)[0]->_product = NULL_POINTER; // clean out so destructor doesn't delete the object. item_id = (*_pending)[0]->_id; _pending->zap(0, 0); @@ -167,10 +169,8 @@ infoton *tentacle::next_request(octopus_request_id &item_id) void tentacle::propel_arm() { -#ifdef DEBUG_TENTACLE FUNCDEF("propel_arm"); -#endif - infoton *next_item = NIL; + infoton *next_item = NULL_POINTER; do { octopus_request_id id; next_item = next_request(id);