Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-19 08:08:33

0001 // Simple vectors of numbers.
0002 
0003 #ifndef _CL_SV_NUMBER_H
0004 #define _CL_SV_NUMBER_H
0005 
0006 #include "cln/number.h"
0007 #include "cln/SV.h"
0008 #include "cln/io.h"
0009 
0010 namespace cln {
0011 
0012 typedef cl_heap_SV<cl_number> cl_heap_SV_number;
0013 
0014 struct cl_SV_number : public cl_SV<cl_number,cl_SV_any> {
0015 public:
0016     // Constructors.
0017     cl_SV_number ();
0018     cl_SV_number (const cl_SV_number&);
0019     explicit cl_SV_number (std::size_t len);
0020     // Assignment operators.
0021     cl_SV_number& operator= (const cl_SV_number&);
0022     // Private pointer manipulations.
0023     operator cl_heap_SV_number* () const;
0024     cl_SV_number (cl_heap_SV_number* p) : cl_SV<cl_number,cl_SV_any> (p) {}
0025     cl_SV_number (cl_private_thing p) : cl_SV<cl_number,cl_SV_any> (p) {}
0026 };
0027 inline cl_SV_number::cl_SV_number (const cl_SV_number& x) : cl_SV<cl_number,cl_SV_any> (as_cl_private_thing(x)) {}
0028 CL_DEFINE_ASSIGNMENT_OPERATOR(cl_SV_number,cl_SV_number)
0029 // Returns a new simple vector with uninitialized contents.
0030 extern cl_heap_SV_number* cl_make_heap_SV_number_uninit (std::size_t len);
0031 // Returns a new simple vector with all elements initialized to 0.
0032 extern cl_heap_SV_number* cl_make_heap_SV_number (std::size_t len);
0033 inline cl_SV_number::cl_SV_number (std::size_t len)
0034     : cl_SV<cl_number,cl_SV_any> (cl_make_heap_SV_number(len)) {}
0035 
0036 // Private pointer manipulations. Never throw away a `struct cl_heap_SV_number *'!
0037 inline cl_SV_number::operator cl_heap_SV_number* () const
0038 {
0039     cl_heap_SV_number* hpointer = (cl_heap_SV_number*)pointer;
0040     cl_inc_refcount(*this);
0041     return hpointer;
0042 }
0043 extern const cl_SV_number cl_null_SV_number;
0044 inline cl_SV_number::cl_SV_number ()
0045     : cl_SV<cl_number,cl_SV_any> ((cl_heap_SV_number*) cl_null_SV_number) {}
0046 class cl_SV_number_init_helper
0047 {
0048     static int count;
0049 public:
0050     cl_SV_number_init_helper();
0051     ~cl_SV_number_init_helper();
0052 };
0053 static cl_SV_number_init_helper cl_SV_number_init_helper_instance;
0054 
0055 // Copy a simple vector.
0056 inline const cl_SV_number copy (const cl_SV_number& vector)
0057 { return The(cl_SV_number) (copy((const cl_SV_any&) vector)); }
0058 
0059 // Debugging support.
0060 #ifdef CL_DEBUG
0061 extern int cl_SV_number_debug_module;
0062 CL_FORCE_LINK(cl_SV_number_debug_dummy, cl_SV_number_debug_module)
0063 #endif
0064 
0065 }  // namespace cln
0066 
0067 #endif /* _CL_SV_NUMBER_H */