annotate foosdk/sdk/pfc/instance_tracker_legacy.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 // OBSOLETE, DO NOT USE
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 namespace pfc {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4 template<typename t_object>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 class instance_tracker_server_t {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 void add(t_object * p_object) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 m_list.add_item(p_object);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 void remove(t_object * p_object) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 m_list.remove_item(p_object);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 t_size get_count() const {return m_list.get_count();}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 t_object * get_item(t_size p_index) {return m_list[p_index];}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 t_object * operator[](t_size p_index) {return m_list[p_index];}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 ptr_list_hybrid_t<t_object,4> m_list;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 template<typename t_object,instance_tracker_server_t<t_object> & p_server>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 class instance_tracker_client_t {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 instance_tracker_client_t(t_object* p_ptr) : m_ptr(NULL), m_added(false) {initialize(p_ptr);}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 instance_tracker_client_t() : m_ptr(NULL), m_added(false) {}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 void initialize(t_object * p_ptr) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 uninitialize();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 p_server.add(p_ptr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 m_ptr = p_ptr;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 m_added = true;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 void uninitialize() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 if (m_added) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 p_server.remove(m_ptr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 m_ptr = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40 m_added = false;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
42 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44 ~instance_tracker_client_t() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45 uninitialize();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48 bool m_added;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
49 t_object * m_ptr;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
50 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51 }