コード例 #1
0
ファイル: PageSerializer.cpp プロジェクト: Xertz/EAWebKit
void PageSerializer::addImageToResources(CachedImage* image, const KURL& url)
{
    if (!url.isValid() || m_resourceURLs.contains(url))
        return;

    if (!image || image->image() == Image::nullImage())
        return;

    String mimeType = image->response().mimeType();
    m_resources->append(Resource(url, mimeType, image->image()->data()));
    m_resourceURLs.add(url);
}
コード例 #2
0
ファイル: city.cpp プロジェクト: Whales/edigotia
std::map<Resource,int> City::get_luxuries(Luxury_type type)
{
  std::map<Resource,int> ret;

  for (int i = 0; i < RES_MAX; i++) {
    if (resources[i] > 1 && Resource_data[i]->luxury_type == type) {
      ret[ Resource(i) ] = resources[i];
    }
  }

  return ret;
}
コード例 #3
0
Resource ResourceTracker::RegisterResource(const std::string& name,
		void* resourceData)
{
	ResourceData* data =
		new ResourceData(resourceData, this, name);
	
	m_resourceMap[name] = data;

	// Remove the reference from our pointer
	data->RemoveReference();
	return Resource(data);
}
コード例 #4
0
  Resource createInstance(const char* php_func,
                          const Resource& stream,
                          const String& filter,
                          const Variant& params) {
    auto class_name = m_registeredFilters.rvalAt(filter).asCStrRef();
    Class* class_ = Unit::getClass(class_name.get(), true);
    Object obj = Object();

    if (LIKELY(class_ != nullptr)) {
      PackedArrayInit ctor_args(3);
      ctor_args.append(stream);
      ctor_args.append(filter);
      ctor_args.append(params);
      obj = g_context->createObject(class_name.get(), ctor_args.toArray());
      auto created = obj->o_invoke(s_onCreate, Array::Create());
      /* - true: documented value for success
       * - null: undocumented default successful value
       * - false: documented value for failure
       */
      if (!(created.isNull() || created.toBoolean())) {
        obj.reset();
      }
    } else {
      raise_warning("%s: user-filter \"%s\" requires class \"%s\", but that "
                    "class " "is not defined",
                    php_func,
                    filter.data(),
                    class_name.data());
      // Fall through, as to match Zend, the warning below should also be raised
    }

    if (obj.isNull()) {
      raise_warning("%s: unable to create or locate filter \"%s\"",
                    php_func,
                    filter.data());
      return Resource();
    }

    return Resource(newres<StreamFilter>(obj, stream));
  }
コード例 #5
0
ファイル: ext_sockets.cpp プロジェクト: RyanCccc/hhvm
bool HHVM_FUNCTION(socket_create_pair,
                   int domain,
                   int type,
                   int protocol,
                   VRefParam fd) {
  check_socket_parameters(domain, type);

  int fds_array[2];
  if (socketpair(domain, type, protocol, fds_array) != 0) {
    Socket dummySock; // for setting last socket error
    SOCKET_ERROR((&dummySock), "unable to create socket pair", errno);
    return false;
  }

  fd = make_packed_array(
    Resource(new Socket(fds_array[0], domain, nullptr, 0, 0.0,
                        s_socktype_generic)),
    Resource(new Socket(fds_array[1], domain, nullptr, 0, 0.0,
                        s_socktype_generic))
  );
  return true;
}
コード例 #6
0
    static void HHVM_METHOD(EventHttp, __construct, const Object &base) {
        evhttp_t *http;
        InternalResourceData *event_base_resource_data = FETCH_RESOURCE(base, InternalResourceData, s_event_base);
        event_base_t *event_base = (event_base_t *)event_base_resource_data->getInternalResourceData();
        http = evhttp_new(event_base);

        if(!http){
            raise_error("Failed to allocate space for new HTTP server(evhttp_new)");
        }

        Resource resource = Resource(NEWOBJ(EventHttpResourceData(http)));
        SET_RESOURCE(this_, resource, s_event_http);
    }
コード例 #7
0
CCMSDIntegrator::CCMSDIntegrator(void)
:
		resources((std::vector<IObjectPtr>&) Resource().objects()),
		cells((std::vector<IObjectPtr>&) Cell().objects()),
		parts((std::vector<IObjectPtr>&) Part().objects()),
		processplans((std::vector<IObjectPtr>&) ProcessPlan().objects()),
		jobs((std::vector<IObjectPtr>&) Job().objects()),
		distributions((std::vector<IObjectPtr>&) Distribution().objects()),
		calendars((std::vector<IObjectPtr>&) Calendar().objects()),
		layouts((std::vector<IObjectPtr>&) Layout().objects())

{
}
コード例 #8
0
ファイル: user-file.cpp プロジェクト: HilayPatel/hhvm
Resource UserFile::invokeCast(int castas) {
  bool invoked = false;
  Variant ret = invoke(
    m_StreamCast,
    s_stream_cast,
    PackedArrayInit(1)
      .append(castas)
      .toArray(),
    invoked
  );

  if (!invoked) {
    raise_warning(
      "%s::stream_cast is not implemented!",
      m_cls->name()->data()
    );
    return Resource();
  }
  if (ret.toBoolean() == false) {
    return Resource();
  }
  auto f = dyn_cast_or_null<File>(ret);
  if (!f) {
    raise_warning(
      "%s::stream_cast must return a stream resource",
      m_cls->name()->data()
    );
    return Resource();
  }
  if (f == this) {
    raise_warning(
      "%s::stream_cast must not return itself",
      m_cls->name()->data()
    );
    return Resource();
  }

  return Resource(std::move(f));
}
コード例 #9
0
int
cIpmiControlIntelRmsLed::SetIdentify( unsigned char tval)
{
  cIpmiMsg msg( eIpmiNetfnChassis, eIpmiCmdChassisIdentify );
  msg.m_data[0] = tval; /*num seconds*/
  msg.m_data_len = 1;
  cIpmiMsg rsp;

  SaErrorT rv = Resource()->SendCommandReadLock( this, msg, rsp );
  if (rv != 0) return(rv);
  if (rsp.m_data[0] != 0) rv = rsp.m_data[0];  /*comp code*/
  return(rv);
}
コード例 #10
0
ファイル: ext_stream.cpp プロジェクト: 2bj/hhvm
Variant f_stream_context_get_default(const Array& options /* = null_array */) {
  Resource &resource = g_context->getStreamContext();
  if (resource.isNull()) {
    resource = Resource(NEWOBJ(StreamContext)(Array::Create(),
                                              Array::Create()));
    g_context->setStreamContext(resource);
  }
  StreamContext *context = resource.getTyped<StreamContext>();
  if (!options.isNull() && !f_stream_context_set_option0(context, options)) {
    return false;
  }
  return resource;
}
コード例 #11
0
ファイル: ExternalInterface.cpp プロジェクト: jarnik/lime
	value lime_font_load (value data) {
		
		#ifdef LIME_FREETYPE
		Resource resource;
		
		if (val_is_string (data)) {
			
			resource = Resource (val_string (data));
			
		} else {
			
			Bytes bytes (data);
			resource = Resource (&bytes);
			
		}
		
		Font *font = new Font (&resource, 0);
		
		if (font) {
			
			if (font->face) {
				
				value v = alloc_float ((intptr_t)font);
				val_gc (v, lime_font_destroy);
				return v;
				
			} else {
				
				delete font;
				
			}
			
		}
		#endif
		
		return alloc_null ();
		
	}
コード例 #12
0
//@TODO wyalic nie uzywana metode
void Resource::loadFonts() {

    //bold small
    {
        TTF_Font* font = TTF_OpenFont(
                             Property::get("FONT_BOLD_PATH").c_str(),
                             Property::getSetting("SMALL_FONT")
                         );

        if ( font == NULL )  Resource().fontError();
        pFonts.insert( std::pair<string,TTF_Font*>( "bold_small",font ));
    }

    //bold normal
    {
        TTF_Font* font = TTF_OpenFont(
                             Property::get("FONT_BOLD_PATH").c_str(),
                             Property::getSetting("NORMAL_FONT")
                         );

        if ( font == NULL )  Resource().fontError();
        pFonts.insert( std::pair<string,TTF_Font*>( "bold",font ));
    }

    //bold big
    {
        TTF_Font* font = TTF_OpenFont(
                             Property::get("FONT_BOLD_PATH").c_str(),
                             Property::getSetting("BIG_FONT")
                         );

        if ( font == NULL )  Resource().fontError();
        pFonts.insert( std::pair<string,TTF_Font*>( "bold_big",font ));
    }

    ///@TODO dodac reszte czcionek

}
コード例 #13
0
ファイル: boxbrowser.cpp プロジェクト: giantpune/libps3gui
BoxBrowser::BoxBrowser()
{
	currentSelection = 0;
	busy = false;
	ignoreInput = false;
	needToUpdateBoxes = true;
	showDetails = false;
	width = WINDOW_WIDTH;
	height = WINDOW_HEIGHT;
	mode = M_IDLE;
	speed = 0;
	buttonDelay = 0;
	animFrame = 0;
	inputIdx = 0;
	listIdx = 0;
	viewMode = viewFlow;
	bgImg1 = NULL;
	bgImg2 = NULL;
	//ratingImg = NULL;
	//ratingImgData = NULL;
	camY = 0;
	camdif = 1;
	camDelay = 3;
	DefaultZoom();

	gameText = new GuiText( font, (char*)NULL, 20, 0x00ff00ff );
	gameText->SetAlignment( ALIGN_TOP | ALIGN_CENTER );
	gameText->SetPosition( 0, 40 );
	gameText->SetParent( this );

//	zIdTxt = new GuiText( font, (char*)NULL, 20, 0x00ff00ff );
//	zIdTxt->SetAlignment( ALIGN_TOP | ALIGN_RIGHT );
//	zIdTxt->SetPosition( 0, -40 );
//	zIdTxt->SetParent( this );

	CreateMaxtrices();

	//create nocover data
	noCoverdata = new (std::nothrow) GuiImageData( Resource( "images/nocoverFull.png" ), TINY3D_TEX_FORMAT_R5G6B5 );
	if( !noCoverdata )
	{
		printf("oh snap! failed to create noCoverdata.  this wont end well\n");
		return;
	}
	//create boxes
	for( int i = 0; i < NUM_BOXES; i++ )
	{
		box[ i ] = new BoxCover();
	}
}
コード例 #14
0
ファイル: selective_channel.cpp プロジェクト: yzhenma/brpc
void Sender::Clear() {
    if (_main_cntl == NULL) {
        return;
    }
    delete _alloc_resources[1].response;
    delete _alloc_resources[1].sub_done;
    _alloc_resources[1] = Resource();
    const CallId cid = _main_cntl->call_id();
    _main_cntl = NULL;
    if (_user_done) {
        _user_done->Run();
    }
    bthread_id_unlock_and_destroy(cid);
}
コード例 #15
0
ファイル: ext_mysql.cpp プロジェクト: Bluarggag/hhvm
Variant f_mysql_list_tables(const String& database,
                            CVarRef link_identifier /* = null */) {
  MYSQL *conn = MySQL::GetConn(link_identifier);
  if (!conn) return false;
  if (mysql_select_db(conn, database.data())) {
    return false;
  }
  MYSQL_RES *res = mysql_list_tables(conn, NULL);
  if (!res) {
    raise_warning("Unable to save MySQL query result");
    return false;
  }
  return Resource(NEWOBJ(MySQLResult)(res));
}
コード例 #16
0
ファイル: ext_mysql.cpp プロジェクト: Mo-k-tec/hhvm
static Variant HHVM_FUNCTION(mysql_list_tables, const String& database,
                      const Variant& link_identifier /* = null */) {
  MYSQL *conn = MySQL::GetConn(link_identifier);
  if (!conn) return false;
  if (mysql_select_db(conn, database.data())) {
    return false;
  }
  MYSQL_RES *res = mysql_list_tables(conn, NULL);
  if (!res) {
    raise_warning("Unable to save MySQL query result");
    return false;
  }
  return Resource(newres<MySQLResult>(res));
}
コード例 #17
0
ファイル: ext_sockets.cpp プロジェクト: RyanCccc/hhvm
Variant HHVM_FUNCTION(socket_accept,
                      const Resource& socket) {
  Socket *sock = socket.getTyped<Socket>();
  struct sockaddr sa;
  socklen_t salen = sizeof(sa);
  Socket *new_sock = new Socket(accept(sock->fd(), &sa, &salen),
                                sock->getType());
  if (!new_sock->valid()) {
    SOCKET_ERROR(new_sock, "unable to accept incoming connection", errno);
    delete new_sock;
    return false;
  }
  return Resource(new_sock);
}
コード例 #18
0
Resource ResourceTracker::GetResource(const std::string& name, void* params)
{
	std::map<std::string, ResourceData*>::const_iterator it =
		m_resourceMap.find(name);
	if(it != m_resourceMap.end())
	{
		return Resource(it->second);
	}
	else
	{
		void* data = m_allocFunc(m_allocator, name, params);
		return RegisterResource(name, data);
	}
}
コード例 #19
0
ファイル: ExternalInterface.cpp プロジェクト: Rezmason/lime
	value lime_font_load (value data) {
		
		#ifdef LIME_FREETYPE
		Resource resource;
		Bytes bytes;
		
		if (val_is_string (data)) {
			
			resource = Resource (val_string (data));
			
		} else {
			
			bytes.Set (data);
			resource = Resource (&bytes);
			
		}
		
		Font *font = new Font (&resource, 0);
		
		if (font) {
			
			if (font->face) {
				
				return CFFIPointer (font, gc_font);
				
			} else {
				
				delete font;
				
			}
			
		}
		#endif
		
		return alloc_null ();
		
	}
コード例 #20
0
ファイル: ext_xml.cpp プロジェクト: Mo-k-tec/hhvm
static Variant php_xml_parser_create_impl(const String& encoding_param,
                                          const String& ns_param, int ns_support) {
  XmlParser *parser;
  int auto_detect = 0;
  XML_Char *encoding;

  if (!encoding_param.isNull()) {
    /* The supported encoding types are hardcoded here because
     * we are limited to the encodings supported by expat/xmltok.
     */
    if (encoding_param.size() == 0) {
      encoding = XML(default_encoding);
      auto_detect = 1;
    } else if (strcasecmp(encoding_param.data(), "ISO-8859-1") == 0) {
      encoding = (XML_Char*)"ISO-8859-1";
    } else if (strcasecmp(encoding_param.data(), "UTF-8") == 0) {
      encoding = (XML_Char*)"UTF-8";
    } else if (strcasecmp(encoding_param.data(), "US-ASCII") == 0) {
      encoding = (XML_Char*)"US-ASCII";
    } else {
      raise_warning("unsupported source encoding \"%s\"",
                    encoding_param.c_str());
      return false;
    }
  } else {
    encoding = XML(default_encoding);
  }

  String separator;
  if (ns_support && ns_param.empty()) {
    separator = ":";
  } else {
    separator = ns_param;
  }

  parser = newres<XmlParser>();
  parser->parser = XML_ParserCreate_MM
    ((auto_detect ? NULL : encoding), &php_xml_mem_hdlrs,
     !separator.empty() ? (const XML_Char*)separator.data() : NULL);

  parser->target_encoding = encoding;
  parser->case_folding = 1;
  parser->object.asTypedValue()->m_type = KindOfNull;
  parser->isparsing = 0;

  XML_SetUserData(parser->parser, parser);

  return Resource(parser);
}
コード例 #21
0
    static Variant HHVM_METHOD(EventHttpRequest, getOutputBuffer) {
        event_buffer_t *buf;
        EventHttpRequestResourceData *event_http_request_resource_data = FETCH_RESOURCE(this_, EventHttpRequestResourceData, s_event_http_request);

        if((buf = evhttp_request_get_output_buffer((evhttp_request_t *) event_http_request_resource_data->getInternalResourceData())) == NULL){
            return Variant();
        }

        Object event_buffer = ObjectData::newInstance(Unit::lookupClass(String("EventBuffer").get()));
        Resource resource = Resource(NEWOBJ(InternalResourceData(buf)));
        SET_RESOURCE(event_buffer, resource, s_event_buffer);
        InternalResourceData *resource_data = FETCH_RESOURCE(event_buffer, InternalResourceData, s_event_buffer);
        resource_data->isInternal = true;
        return event_buffer;
    }
コード例 #22
0
unsigned char
cIpmiControlIntelRmsLed::GetAlarms( void )
{
  cIpmiMsg msg( eIpmiNetfnApp, eIpmiCmdMasterReadWrite );
  msg.m_data[0] = m_busid;
  msg.m_data[1] = ALARMS_PANEL_READ;
  msg.m_data[2] = 0x01;
  msg.m_data_len = 3;
  cIpmiMsg rsp;

  SaErrorT rv = Resource()->SendCommandReadLock( this, msg, rsp );
  if (rv != SA_OK) return(0);
  // uchar cc = rsp.m_data[0]; 
  return(rsp.m_data[1]);
}
コード例 #23
0
ButtonGridTextureSheet::ButtonGridTextureSheet(TextureAtlas* textureAtlas)
{
	TextureSheet buttonBackgroundSheet = textureAtlas->AddTextureSheet(Image().LoadFromResource(Resource("Textures/ButtonNormal.png")));
	TextureSheet buttonHighlightSheet = textureAtlas->AddTextureSheet(Image().LoadFromResource(Resource("Textures/ButtonHighlight.png")));
	TextureSheet buttonSelectedSheet = textureAtlas->AddTextureSheet(Image().LoadFromResource(Resource("Textures/ButtonSelected.png")));
	TextureSheet buttonIcons = textureAtlas->AddTextureSheet(Image().LoadFromResource(Resource("Textures/ButtonIcons.png")));
	TextureSheet editorTools = textureAtlas->AddTextureSheet(Image().LoadFromResource(Resource("Textures/EditorTools.png")));

	buttonBackground = buttonBackgroundSheet.NewTextureImage(BorderBounds(0, 0, 64, 64).Inset(32));
	buttonHighlight = buttonHighlightSheet.NewTextureImage(BorderBounds(0, 0, 64, 64).Inset(32));
	buttonSelected = buttonSelectedSheet.NewTextureImage(BorderBounds(0, 0, 64, 64).Inset(32));

	buttonIconPlay = buttonIcons.NewTextureImage(BorderBounds(0, 0, 25, 32));
	buttonIconPause = buttonIcons.NewTextureImage(BorderBounds(25, 0, 25, 32));

	buttonEditorToolHand  = editorTools.NewTextureImage(BorderBounds(0, 0, 64, 64));
	buttonEditorToolPaint = editorTools.NewTextureImage(BorderBounds(64, 0, 64, 64));
	buttonEditorToolErase = editorTools.NewTextureImage(BorderBounds(128, 0, 64, 64));
	buttonEditorToolSmear = editorTools.NewTextureImage(BorderBounds(196, 0, 64, 64));
	buttonEditorToolHills = editorTools.NewTextureImage(BorderBounds(0, 64, 64, 64));
	buttonEditorToolTrees = editorTools.NewTextureImage(BorderBounds(64, 64, 64, 64));
	buttonEditorToolWater = editorTools.NewTextureImage(BorderBounds(128, 64, 64, 64));
	buttonEditorToolFords = editorTools.NewTextureImage(BorderBounds(196, 64, 64, 64));
}
コード例 #24
0
ファイル: ExternalInterface.cpp プロジェクト: Rezmason/lime
	value lime_image_load (value data) {
		
		ImageBuffer buffer;
		Resource resource;
		Bytes bytes;
		
		if (val_is_string (data)) {
			
			resource = Resource (val_string (data));
			
		} else {
			
			bytes.Set (data);
			resource = Resource (&bytes);
			
		}
		
		#ifdef LIME_PNG
		if (PNG::Decode (&resource, &buffer)) {
			
			return buffer.Value ();
			
		}
		#endif
		
		#ifdef LIME_JPEG
		if (JPEG::Decode (&resource, &buffer)) {
			
			return buffer.Value ();
			
		}
		#endif
		
		return alloc_null ();
		
	}
コード例 #25
0
/**
 * Generate an event if the enabling / mask of the sensor was changed 
 **/
void NewSimulatorSensor::CreateEnableChangeEvent()
{
  NewSimulatorResource *res = Resource();
  if( !res )
     {
       stdlog << "CreateEnableChangeEvent: No resource !\n";
       return;
     }

  oh_event *e = (oh_event *)g_malloc0( sizeof( struct oh_event ) );
  
  e->event.EventType = SAHPI_ET_SENSOR_ENABLE_CHANGE;

  SaHpiRptEntryT *rptentry = oh_get_resource_by_id( res->Domain()->GetHandler()->rptcache, res->ResourceId() );
  SaHpiRdrT *rdrentry = oh_get_rdr_by_id( res->Domain()->GetHandler()->rptcache, res->ResourceId(), m_record_id );

  if ( rptentry )
      e->resource = *rptentry;
  else
      e->resource.ResourceCapabilities = 0;

  if ( rdrentry )
      e->rdrs = g_slist_append(e->rdrs, g_memdup(rdrentry, sizeof(SaHpiRdrT)));
  else
      e->rdrs = NULL;

  // hpi events
  e->event.Source    = res->ResourceId();
  e->event.EventType = SAHPI_ET_SENSOR_ENABLE_CHANGE;
  e->event.Severity  = SAHPI_INFORMATIONAL;
  
  oh_gettimeofday(&e->event.Timestamp);
  
  // sensor enable event
  SaHpiSensorEnableChangeEventT *se = &e->event.EventDataUnion.SensorEnableChangeEvent;
  se->SensorNum     = m_sensor_record.Num;
  se->SensorType    = Type();
  se->EventCategory = EventCategory();
  se->SensorEnable  = m_enabled;
  se->SensorEventEnable = m_events_enabled;
  se->AssertEventMask   = m_assert_mask;
  se->DeassertEventMask = m_deassert_mask;
  
  stdlog << "NewSimulatorSensor::CreateEnableChangeEvent OH_ET_HPI Event enable change resource " << res-> ResourceId() << "\n";
  res->Domain()->AddHpiEvent( e );

  return;
}
コード例 #26
0
ファイル: ExternalInterface.cpp プロジェクト: Rezmason/lime
	value lime_png_decode_file (HxString path, bool decodeData) {
		
		ImageBuffer imageBuffer;
		Resource resource = Resource (path.__s);
		
		#ifdef LIME_PNG
		if (PNG::Decode (&resource, &imageBuffer, decodeData)) {
			
			return imageBuffer.Value ();
			
		}
		#endif
		
		return alloc_null ();
		
	}
コード例 #27
0
ファイル: ExternalInterface.cpp プロジェクト: jarnik/lime
	value lime_png_decode_file (value data, value decodeData) {
		
		ImageBuffer imageBuffer;
		Resource resource = Resource (val_string (data));
		
		#ifdef LIME_PNG
		if (PNG::Decode (&resource, &imageBuffer, val_bool (decodeData))) {
			
			return imageBuffer.Value ();
			
		}
		#endif
		
		return alloc_null ();
		
	}
コード例 #28
0
int
cIpmiControlIntelRmsLed::SetAlarms( unsigned char value)
{
  cIpmiMsg msg( eIpmiNetfnApp, eIpmiCmdMasterReadWrite );
  msg.m_data[0] = m_busid;
  msg.m_data[1] = ALARMS_PANEL_WRITE;
  msg.m_data[2] = 0x01;
  msg.m_data[3] = value;
  msg.m_data_len = 4;
  cIpmiMsg rsp;

  SaErrorT rv = Resource()->SendCommandReadLock( this, msg, rsp );
  if (rv != 0) return(rv);
  if (rsp.m_data[0] != 0) rv = rsp.m_data[0];  /*comp code*/
  return(rv);
}
コード例 #29
0
Variant f_mcrypt_module_open(const String& algorithm, const String& algorithm_directory,
                             const String& mode, const String& mode_directory) {
    MCRYPT td = mcrypt_module_open
                ((char*)algorithm.data(),
                 (char*)(algorithm_directory.empty() ? MCG(algorithms_dir).data() :
                         algorithm_directory.data()),
                 (char*)mode.data(),
                 (char*)(mode_directory.empty() ? (char*)MCG(modes_dir).data() :
                         mode_directory.data()));

    if (td == MCRYPT_FAILED) {
        raise_warning("Could not open encryption module");
        return false;
    }

    return Resource(new MCrypt(td));
}
コード例 #30
0
unsigned char
cIpmiControlIntelRmsLed::GetAlarmsPicmg( unsigned char picmg_id, unsigned char fruid)
{
  cIpmiMsg msg( eIpmiNetfnPicmg, eIpmiCmdGetFruLedState );
  cIpmiMsg rsp;
  msg.m_data[0] = picmg_id;
  msg.m_data[1] = fruid;
  msg.m_data[2] = 0;  /* blue LED */
  msg.m_data_len = 3;
  SaErrorT rv = Resource()->SendCommandReadLock( this, msg, rsp );
  if (rv == 0 && rsp.m_data[0] != 0) rv = rsp.m_data[0];  /*comp code*/
  if (rv != 0) {
      stdlog << "GetAlarmsPicmg error rv = " << rv << "\n";
      return(0);
  }
  return(rsp.m_data[6]);  /*status byte*/
}