<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Advanced Robotics Kit (Ark) – ark::snmp</title>
    <link>https://ark.tbdrobotics.com/docs/api/ark-snmp/</link>
    <description>Recent content in ark::snmp on Advanced Robotics Kit (Ark)</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    
	  <atom:link href="https://ark.tbdrobotics.com/docs/api/ark-snmp/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: ark::snmp::SnmpClient</title>
      <link>https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpclient/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpclient/</guid>
      <description>
        
        
        &lt;p&gt;Defined in header &amp;ldquo;ark/snmp/snmp_client.hh&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Thin C++ wrapper around net-snmp session APIs.&lt;/p&gt;
&lt;p&gt;Why this exists:&lt;/p&gt;
&lt;h3 id=&#34;methods&#34;&gt;Methods&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;/span&gt; SnmpClient(&lt;span class=&#34;api-code-param&#34;&gt;const &lt;a href=&#34;https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpclientconfiguration&#34;&gt;SnmpClientConfiguration&lt;/a&gt; &amp;amp;&lt;/span&gt; config)&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;/span&gt; ~SnmpClient()&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;/span&gt; SnmpClient()&lt;/strong&gt;&lt;br&gt;
No copies. SnmpClient owns a net-snmp session handle.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;a href=&#34;https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpclient&#34;&gt;SnmpClient&lt;/a&gt; &amp;amp;&lt;/span&gt; operator=()&lt;/strong&gt;&lt;br&gt;
No copies. SnmpClient owns a net-snmp session handle.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;/span&gt; SnmpClient()&lt;/strong&gt;&lt;br&gt;
No moves. Keep ownership simple and avoid invalidating session-owned memory.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;a href=&#34;https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpclient&#34;&gt;SnmpClient&lt;/a&gt; &amp;amp;&lt;/span&gt; operator=()&lt;/strong&gt;&lt;br&gt;
No moves. Keep ownership simple and avoid invalidating session-owned memory.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;std::vector&amp;lt; std::string &amp;gt;&lt;/span&gt; list_mibs()&lt;/strong&gt;&lt;br&gt;
Returns loaded MIB module names visible to net-snmp in this process.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;std::optional&amp;lt; &lt;a href=&#34;https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpresult&#34;&gt;SnmpResult&lt;/a&gt; &amp;gt;&lt;/span&gt; try_get(&lt;span class=&#34;api-code-param&#34;&gt;const std::string &amp;amp;&lt;/span&gt; oid)&lt;/strong&gt;&lt;br&gt;
Gets a single OID value, returning empty if no variable is returned.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;a href=&#34;https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpresult&#34;&gt;SnmpResult&lt;/a&gt;&lt;/span&gt; get(&lt;span class=&#34;api-code-param&#34;&gt;const std::string &amp;amp;&lt;/span&gt; oid)&lt;/strong&gt;&lt;br&gt;
Gets a single OID value, throwing on empty result.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;std::vector&amp;lt; &lt;a href=&#34;https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpresult&#34;&gt;SnmpResult&lt;/a&gt; &amp;gt;&lt;/span&gt; get(&lt;span class=&#34;api-code-param&#34;&gt;const std::vector&amp;lt; std::string &amp;gt; &amp;amp;&lt;/span&gt; oids)&lt;/strong&gt;&lt;br&gt;
Gets multiple OID values with a single request PDU.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;std::vector&amp;lt; &lt;a href=&#34;https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpresult&#34;&gt;SnmpResult&lt;/a&gt; &amp;gt;&lt;/span&gt; get_bulk(&lt;span class=&#34;api-code-param&#34;&gt;const std::string &amp;amp;&lt;/span&gt; root_oid, &lt;span class=&#34;api-code-param&#34;&gt;int&lt;/span&gt; non_repeaters, &lt;span class=&#34;api-code-param&#34;&gt;int&lt;/span&gt; max_repetitions)&lt;/strong&gt;&lt;br&gt;
Performs a GETBULK operation for subtree/root OID.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: ark::snmp::SnmpClientConfiguration</title>
      <link>https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpclientconfiguration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpclientconfiguration/</guid>
      <description>
        
        
        &lt;p&gt;Defined in header &amp;ldquo;ark/snmp/snmp_client.hh&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Connection/configuration fields used to open an SNMP session.&lt;/p&gt;
&lt;h3 id=&#34;variables&#34;&gt;Variables&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;std::string&lt;/span&gt; peer&lt;span class=&#34;api-code-param&#34;&gt;= &amp;ldquo;127.0.0.1&amp;rdquo;&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
Hostname or IP of the target SNMP agent.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;std::string&lt;/span&gt; community&lt;span class=&#34;api-code-param&#34;&gt;= &amp;ldquo;public&amp;rdquo;&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
Community string for SNMP v1/v2c flows.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;uint16_t&lt;/span&gt; port&lt;span class=&#34;api-code-param&#34;&gt;= 161&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
Remote UDP port for SNMP queries.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;long&lt;/span&gt; timeout_us&lt;span class=&#34;api-code-param&#34;&gt;= 1&#39;000&#39;000&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
Timeout per request in microseconds.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;int&lt;/span&gt; retries&lt;span class=&#34;api-code-param&#34;&gt;= 1&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
Number of retries before failing a request.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: ark::snmp::SnmpMockAgentFixture</title>
      <link>https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpmockagentfixture/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpmockagentfixture/</guid>
      <description>
        
        
        &lt;p&gt;Defined in header &amp;ldquo;ark/snmp/test/snmp_mock_agent_fixture.hh&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Lightweight UDP mock SNMP agent used by tests.&lt;/p&gt;
&lt;p&gt;This fixture runs a background thread that listens for incoming SNMP requests and emits a minimal response set for known OIDs.&lt;/p&gt;
&lt;h3 id=&#34;methods&#34;&gt;Methods&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;/span&gt; SnmpMockAgentFixture(&lt;span class=&#34;api-code-param&#34;&gt;uint16_t&lt;/span&gt; port)&lt;/strong&gt;&lt;br&gt;
Constructor. Starts the background mock-agent thread bound to the given port.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;/span&gt; ~SnmpMockAgentFixture()&lt;/strong&gt;&lt;br&gt;
Destructor. Stops the background thread and releases resources.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;/span&gt; SnmpMockAgentFixture()&lt;/strong&gt;&lt;br&gt;
No copies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;a href=&#34;https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpmockagentfixture&#34;&gt;SnmpMockAgentFixture&lt;/a&gt; &amp;amp;&lt;/span&gt; operator=()&lt;/strong&gt;&lt;br&gt;
No copies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;uint16_t&lt;/span&gt; port()&lt;/strong&gt;&lt;br&gt;
Returns the actual UDP port the fixture bound (useful when constructed with port 0).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;void&lt;/span&gt; rethrow_if_failed()&lt;/strong&gt;&lt;br&gt;
Rethrows any exception captured from the background worker thread.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: ark::snmp::SnmpResult</title>
      <link>https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpresult/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpresult/</guid>
      <description>
        
        
        &lt;p&gt;Defined in header &amp;ldquo;ark/snmp/snmp_client.hh&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Represents one OID/value tuple returned by an SNMP request.&lt;/p&gt;
&lt;h3 id=&#34;variables&#34;&gt;Variables&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;std::string&lt;/span&gt; oid&lt;span class=&#34;api-code-param&#34;&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
OID in textual dotted format (for example: 1.3.6.1.2.1.1.5.0).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;&lt;a href=&#34;https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpvalue&#34;&gt;SnmpValue&lt;/a&gt;&lt;/span&gt; value&lt;span class=&#34;api-code-param&#34;&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
Decoded value for the OID.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: ark::snmp::SnmpValue</title>
      <link>https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpvalue/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://ark.tbdrobotics.com/docs/api/ark-snmp/ark-snmp-snmpvalue/</guid>
      <description>
        
        
        &lt;p&gt;Defined in header &amp;ldquo;ark/snmp/snmp_client.hh&amp;rdquo;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A simple typed representation of an SNMP value.&lt;/p&gt;
&lt;p&gt;SNMP can encode many wire-level types; this wrapper focuses on the &amp;ldquo;major&amp;rdquo; value families that application code commonly consumes:&lt;/p&gt;
&lt;h3 id=&#34;typedefs&#34;&gt;Typedefs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;using &lt;strong&gt;Type = &lt;span class=&#34;api-code-param&#34;&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;variables&#34;&gt;Variables&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;Type&lt;/span&gt; type&lt;span class=&#34;api-code-param&#34;&gt;= Type::Null&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
The resolved value type.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class=&#34;api-code-display&#34;&gt;&lt;span class=&#34;api-code-type&#34;&gt;std::variant&amp;lt; int64_t, uint64_t, std::string &amp;gt;&lt;/span&gt; value&lt;span class=&#34;api-code-param&#34;&gt;= uint64_t{0}&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
The decoded value payload.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
