# File lib/nanite/cluster.rb, line 28
    def register(reg)
      case reg
      when Register
        if @security.authorize_registration(reg)
          Nanite::Log.debug("RECV #{reg.to_s}")
          nanites[reg.identity] = { :services => reg.services, :status => reg.status, :tags => reg.tags, :timestamp => Time.now.utc.to_i }
          reaper.register(reg.identity, agent_timeout + 1) { nanite_timed_out(reg.identity) }
          callbacks[:register].call(reg.identity, mapper) if callbacks[:register]
        else
          Nanite::Log.warn("RECV NOT AUTHORIZED #{reg.to_s}")
        end
      when UnRegister
        Nanite::Log.info("RECV #{reg.to_s}")
        reaper.unregister(reg.identity)
        nanites.delete(reg.identity)
        callbacks[:unregister].call(reg.identity, mapper) if callbacks[:unregister]
      else
        Nanite::Log.warn("RECV [register] Invalid packet type: #{reg.class}")
      end
    end